@robbiesrobotics/alice-agents 1.5.11 → 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 +134 -257
- package/lib/manifest.mjs +14 -9
- package/lib/prompter.mjs +2 -34
- 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
|
@@ -6,14 +6,6 @@ import { homedir } from 'node:os';
|
|
|
6
6
|
import { configExists, mergeConfig, removeAliceAgents, detectAvailableModels } from './config-merger.mjs';
|
|
7
7
|
import { scaffoldAll } from './workspace-scaffolder.mjs';
|
|
8
8
|
import { readManifest, writeManifest } from './manifest.mjs';
|
|
9
|
-
import {
|
|
10
|
-
configureMissionControlCloud,
|
|
11
|
-
getDefaultMissionControlSettings,
|
|
12
|
-
getCloudStatus,
|
|
13
|
-
isCloudAuthenticated,
|
|
14
|
-
isCloudRegistered,
|
|
15
|
-
configureCloudFromSupabase,
|
|
16
|
-
} from './mission-control.mjs';
|
|
17
9
|
import {
|
|
18
10
|
promptAndInstallRuntime,
|
|
19
11
|
printNoRuntimeDetected,
|
|
@@ -22,15 +14,8 @@ import {
|
|
|
22
14
|
import {
|
|
23
15
|
promptInstallMode,
|
|
24
16
|
promptUserInfo,
|
|
25
|
-
promptModelPreset,
|
|
26
|
-
promptCustomModel,
|
|
27
17
|
promptTier,
|
|
28
18
|
promptLicenseKey,
|
|
29
|
-
promptCloudAddon,
|
|
30
|
-
promptCloudSetup,
|
|
31
|
-
promptCloudReauth,
|
|
32
|
-
promptCloudHeartbeat,
|
|
33
|
-
promptCloudToken,
|
|
34
19
|
confirm,
|
|
35
20
|
choose,
|
|
36
21
|
input,
|
|
@@ -45,6 +30,7 @@ import { runSkillsWizardStep } from './skills.mjs';
|
|
|
45
30
|
import { resolveCodingAgentPreference } from './coding-agent.mjs';
|
|
46
31
|
import { loadAgentRegistry } from './agent-registry.mjs';
|
|
47
32
|
import { HermesAgentManager } from './hermes-agent.mjs';
|
|
33
|
+
import { isAliceRuntimeInstalled } from './alice-runtime-adapter.mjs';
|
|
48
34
|
|
|
49
35
|
function commandExists(cmd) {
|
|
50
36
|
const probe = process.platform === 'win32' ? 'where' : 'which';
|
|
@@ -195,38 +181,40 @@ function checkLinuxDockerPermissions() {
|
|
|
195
181
|
}
|
|
196
182
|
}
|
|
197
183
|
|
|
198
|
-
async function detectRuntime() {
|
|
199
|
-
|
|
200
|
-
try {
|
|
201
|
-
execSync('nemoclaw --version', { stdio: 'pipe' });
|
|
202
|
-
return 'nemoclaw';
|
|
203
|
-
} catch {}
|
|
184
|
+
async function detectRuntime(...preferredRuntimes) {
|
|
185
|
+
const installed = new Set();
|
|
204
186
|
|
|
205
|
-
|
|
206
|
-
const nemoclawDir = join(homedir(), '.nemoclaw');
|
|
207
|
-
if (existsSync(nemoclawDir)) return 'nemoclaw';
|
|
187
|
+
if (isAliceRuntimeInstalled({ commandExists })) installed.add('alice-runtime');
|
|
208
188
|
|
|
209
|
-
// Hermes is always standalone — check next
|
|
210
189
|
const hermesDir = join(homedir(), '.hermes');
|
|
211
190
|
const hermesConfig = join(hermesDir, 'config.yaml');
|
|
212
191
|
if (existsSync(hermesConfig)) {
|
|
213
192
|
try {
|
|
214
193
|
execSync('hermes version', { stdio: 'pipe' });
|
|
215
|
-
|
|
194
|
+
installed.add('hermes');
|
|
216
195
|
} catch {}
|
|
217
196
|
}
|
|
218
197
|
|
|
219
|
-
|
|
198
|
+
try {
|
|
199
|
+
execSync('nemoclaw --version', { stdio: 'pipe' });
|
|
200
|
+
installed.add('nemoclaw');
|
|
201
|
+
} catch {}
|
|
202
|
+
if (existsSync(join(homedir(), '.nemoclaw'))) installed.add('nemoclaw');
|
|
203
|
+
|
|
220
204
|
try {
|
|
221
205
|
execSync('openclaw --version', { stdio: 'pipe' });
|
|
222
|
-
|
|
206
|
+
installed.add('openclaw');
|
|
223
207
|
} catch {}
|
|
208
|
+
if (existsSync(join(homedir(), '.openclaw'))) installed.add('openclaw');
|
|
209
|
+
|
|
210
|
+
for (const preferred of preferredRuntimes) {
|
|
211
|
+
if (preferred && installed.has(preferred)) return preferred;
|
|
212
|
+
}
|
|
224
213
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
214
|
+
for (const runtime of ['alice-runtime', 'hermes', 'nemoclaw', 'openclaw']) {
|
|
215
|
+
if (installed.has(runtime)) return runtime;
|
|
216
|
+
}
|
|
228
217
|
|
|
229
|
-
// Nothing found
|
|
230
218
|
return null;
|
|
231
219
|
}
|
|
232
220
|
|
|
@@ -565,6 +553,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
565
553
|
function printBanner() {
|
|
566
554
|
const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url)));
|
|
567
555
|
const version = pkg.version || '';
|
|
556
|
+
const agentCount = loadAgentRegistry('pro').length;
|
|
568
557
|
console.log('');
|
|
569
558
|
console.log(` ${dim('╭──────────────────────────────────────────────╮')}`);
|
|
570
559
|
console.log(` ${dim('│')} ${dim('│')}`);
|
|
@@ -572,24 +561,13 @@ function printBanner() {
|
|
|
572
561
|
console.log(` ${dim('│')} ${dim('Adaptive Learning & Intelligent Coordination')} ${dim('│')}`);
|
|
573
562
|
console.log(` ${dim('│')} ${dim('Engine — Multi-Agent Orchestration')} ${dim('│')}`);
|
|
574
563
|
console.log(` ${dim('│')} ${dim('│')}`);
|
|
575
|
-
console.log(` ${dim('│')} ${dim('v' + version)} ${green('●')} ${dim('
|
|
564
|
+
console.log(` ${dim('│')} ${dim('v' + version)} ${green('●')} ${dim(agentCount + ' AI agents, one team')} ${dim('│')}`);
|
|
576
565
|
console.log(` ${dim('│')} ${dim('│')}`);
|
|
577
566
|
console.log(` ${dim('╰──────────────────────────────────────────────╯')}`);
|
|
578
567
|
console.log('');
|
|
579
568
|
}
|
|
580
569
|
|
|
581
570
|
function printSummary(mode, tier, agents, preset, userInfo, detectedModels) {
|
|
582
|
-
return printSummaryWithOptions(mode, tier, agents, preset, userInfo, detectedModels, null);
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
function normalizeTierOption(tier) {
|
|
586
|
-
if (!tier) return null;
|
|
587
|
-
const normalized = String(tier).trim().toLowerCase();
|
|
588
|
-
if (normalized === 'starter' || normalized === 'pro') return normalized;
|
|
589
|
-
throw new Error(`Invalid --tier value "${tier}". Use starter or pro.`);
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
function printSummaryWithOptions(mode, tier, agents, preset, userInfo, detectedModels, missionControl) {
|
|
593
571
|
const modelLabel =
|
|
594
572
|
preset === 'detected'
|
|
595
573
|
? `${detectedModels?.primary || 'your configured model'} ${dim('(detected)')}`
|
|
@@ -604,12 +582,6 @@ function printSummaryWithOptions(mode, tier, agents, preset, userInfo, detectedM
|
|
|
604
582
|
`${dim('Model:')} ${green(modelLabel)}`,
|
|
605
583
|
`${dim('User:')} ${green(userInfo.name)}`,
|
|
606
584
|
`${dim('Timezone:')} ${green(userInfo.timezone)}`,
|
|
607
|
-
`${dim('Cloud:')} ${missionControl?.enabled ? (isCloudAuthenticated() ? green('connected') : yellow('enabled (setup pending)')) : dim('local only')}`,
|
|
608
|
-
...(missionControl?.enabled
|
|
609
|
-
? [
|
|
610
|
-
`${dim('Dashboard:')} ${green(missionControl.dashboardUrl)}`,
|
|
611
|
-
]
|
|
612
|
-
: []),
|
|
613
585
|
'',
|
|
614
586
|
`${dim('Agents:')}`,
|
|
615
587
|
...agents.map(a => ` ${icons.bullet} ${green(a.emoji)} ${bold(a.name.padEnd(10))} ${dim('─')} ${a.domain}`),
|
|
@@ -619,115 +591,11 @@ function printSummaryWithOptions(mode, tier, agents, preset, userInfo, detectedM
|
|
|
619
591
|
console.log('');
|
|
620
592
|
}
|
|
621
593
|
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
const { execFileSync } = await import('node:child_process');
|
|
628
|
-
const { mkdirSync, readFileSync, writeFileSync, existsSync: fsExists } = await import('node:fs');
|
|
629
|
-
const aliceCloudBin = join(__dirname, '..', 'bin', 'alice-cloud.cjs');
|
|
630
|
-
const defaults = getDefaultMissionControlSettings();
|
|
631
|
-
const cloudConfigPath = join(homedir(), '.openclaw', 'alice-cloud.json');
|
|
632
|
-
|
|
633
|
-
function readCloudJson() {
|
|
634
|
-
try { return JSON.parse(readFileSync(cloudConfigPath, 'utf8')); } catch { return {}; }
|
|
635
|
-
}
|
|
636
|
-
function writeCloudJson(data) {
|
|
637
|
-
mkdirSync(join(homedir(), '.openclaw'), { recursive: true });
|
|
638
|
-
writeFileSync(cloudConfigPath, JSON.stringify(data, null, 2));
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
try {
|
|
642
|
-
// Step 1: Login
|
|
643
|
-
console.log('');
|
|
644
|
-
console.log(` ${icons.pkg} ${bold('Setting up A.L.I.C.E. Cloud...')}`);
|
|
645
|
-
console.log('');
|
|
646
|
-
|
|
647
|
-
if (auto && options.cloudSupabaseToken) {
|
|
648
|
-
// Non-interactive: use provided token
|
|
649
|
-
const cloudData = readCloudJson();
|
|
650
|
-
cloudData.supabaseToken = options.cloudSupabaseToken;
|
|
651
|
-
writeCloudJson(cloudData);
|
|
652
|
-
printStepDone('Cloud token saved');
|
|
653
|
-
} else if (!auto) {
|
|
654
|
-
// Interactive: open the dashboard login page and prompt for token
|
|
655
|
-
console.log(` ${dim('Sign in to A.L.I.C.E. | Control to connect your local gateway.')}`);
|
|
656
|
-
console.log(` ${dim('We\'ll open the login page — after signing in, copy the access token shown.')}`);
|
|
657
|
-
console.log('');
|
|
658
|
-
|
|
659
|
-
try {
|
|
660
|
-
const open = (await import('open')).default;
|
|
661
|
-
await open('https://alice.av3.ai/login?cli=1');
|
|
662
|
-
console.log(` ${green('Browser opened!')} Sign in and copy the access token shown.`);
|
|
663
|
-
} catch {
|
|
664
|
-
console.log(` ${yellow('Could not open browser.')} Visit this URL to sign in:`);
|
|
665
|
-
console.log(` ${cyan('https://alice.av3.ai/login?cli=1')}`);
|
|
666
|
-
}
|
|
667
|
-
console.log('');
|
|
668
|
-
|
|
669
|
-
const token = await promptCloudToken();
|
|
670
|
-
|
|
671
|
-
if (token) {
|
|
672
|
-
const cloudData = readCloudJson();
|
|
673
|
-
cloudData.supabaseToken = token;
|
|
674
|
-
writeCloudJson(cloudData);
|
|
675
|
-
printStepDone('Cloud token saved');
|
|
676
|
-
} else {
|
|
677
|
-
console.log(` ${dim('Skipped — you can authenticate later with:')} ${cyan('alice-cloud login')}`);
|
|
678
|
-
}
|
|
679
|
-
}
|
|
680
|
-
|
|
681
|
-
// Step 2: Register gateway (use child process for this — no stdin needed)
|
|
682
|
-
if (isCloudAuthenticated()) {
|
|
683
|
-
console.log('');
|
|
684
|
-
console.log(` ${icons.pkg} ${bold('Registering gateway with A.L.I.C.E. Cloud...')}`);
|
|
685
|
-
try {
|
|
686
|
-
execFileSync(process.execPath, [aliceCloudBin, 'register'], {
|
|
687
|
-
stdio: ['ignore', 'inherit', 'inherit'],
|
|
688
|
-
timeout: 15000,
|
|
689
|
-
});
|
|
690
|
-
printStepDone('Gateway registered with A.L.I.C.E. Cloud');
|
|
691
|
-
} catch {
|
|
692
|
-
console.log(` ${yellow('Gateway registration failed — you can retry later with:')} ${cyan('alice-cloud register')}`);
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
// Step 3: Ask about heartbeat daemon
|
|
696
|
-
const startHeartbeat = auto ? false : await promptCloudHeartbeat();
|
|
697
|
-
if (startHeartbeat) {
|
|
698
|
-
console.log(` ${dim('Starting heartbeat daemon...')}`);
|
|
699
|
-
try {
|
|
700
|
-
execFileSync(process.execPath, [aliceCloudBin, 'watch', '--daemon'], {
|
|
701
|
-
stdio: ['ignore', 'inherit', 'inherit'],
|
|
702
|
-
timeout: 10000,
|
|
703
|
-
});
|
|
704
|
-
printStepDone('Heartbeat daemon started');
|
|
705
|
-
} catch {
|
|
706
|
-
console.log(` ${dim('Could not start daemon — run:')} ${cyan('alice-cloud watch --daemon')}`);
|
|
707
|
-
}
|
|
708
|
-
}
|
|
709
|
-
} else {
|
|
710
|
-
printStepSkip('A.L.I.C.E. | Control', 'no token provided — run `alice-cloud login` later');
|
|
711
|
-
}
|
|
712
|
-
} catch (err) {
|
|
713
|
-
console.log(` ${icons.warn} ${yellow('Cloud setup encountered an issue: ' + (err.message || 'unknown error'))}`);
|
|
714
|
-
console.log(` ${dim('You can complete setup later with:')} ${cyan('alice-cloud login && alice-cloud register')}`);
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
// Build missionControl object from whatever state we achieved
|
|
718
|
-
const cloudStatus = getCloudStatus();
|
|
719
|
-
return {
|
|
720
|
-
enabled: true,
|
|
721
|
-
provider: 'cloud',
|
|
722
|
-
dashboardUrl: existingMissionControl?.dashboardUrl || defaults.dashboardUrl,
|
|
723
|
-
ingestUrl: existingMissionControl?.ingestUrl || `${defaults.dashboardUrl}/api/v1/ingest`,
|
|
724
|
-
sourceNode: existingMissionControl?.sourceNode || defaults.sourceNode,
|
|
725
|
-
teamId: String(options.cloudTeamId || existingMissionControl?.teamId || '').trim(),
|
|
726
|
-
teamSlug: String(options.cloudTeamSlug || existingMissionControl?.teamSlug || '').trim(),
|
|
727
|
-
teamName: String(options.cloudTeamName || existingMissionControl?.teamName || '').trim(),
|
|
728
|
-
teamPlan: String(options.cloudTeamPlan || existingMissionControl?.teamPlan || '').trim(),
|
|
729
|
-
...(cloudStatus.authenticated ? { hasIngestToken: true } : {}),
|
|
730
|
-
};
|
|
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.`);
|
|
731
599
|
}
|
|
732
600
|
|
|
733
601
|
export async function runInstall(options = {}) {
|
|
@@ -756,7 +624,7 @@ export async function runInstall(options = {}) {
|
|
|
756
624
|
checkLinuxDockerPermissions();
|
|
757
625
|
|
|
758
626
|
// 1. Detect runtime — Hermes, NemoClaw, OpenClaw, or none
|
|
759
|
-
let runtime = options.runtimeOverride || await detectRuntime();
|
|
627
|
+
let runtime = options.runtimeOverride || await detectRuntime(manifest?.runtime);
|
|
760
628
|
|
|
761
629
|
// 1b. No runtime detected — offer to install one
|
|
762
630
|
if (!runtime) {
|
|
@@ -801,6 +669,7 @@ export async function runInstall(options = {}) {
|
|
|
801
669
|
if (existingStatus.installed && manifest && !options.force) {
|
|
802
670
|
console.log(` ${icons.info} ${dim('A.L.I.C.E. already installed on Hermes')}`);
|
|
803
671
|
console.log(` ${dim('Run with --force to reinstall.')}\n`);
|
|
672
|
+
return;
|
|
804
673
|
}
|
|
805
674
|
|
|
806
675
|
// Detect Hermes version and model
|
|
@@ -844,7 +713,7 @@ export async function runInstall(options = {}) {
|
|
|
844
713
|
}
|
|
845
714
|
|
|
846
715
|
// 4. Confirmation
|
|
847
|
-
const agents = (await import('./agent-registry.mjs')).loadAgentRegistry(tier);
|
|
716
|
+
const agents = (await import('./agent-registry.mjs')).loadAgentRegistry(tier, { runtime: 'hermes' });
|
|
848
717
|
if (!auto) {
|
|
849
718
|
printSection('Install Summary');
|
|
850
719
|
console.log('');
|
|
@@ -880,7 +749,6 @@ export async function runInstall(options = {}) {
|
|
|
880
749
|
skills: [],
|
|
881
750
|
codingTool: null,
|
|
882
751
|
codingSkill: null,
|
|
883
|
-
missionControl: null,
|
|
884
752
|
});
|
|
885
753
|
|
|
886
754
|
console.log('');
|
|
@@ -898,6 +766,104 @@ export async function runInstall(options = {}) {
|
|
|
898
766
|
}
|
|
899
767
|
// ── END HERMES PATH ────────────────────────────────────────────────────────
|
|
900
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
|
+
|
|
901
867
|
// OpenClaw / NemoClaw path (existing behavior)
|
|
902
868
|
// 1. Detect OpenClaw — offer to install if missing
|
|
903
869
|
if (!isOpenClawInstalled() || !configExists()) {
|
|
@@ -964,6 +930,10 @@ export async function runInstall(options = {}) {
|
|
|
964
930
|
}
|
|
965
931
|
}
|
|
966
932
|
|
|
933
|
+
if (options.force) {
|
|
934
|
+
mode = manifest ? 'merge' : 'fresh';
|
|
935
|
+
}
|
|
936
|
+
|
|
967
937
|
if (mode === 'fresh' && !auto) {
|
|
968
938
|
const ok = await confirm(' ⚠ This will replace the agents section in openclaw.json. Continue?');
|
|
969
939
|
if (!ok) {
|
|
@@ -1095,73 +1065,6 @@ export async function runInstall(options = {}) {
|
|
|
1095
1065
|
}
|
|
1096
1066
|
}
|
|
1097
1067
|
|
|
1098
|
-
let missionControl = null;
|
|
1099
|
-
const existingMissionControl = manifest?.missionControl;
|
|
1100
|
-
if (tier === 'pro') {
|
|
1101
|
-
const cloudFlag = options.cloud === true ? true : options.cloud === false ? false : null;
|
|
1102
|
-
const enableCloud = auto
|
|
1103
|
-
? cloudFlag ?? existingMissionControl?.enabled ?? false
|
|
1104
|
-
: cloudFlag ?? await promptCloudAddon();
|
|
1105
|
-
|
|
1106
|
-
if (enableCloud) {
|
|
1107
|
-
const cloudStatus = getCloudStatus();
|
|
1108
|
-
|
|
1109
|
-
// Upgrade mode: show existing cloud status
|
|
1110
|
-
if (mode === 'upgrade' && (cloudStatus.authenticated || existingMissionControl?.enabled)) {
|
|
1111
|
-
console.log('');
|
|
1112
|
-
console.log(` ${icons.ok} ${green('A.L.I.C.E. Cloud is configured')}`);
|
|
1113
|
-
if (cloudStatus.user) {
|
|
1114
|
-
console.log(` ${dim('User:')} ${cloudStatus.user}`);
|
|
1115
|
-
}
|
|
1116
|
-
if (cloudStatus.gatewayUrl) {
|
|
1117
|
-
console.log(` ${dim('Gateway:')} ${cloudStatus.gatewayUrl}`);
|
|
1118
|
-
}
|
|
1119
|
-
if (cloudStatus.registeredAt) {
|
|
1120
|
-
console.log(` ${dim('Registered:')} ${cloudStatus.registeredAt}`);
|
|
1121
|
-
}
|
|
1122
|
-
console.log('');
|
|
1123
|
-
|
|
1124
|
-
const reauth = auto ? false : await promptCloudReauth();
|
|
1125
|
-
if (!reauth) {
|
|
1126
|
-
// Keep existing config — use Supabase config if available, fall back to legacy
|
|
1127
|
-
if (cloudStatus.authenticated) {
|
|
1128
|
-
missionControl = {
|
|
1129
|
-
enabled: true,
|
|
1130
|
-
provider: 'cloud',
|
|
1131
|
-
dashboardUrl: existingMissionControl?.dashboardUrl || 'https://alice.av3.ai',
|
|
1132
|
-
ingestUrl: existingMissionControl?.ingestUrl || 'https://alice.av3.ai/api/v1/ingest',
|
|
1133
|
-
sourceNode: existingMissionControl?.sourceNode || getDefaultMissionControlSettings().sourceNode,
|
|
1134
|
-
};
|
|
1135
|
-
} else {
|
|
1136
|
-
missionControl = { ...existingMissionControl, enabled: true };
|
|
1137
|
-
}
|
|
1138
|
-
} else {
|
|
1139
|
-
// Re-authenticate — run alice-cloud login inline
|
|
1140
|
-
missionControl = await _runCloudOnboarding(auto, options, existingMissionControl);
|
|
1141
|
-
}
|
|
1142
|
-
} else {
|
|
1143
|
-
// Fresh install — run cloud onboarding
|
|
1144
|
-
const wantsSetup = auto ? true : await promptCloudSetup();
|
|
1145
|
-
|
|
1146
|
-
if (wantsSetup) {
|
|
1147
|
-
missionControl = await _runCloudOnboarding(auto, options, existingMissionControl);
|
|
1148
|
-
} else {
|
|
1149
|
-
console.log('');
|
|
1150
|
-
console.log(` ${dim('You can set up cloud later with:')} ${cyan('alice-cloud login && alice-cloud register')}`);
|
|
1151
|
-
console.log('');
|
|
1152
|
-
// Cloud addon enabled but setup skipped — bridge installed, no auth yet
|
|
1153
|
-
missionControl = {
|
|
1154
|
-
enabled: true,
|
|
1155
|
-
provider: 'cloud',
|
|
1156
|
-
dashboardUrl: 'https://alice.av3.ai',
|
|
1157
|
-
ingestUrl: 'https://alice.av3.ai/api/v1/ingest',
|
|
1158
|
-
sourceNode: getDefaultMissionControlSettings().sourceNode,
|
|
1159
|
-
};
|
|
1160
|
-
}
|
|
1161
|
-
}
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
|
|
1165
1068
|
const codingAgent = resolveCodingAgentPreference({
|
|
1166
1069
|
detectedModels,
|
|
1167
1070
|
override: options.codingTool,
|
|
@@ -1170,7 +1073,7 @@ export async function runInstall(options = {}) {
|
|
|
1170
1073
|
const agents = allAgents;
|
|
1171
1074
|
|
|
1172
1075
|
// 6. Confirmation
|
|
1173
|
-
|
|
1076
|
+
printSummary(mode, tier, agents, preset, userInfo, detectedModels);
|
|
1174
1077
|
|
|
1175
1078
|
if (!auto) {
|
|
1176
1079
|
const ok = await confirm(' Proceed with installation?');
|
|
@@ -1199,16 +1102,6 @@ export async function runInstall(options = {}) {
|
|
|
1199
1102
|
console.log(` ${icons.warn} ${yellow(warning)}`);
|
|
1200
1103
|
}
|
|
1201
1104
|
|
|
1202
|
-
if (missionControl?.enabled) {
|
|
1203
|
-
const missionControlResult = configureMissionControlCloud(missionControl);
|
|
1204
|
-
printStepDone('A.L.I.C.E. Cloud', missionControlResult.summary.dashboardUrl);
|
|
1205
|
-
if (!missionControlResult.summary.hasIngestToken) {
|
|
1206
|
-
printStepSkip('Cloud authentication pending', 'run `alice-cloud login && alice-cloud register` to complete setup');
|
|
1207
|
-
}
|
|
1208
|
-
} else {
|
|
1209
|
-
printStepSkip('A.L.I.C.E. Cloud', 'not enabled for this install');
|
|
1210
|
-
}
|
|
1211
|
-
|
|
1212
1105
|
// Scaffold workspaces
|
|
1213
1106
|
const { workspaces: results, installedSkill } = scaffoldAll(agents, userInfo, codingAgent);
|
|
1214
1107
|
let newWorkspaces = 0;
|
|
@@ -1252,20 +1145,11 @@ export async function runInstall(options = {}) {
|
|
|
1252
1145
|
agents: agents.map((a) => a.id),
|
|
1253
1146
|
userName: userInfo.name,
|
|
1254
1147
|
userTimezone: userInfo.timezone,
|
|
1148
|
+
runtime,
|
|
1255
1149
|
modelPreset: effectivePreset,
|
|
1256
1150
|
skills: [...new Set([...(existing?.skills || []), installedSkill.skillId, ...(skillsInstalled || [])])],
|
|
1257
1151
|
codingTool: installedSkill.preferredTool,
|
|
1258
1152
|
codingSkill: installedSkill.skillId,
|
|
1259
|
-
missionControl: missionControl
|
|
1260
|
-
? {
|
|
1261
|
-
enabled: true,
|
|
1262
|
-
provider: 'cloud',
|
|
1263
|
-
dashboardUrl: missionControl.dashboardUrl,
|
|
1264
|
-
ingestUrl: missionControl.ingestUrl,
|
|
1265
|
-
sourceNode: missionControl.sourceNode,
|
|
1266
|
-
bridgeInstalled: true,
|
|
1267
|
-
}
|
|
1268
|
-
: existing?.missionControl || null,
|
|
1269
1153
|
});
|
|
1270
1154
|
printStepDone('Manifest written');
|
|
1271
1155
|
|
|
@@ -1281,16 +1165,9 @@ export async function runInstall(options = {}) {
|
|
|
1281
1165
|
console.log(` ${icons.info} ${dim('Runtime: OpenClaw')}`);
|
|
1282
1166
|
}
|
|
1283
1167
|
console.log('');
|
|
1284
|
-
if (missionControl?.enabled && !isCloudAuthenticated()) {
|
|
1285
|
-
console.log(` ${yellow('☁️ Cloud setup pending:')} ${cyan('alice-cloud login && alice-cloud register')}`);
|
|
1286
|
-
console.log('');
|
|
1287
|
-
}
|
|
1288
1168
|
console.log(` ${dim('Manage skills:')} ${cyan('npx @robbiesrobotics/alice-agents --skills')}`);
|
|
1289
1169
|
console.log(` ${dim('Health check:')} ${cyan('npx @robbiesrobotics/alice-agents --doctor')}`);
|
|
1290
1170
|
console.log(` ${dim('Restart runtime:')} ${cyan('openclaw gateway restart')}`);
|
|
1291
|
-
if (missionControl?.enabled) {
|
|
1292
|
-
console.log(` ${dim('Cloud dashboard:')} ${cyan('https://alice.av3.ai')}`);
|
|
1293
|
-
}
|
|
1294
1171
|
console.log('');
|
|
1295
1172
|
printSeparator();
|
|
1296
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
|
-
}
|