@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
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
# STRIPE_PIPELINE.md — Client Purchase Pipeline Spec
|
|
2
|
-
|
|
3
|
-
**Author:** Dylan (Backend/Data)
|
|
4
|
-
**Date:** 2026-03-24
|
|
5
|
-
**Status:** Built and deployed — needs Rob's API keys to activate
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Overview
|
|
10
|
-
|
|
11
|
-
End-to-end flow for converting a Stripe checkout into a live A.L.I.C.E. license.
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
Buyer clicks "Buy Pro" → Stripe Checkout → webhook → license + team tokens → welcome email
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## What Already Exists
|
|
20
|
-
|
|
21
|
-
| Component | Location | Status |
|
|
22
|
-
|---|---|---|
|
|
23
|
-
| Stripe checkout session creator | `app/api/stripe/checkout/route.ts` (Vercel) | ✅ Live on Vercel |
|
|
24
|
-
| Stripe webhook handler (Node.js) | `app/api/stripe/webhook/route.ts` (Vercel) | ✅ Live on Vercel |
|
|
25
|
-
| License key generation | `lib/license-fulfillment.ts` (Vercel) | ✅ Live — `ALICE-XXXX-XXXX-XXXX` format |
|
|
26
|
-
| License table schema | `supabase/migrations/00006_licenses.sql` | ✅ Created |
|
|
27
|
-
| Resend email (license delivery) | Inline in webhook route | ✅ Live on Vercel |
|
|
28
|
-
| Success redirect page | `/signup/success?session_id={CHECKOUT_SESSION_ID}` | ✅ Live |
|
|
29
|
-
| Teams + team_tokens provisioning | Inline in webhook route | ✅ Live on Vercel |
|
|
30
|
-
|
|
31
|
-
### Vercel Webhook Handler Logic (current)
|
|
32
|
-
1. Validates Stripe signature
|
|
33
|
-
2. Deduplicates on `stripe_session_id`
|
|
34
|
-
3. Inserts into `licenses` table
|
|
35
|
-
4. Provisions team + `mc_ingest_*` / `mc_worker_*` tokens
|
|
36
|
-
5. Sends license email via Resend (`hello@av3.ai`)
|
|
37
|
-
|
|
38
|
-
### `licenses` Table Schema
|
|
39
|
-
```sql
|
|
40
|
-
CREATE TABLE IF NOT EXISTS licenses (
|
|
41
|
-
id TEXT PRIMARY KEY DEFAULT 'lic-' || substr(md5(random()::text), 1, 12),
|
|
42
|
-
key TEXT NOT NULL UNIQUE DEFAULT 'ALICE-' || upper(substr(md5(random()::text), 1, 4))
|
|
43
|
-
|| '-' || upper(substr(md5(random()::text), 1, 4))
|
|
44
|
-
|| '-' || upper(substr(md5(random()::text), 1, 4)),
|
|
45
|
-
email TEXT NOT NULL,
|
|
46
|
-
plan TEXT NOT NULL DEFAULT 'pro',
|
|
47
|
-
stripe_session_id TEXT,
|
|
48
|
-
stripe_customer_id TEXT,
|
|
49
|
-
purchased_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
50
|
-
revoked BOOLEAN NOT NULL DEFAULT false,
|
|
51
|
-
revoked_at TIMESTAMPTZ,
|
|
52
|
-
metadata JSONB DEFAULT '{}'
|
|
53
|
-
);
|
|
54
|
-
-- indexes on key, email, stripe_session_id
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## What's Missing
|
|
60
|
-
|
|
61
|
-
### 1. Ubuntu Desktop Webhook Handler ✅ DONE
|
|
62
|
-
**File:** `~/alice-observability/stripe-webhook-handler.py`
|
|
63
|
-
|
|
64
|
-
Deployed to Ubuntu Desktop. This Python version:
|
|
65
|
-
- Runs as a Flask app on port 5001
|
|
66
|
-
- Handles `checkout.session.completed` (validates Stripe signature)
|
|
67
|
-
- Generates license key: `ALICE-XXXX-XXXX-XXXX`
|
|
68
|
-
- Inserts into Supabase `licenses` table (deduplication by `stripe_session_id`)
|
|
69
|
-
- Provisions team + `mc_ingest_*` / `mc_worker_*` tokens in `teams` + `team_tokens` tables
|
|
70
|
-
- Triggers n8n welcome email workflow at `http://100.106.110.119:5678/webhook/stripe-checkout-completed`
|
|
71
|
-
- Also has a `/test/mock-webhook` endpoint for local testing (no Stripe signature required)
|
|
72
|
-
- Dependencies installed: `stripe`, `supabase`, `flask`, `requests`
|
|
73
|
-
- Syntax verified ✅ — starts and fails gracefully with clear message when `.env` not configured
|
|
74
|
-
|
|
75
|
-
### 2. n8n Welcome Email Workflow ✅ DONE
|
|
76
|
-
**File:** `n8n-stripe-welcome-workflow.json` (workspace) + live in n8n (ID: `AmpbnxucPsjcAGFP`)
|
|
77
|
-
|
|
78
|
-
- Webhook trigger: `POST /webhook/stripe-checkout-completed` ✅ (active)
|
|
79
|
-
- Parses payload: extracts `license_key`, `email`, `plan`, `ingest_token`, `worker_token`
|
|
80
|
-
- Validates email is non-empty (if branch)
|
|
81
|
-
- Sends styled HTML welcome email via Resend API (`hello@av3.ai`)
|
|
82
|
-
- Uses welcome email template from `workspace-olivia/onboarding/welcome-email.html`
|
|
83
|
-
- Variables rendered: `{{ $json.licenseKey }}`, `{{ $json.aliceCloudToken }}`, `{{ $json.activationCmd }}`
|
|
84
|
-
- Retry logic: 3 tries with 2s delay
|
|
85
|
-
- Import method: n8n REST API (`POST /api/v1/workflows`)
|
|
86
|
-
- **Requires:** `RESEND_API_KEY` env var in n8n (`{{ $env.RESEND_API_KEY }}`)
|
|
87
|
-
|
|
88
|
-
### 3. Environment Variables on Ubuntu Desktop
|
|
89
|
-
File: `~/alice-observability/.env`
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
STRIPE_WEBHOOK_SECRET=whsec_... # Rob needs to provide
|
|
93
|
-
SUPABASE_URL=https://tfodkdtknoaodavakajg.supabase.co
|
|
94
|
-
SUPABASE_SERVICE_ROLE_KEY=eyJ... # Rob needs to provide
|
|
95
|
-
N8N_WEBHOOK_URL=http://100.106.110.119:5678/webhook/stripe-checkout-completed
|
|
96
|
-
RESEND_API_KEY=re_... # Rob needs to provide
|
|
97
|
-
FLASK_PORT=5001
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### 4. Stripe Webhook Reconfiguration
|
|
101
|
-
The Stripe webhook in the Stripe Dashboard needs to point to:
|
|
102
|
-
- `POST https://getalice.av3.ai/api/stripe/webhook` (Vercel — currently registered)
|
|
103
|
-
- OR `POST http://100.106.110.119:5001/webhook/stripe` (Ubuntu Desktop — if preferred)
|
|
104
|
-
- The NAT issue (port 5678 not reachable from internet) does NOT affect port 5001 unless that too is NAT-blocked
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## Full Purchase Flow (with new components)
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
1. User → POST /api/stripe/checkout { plan: "pro" }
|
|
112
|
-
→ Vercel → Stripe API → redirect to Stripe Checkout
|
|
113
|
-
|
|
114
|
-
2. User pays on Stripe Checkout
|
|
115
|
-
|
|
116
|
-
3. Stripe → POST /api/stripe/webhook (Vercel)
|
|
117
|
-
OR: Stripe → POST :5001/webhook/stripe (Ubuntu Desktop Python handler)
|
|
118
|
-
↓ (both handlers do the same thing)
|
|
119
|
-
a. Validate Stripe signature
|
|
120
|
-
b. Check stripe_session_id for deduplication
|
|
121
|
-
c. Generate license key: ALICE-XXXX-XXXX-XXXX
|
|
122
|
-
d. Insert into Supabase licenses table
|
|
123
|
-
e. Provision team + ingest/worker tokens
|
|
124
|
-
f. Send license email via Resend (Vercel handler)
|
|
125
|
-
OR: POST to n8n /webhook/stripe-checkout-completed (Python handler)
|
|
126
|
-
g. n8n workflow fires → sends styled welcome email
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## Supabase Tables Used
|
|
132
|
-
|
|
133
|
-
| Table | Purpose |
|
|
134
|
-
|---|---|
|
|
135
|
-
| `licenses` | License key per purchase |
|
|
136
|
-
| `teams` | Team provisioned per customer |
|
|
137
|
-
| `team_tokens` | Mission Control ingest/worker tokens |
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## Rob's API Keys Needed to Activate
|
|
142
|
-
|
|
143
|
-
| Key | Where to get it | Used for |
|
|
144
|
-
|---|---|---|
|
|
145
|
-
| `STRIPE_WEBHOOK_SECRET` | Stripe Dashboard → Developers → Webhooks → getalice.av3.ai → Sign-in secret | Verifying Stripe webhook signatures |
|
|
146
|
-
| `SUPABASE_SERVICE_ROLE_KEY` | Supabase Dashboard → Project Settings → API → `service_role` key | Writing to licenses + teams tables |
|
|
147
|
-
| `RESEND_API_KEY` | Resend.com → API Keys | Sending welcome emails |
|
|
148
|
-
| `STRIPE_PRO_PRICE_ID` | Stripe Dashboard → Products → Pro → Price ID | Checkout session creation |
|
|
149
|
-
| `STRIPE_CLOUD_PRICE_ID` | Stripe Dashboard → Products → Cloud → Price ID | Checkout session creation |
|
|
150
|
-
|
|
151
|
-
**Note:** Supabase URL is `https://tfodkdtknoaodavakajg.supabase.co` (already known from memory).
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
## Testing the Pipeline
|
|
156
|
-
|
|
157
|
-
### Mock Stripe webhook (local)
|
|
158
|
-
```bash
|
|
159
|
-
# Trigger a simulated checkout.session.completed event
|
|
160
|
-
python3 test_mock_webhook.py
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Verify license in Supabase
|
|
164
|
-
```bash
|
|
165
|
-
curl -X GET 'https://tfodkdtknoaodavakajg.supabase.co/rest/v1/licenses' \
|
|
166
|
-
-H 'apikey: <SERVICE_ROLE_KEY>' \
|
|
167
|
-
-H 'Authorization: Bearer <SERVICE_ROLE_KEY>'
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### Verify n8n workflow fired
|
|
171
|
-
Check n8n execution log at `http://100.106.110.119:5678`
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## Files Created by This Task
|
|
176
|
-
|
|
177
|
-
| File | Host | Status |
|
|
178
|
-
|---|---|---|
|
|
179
|
-
| `stripe-webhook-handler.py` | Ubuntu Desktop `~/alice-observability/` | ✅ Deployed — syntax verified |
|
|
180
|
-
| `n8n-stripe-welcome-workflow.json` | Ubuntu Desktop `~/alice-observability/` | ✅ Imported & activated in n8n (ID: `AmpbnxucPsjcAGFP`) |
|
|
181
|
-
| `n8n-stripe-welcome-workflow.json` | Workspace `workspace-dylan/` | ✅ Updated to correct n8n API format |
|
|
182
|
-
| `STRIPE_PIPELINE.md` | Workspace `workspace-dylan/` | ✅ Spec document |
|
|
183
|
-
| `.env.example` | Ubuntu Desktop `~/alice-observability/` | ✅ Copied |
|
|
184
|
-
| `00007_verify_licenses_table.sql` | Workspace `workspace-dylan/` | ✅ SQL migration (verify/create licenses + teams + team_tokens) |
|
|
185
|
-
| `test_mock_webhook.py` | Workspace `workspace-dylan/` | ✅ Local test script |
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# USER.md - About Your Human
|
|
2
|
-
|
|
3
|
-
- **Name:** Rob
|
|
4
|
-
- **What to call them:** Rob
|
|
5
|
-
- **Timezone:** America/New_York
|
|
6
|
-
- **Notes:** Developer, entrepreneur, and creator of the A.L.I.C.E. framework.
|
|
7
|
-
|
|
8
|
-
## Context
|
|
9
|
-
|
|
10
|
-
- Rob is building a multi-agent orchestration platform (A.L.I.C.E.)
|
|
11
|
-
- You are one of 13 agents in the A.L.I.C.E. system
|
|
12
|
-
- Olivia is the orchestrator — she coordinates all specialists
|
|
13
|
-
- Be helpful, competent, and slightly snarky when appropriate
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
The more you know, the better you can help. But remember — you're learning about a person, not building a dossier.
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "A.L.I.C.E. — Stripe Welcome Email",
|
|
3
|
-
"nodes": [
|
|
4
|
-
{
|
|
5
|
-
"parameters": {
|
|
6
|
-
"httpMethod": "POST",
|
|
7
|
-
"path": "stripe-checkout-completed",
|
|
8
|
-
"responseMode": "onReceived",
|
|
9
|
-
"options": { "rawBody": false }
|
|
10
|
-
},
|
|
11
|
-
"id": "stripe-webhook-trigger",
|
|
12
|
-
"name": "Stripe Checkout Completed Webhook",
|
|
13
|
-
"type": "n8n-nodes-base.webhook",
|
|
14
|
-
"typeVersion": 2,
|
|
15
|
-
"position": [250, 300],
|
|
16
|
-
"webhookId": "stripe-welcome-webhook"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"parameters": {
|
|
20
|
-
"jsCode": "// Parse incoming webhook payload from stripe-webhook-handler.py\nconst body = $input.item.json;\n\nconst licenseKey = body.license_key;\nconst email = body.email;\nconst plan = body.plan || 'pro';\nconst ingestToken = body.ingest_token || '';\nconst workerToken = body.worker_token || '';\nconst aliceCloudToken = body.alice_cloud_token || ingestToken;\nconst purchasedAt = body.purchased_at || new Date().toISOString();\n\n// Build activation command\nconst activationCmd = ingestToken\n ? `npx @robbiesrobotics/alice-agents --license ${licenseKey} --cloud --cloud-token ${ingestToken} --cloud-worker-token ${workerToken}`\n : `npx @robbiesrobotics/alice-agents --license ${licenseKey}`;\n\nreturn {\n json: {\n licenseKey,\n email,\n plan,\n ingestToken,\n workerToken,\n aliceCloudToken,\n activationCmd,\n purchasedAt,\n hasTokens: Boolean(ingestToken),\n }\n};"
|
|
21
|
-
},
|
|
22
|
-
"id": "parse-payload",
|
|
23
|
-
"name": "Parse Payload",
|
|
24
|
-
"type": "n8n-nodes-base.code",
|
|
25
|
-
"typeVersion": 2,
|
|
26
|
-
"position": [480, 300]
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"parameters": {
|
|
30
|
-
"conditions": {
|
|
31
|
-
"options": { "fallbackOutputs": [] },
|
|
32
|
-
"conditions": [
|
|
33
|
-
{
|
|
34
|
-
"id": "has-email",
|
|
35
|
-
"leftValue": "={{ $json.email }}",
|
|
36
|
-
"rightValue": "",
|
|
37
|
-
"operator": { "type": "string", "operation": "isNotEmpty" }
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
},
|
|
41
|
-
"options": {}
|
|
42
|
-
},
|
|
43
|
-
"id": "check-email",
|
|
44
|
-
"name": "Validate Email",
|
|
45
|
-
"type": "n8n-nodes-base.if",
|
|
46
|
-
"typeVersion": 2,
|
|
47
|
-
"position": [710, 300]
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"parameters": {
|
|
51
|
-
"method": "POST",
|
|
52
|
-
"url": "=https://api.resend.com/emails",
|
|
53
|
-
"authentication": "genericCredentialType",
|
|
54
|
-
"genericAuthType": "httpHeaderAuth",
|
|
55
|
-
"sendHeaders": true,
|
|
56
|
-
"headerParameters": {
|
|
57
|
-
"parameters": [
|
|
58
|
-
{ "name": "Authorization", "value": "Bearer {{ $env.RESEND_API_KEY }}" },
|
|
59
|
-
{ "name": "Content-Type", "value": "application/json" }
|
|
60
|
-
]
|
|
61
|
-
},
|
|
62
|
-
"sendBody": true,
|
|
63
|
-
"bodyParameters": {
|
|
64
|
-
"parameters": [
|
|
65
|
-
{ "name": "from", "value": "A.L.I.C.E. <hello@av3.ai>" },
|
|
66
|
-
{ "name": "to", "value": "={{ $json.email }}" },
|
|
67
|
-
{ "name": "subject", "value": "Your A.L.I.C.E. Pro License Key" },
|
|
68
|
-
{ "name": "html", "value": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\"/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <title>Welcome to A.L.I.C.E. — Robbie's Robotics</title>\n <style>\n body { margin: 0; padding: 0; background-color: #0f0f14; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #e2e8f0; }\n .wrapper { max-width: 620px; margin: 0 auto; padding: 40px 20px; }\n .logo { text-align: center; margin-bottom: 32px; }\n .logo-text { font-size: 22px; font-weight: 700; color: #a78bfa; letter-spacing: 0.05em; }\n .card { background: #1a1a2e; border: 1px solid #2d2d4e; border-radius: 12px; padding: 36px 40px; margin-bottom: 24px; }\n h1 { font-size: 28px; font-weight: 700; color: #f1f5f9; margin: 0 0 8px 0; }\n .subtitle { color: #94a3b8; font-size: 16px; margin-bottom: 28px; }\n .divider { border: none; border-top: 1px solid #2d2d4e; margin: 28px 0; }\n h2 { font-size: 16px; font-weight: 600; color: #a78bfa; text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 16px 0; }\n .credential-box { background: #0f0f1a; border: 1px solid #3730a3; border-radius: 8px; padding: 16px 20px; margin-bottom: 12px; }\n .credential-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: #64748b; margin-bottom: 4px; }\n .credential-value { font-family: 'Courier New', Courier, monospace; font-size: 15px; color: #e2e8f0; word-break: break-all; }\n .step-list { list-style: none; padding: 0; margin: 0; }\n .step-list li { display: flex; align-items: flex-start; gap: 14px; padding: 12px 0; border-bottom: 1px solid #1e1e38; }\n .step-list li:last-child { border-bottom: none; }\n .step-num { background: #4f46e5; color: #fff; border-radius: 50%; width: 26px; height: 26px; min-width: 26px; font-size: 13px; font-weight: 700; text-align: center; line-height: 26px; }\n .step-title { font-weight: 600; font-size: 15px; color: #f1f5f9; margin-bottom: 4px; }\n .step-desc { font-size: 13px; color: #94a3b8; line-height: 1.5; }\n code { background: #0f0f1a; border: 1px solid #2d2d4e; border-radius: 4px; padding: 1px 6px; font-family: monospace; font-size: 12px; color: #a78bfa; }\n .btn { display: inline-block; background: #4f46e5; color: #fff; text-decoration: none; padding: 14px 28px; border-radius: 8px; font-weight: 600; font-size: 15px; }\n .btn-outline { display: inline-block; border: 1px solid #4f46e5; color: #a78bfa; text-decoration: none; padding: 12px 24px; border-radius: 8px; font-weight: 600; font-size: 14px; }\n .cta-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }\n .support-card { background: #0f0f1a; border: 1px solid #2d2d4e; border-radius: 8px; padding: 20px 24px; margin-bottom: 24px; }\n .support-card p { margin: 0; font-size: 14px; color: #94a3b8; line-height: 1.8; }\n .support-card a { color: #a78bfa; text-decoration: none; }\n .footer { text-align: center; font-size: 12px; color: #475569; padding-top: 8px; }\n .footer a { color: #64748b; text-decoration: none; }\n .badge { display: inline-block; background: #14532d; color: #4ade80; font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 20px; text-transform: uppercase; letter-spacing: 0.06em; margin-left: 8px; vertical-align: middle; }\n </style>\n</head>\n<body>\n <div class=\"wrapper\">\n <div class=\"logo\"><div class=\"logo-text\">🤖 A.L.I.C.E.</div></div>\n <div class=\"card\">\n <h1>You're in. Welcome aboard. <span class=\"badge\">Active</span></h1>\n <p class=\"subtitle\">Your A.L.I.C.E. subscription is live. Below is everything you need to get started.</p>\n <hr class=\"divider\"/>\n <h2>Your License Key</h2>\n <div class=\"credential-box\">\n <div class=\"credential-label\">License Key</div>\n <div class=\"credential-value\">{{ $json.licenseKey }}</div>\n </div>\n <hr class=\"divider\"/>\n <h2>Cloud Tokens</h2>\n <div class=\"credential-box\">\n <div class=\"credential-label\">A.L.I.C.E. Cloud Token</div>\n <div class=\"credential-value\">{{ $json.aliceCloudToken }}</div>\n </div>\n <hr class=\"divider\"/>\n <h2>Quickstart — 3 Steps</h2>\n <ul class=\"step-list\">\n <li><div class=\"step-num\">1</div><div><div class=\"step-title\">Install OpenClaw</div><div class=\"step-desc\"><code>npm install -g openclaw</code> then <code>openclaw setup</code></div></div></li>\n <li><div class=\"step-num\">2</div><div><div class=\"step-title\">Activate A.L.I.C.E.</div><div class=\"step-desc\"><code>{{ $json.activationCmd }}</code></div></div></li>\n <li><div class=\"step-num\">3</div><div><div class=\"step-title\">First task</div><div class=\"step-desc\">Message Alice: <code>review my open PRs and summarize blockers</code></div></div></li>\n </ul>\n <div class=\"cta-row\">\n <a class=\"btn\" href=\"https://getalice.av3.ai/quickstart\">Quickstart Guide →</a>\n <a class=\"btn-outline\" href=\"https://getalice.av3.ai/dashboard\">Dashboard</a>\n </div>\n </div>\n <div class=\"support-card\">\n <h2>Need Help?</h2>\n <p>📧 <a href=\"mailto:rob@robbiesrobotics.com\">rob@robbiesrobotics.com</a><br/>📅 <a href=\"https://cal.com/robbiesrobotics\">Book onboarding call</a><br/>📖 <a href=\"https://getalice.av3.ai/docs\">Docs</a></p>\n </div>\n <div class=\"footer\"><p>Robbie's Robotics · <a href=\"https://getalice.av3.ai\">getalice.av3.ai</a></p></div>\n </div>\n</body>\n</html>" }
|
|
69
|
-
]
|
|
70
|
-
},
|
|
71
|
-
"options": {
|
|
72
|
-
"retryOnFail": true,
|
|
73
|
-
"maxTries": 3,
|
|
74
|
-
"waitBetweenTries": 2000
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
"id": "send-welcome-email",
|
|
78
|
-
"name": "Send Welcome Email",
|
|
79
|
-
"type": "n8n-nodes-base.httpRequest",
|
|
80
|
-
"typeVersion": 4.2,
|
|
81
|
-
"position": [940, 300]
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"parameters": {
|
|
85
|
-
"jsCode": "// Log success for observability\nconst item = $input.item.json;\nconsole.log('Welcome email sent to:', item.email, '| License:', item.licenseKey);\nreturn [{ json: { sent: true, email: item.email, licenseKey: item.licenseKey } }];"
|
|
86
|
-
},
|
|
87
|
-
"id": "log-success",
|
|
88
|
-
"name": "Log Success",
|
|
89
|
-
"type": "n8n-nodes-base.code",
|
|
90
|
-
"typeVersion": 2,
|
|
91
|
-
"position": [1160, 300]
|
|
92
|
-
}
|
|
93
|
-
],
|
|
94
|
-
"connections": {
|
|
95
|
-
"Stripe Checkout Completed Webhook": {
|
|
96
|
-
"main": [
|
|
97
|
-
[{ "node": "Parse Payload", "type": "main", "index": 0 }]
|
|
98
|
-
]
|
|
99
|
-
},
|
|
100
|
-
"Parse Payload": {
|
|
101
|
-
"main": [
|
|
102
|
-
[{ "node": "Validate Email", "type": "main", "index": 0 }]
|
|
103
|
-
]
|
|
104
|
-
},
|
|
105
|
-
"Validate Email": {
|
|
106
|
-
"main": [
|
|
107
|
-
[{ "node": "Send Welcome Email", "type": "main", "index": 0 }],
|
|
108
|
-
[]
|
|
109
|
-
]
|
|
110
|
-
},
|
|
111
|
-
"Send Welcome Email": {
|
|
112
|
-
"main": [
|
|
113
|
-
[{ "node": "Log Success", "type": "main", "index": 0 }]
|
|
114
|
-
]
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
"settings": {
|
|
118
|
-
"executionOrder": "v1",
|
|
119
|
-
"saveManualExecutions": true,
|
|
120
|
-
"callerPolicy": "workflowsFromSameOwner",
|
|
121
|
-
"errorWorkflow": ""
|
|
122
|
-
}
|
|
123
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# Claude Code
|
|
2
|
-
|
|
3
|
-
Delegate coding tasks to the Claude Code CLI for autonomous code generation, editing, debugging, refactoring, and analysis. Claude Code runs with its own built-in tools (file editing, terminal, web search) and returns results directly.
|
|
4
|
-
|
|
5
|
-
## When to Use
|
|
6
|
-
|
|
7
|
-
- Writing new code or features
|
|
8
|
-
- Debugging failing tests or errors
|
|
9
|
-
- Refactoring existing code
|
|
10
|
-
- Code review and analysis
|
|
11
|
-
- Complex multi-file changes
|
|
12
|
-
- Any task where you need to read, write, or execute code
|
|
13
|
-
|
|
14
|
-
## Usage
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
claude_code "Write a Python function that sorts a list of dictionaries by a given key"
|
|
18
|
-
claude_code "Debug the failing test in tests/unit/test_auth.py" "/path/to/project"
|
|
19
|
-
claude_code "Refactor the database module to use async" "/path/to/project" "max"
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Parameters
|
|
23
|
-
|
|
24
|
-
1. **task** (required) — Clear description of the coding task. Be specific about what files, languages, and outcomes you expect.
|
|
25
|
-
2. **workdir** (optional) — Working directory for Claude Code. Defaults to the agent's workspace. Set this to the project root when working on a specific codebase.
|
|
26
|
-
3. **effort** (optional) — Effort level: `low`, `medium`, `high`, `max`. Defaults to `high`. Use `max` for complex multi-file tasks.
|
|
27
|
-
|
|
28
|
-
## Environment Variables
|
|
29
|
-
|
|
30
|
-
- `CLAUDE_CODE_MAX_BUDGET` — Max USD per invocation (default: `2.00`). Prevents runaway costs.
|
|
31
|
-
- `CLAUDE_CODE_PERMISSION_MODE` — Permission mode (default: `auto`). Options: `auto`, `acceptEdits`, `bypassPermissions`.
|
|
32
|
-
|
|
33
|
-
## Tips
|
|
34
|
-
|
|
35
|
-
- Be specific in your task description — "Fix the bug where login fails with empty password" is better than "fix login"
|
|
36
|
-
- Set workdir to the project root so Claude Code can navigate the full codebase
|
|
37
|
-
- For large refactors, use effort `max`
|
|
38
|
-
- Review Claude Code's output before incorporating it into your response
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# claude_code — OpenClaw skill: delegate coding tasks to Claude Code CLI
|
|
3
|
-
#
|
|
4
|
-
# Usage:
|
|
5
|
-
# claude_code <task> [workdir] [effort]
|
|
6
|
-
#
|
|
7
|
-
# Arguments:
|
|
8
|
-
# task — (required) Description of the coding task
|
|
9
|
-
# workdir — (optional) Working directory, defaults to current directory
|
|
10
|
-
# effort — (optional) low|medium|high|max, defaults to high
|
|
11
|
-
#
|
|
12
|
-
# Environment:
|
|
13
|
-
# CLAUDE_CODE_MAX_BUDGET — Max USD per invocation (default: 2.00)
|
|
14
|
-
# CLAUDE_CODE_PERMISSION_MODE — auto|acceptEdits|bypassPermissions (default: auto)
|
|
15
|
-
#
|
|
16
|
-
# This skill runs Claude Code in non-interactive print mode (-p) so it
|
|
17
|
-
# executes autonomously and returns results without user interaction.
|
|
18
|
-
set -euo pipefail
|
|
19
|
-
|
|
20
|
-
TASK="${1:?Error: task description is required. Usage: claude_code <task> [workdir] [effort]}"
|
|
21
|
-
WORKDIR="${2:-.}"
|
|
22
|
-
EFFORT="${3:-high}"
|
|
23
|
-
MAX_BUDGET="${CLAUDE_CODE_MAX_BUDGET:-2.00}"
|
|
24
|
-
PERM_MODE="${CLAUDE_CODE_PERMISSION_MODE:-auto}"
|
|
25
|
-
|
|
26
|
-
# Resolve workdir to absolute path
|
|
27
|
-
WORKDIR="$(cd "$WORKDIR" 2>/dev/null && pwd)" || {
|
|
28
|
-
echo "Error: working directory '$2' does not exist."
|
|
29
|
-
exit 1
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
# Locate claude binary
|
|
33
|
-
CLAUDE_BIN="${CLAUDE_CODE_BIN:-claude}"
|
|
34
|
-
if ! command -v "$CLAUDE_BIN" &>/dev/null; then
|
|
35
|
-
# Check common install locations
|
|
36
|
-
for candidate in "$HOME/.local/bin/claude" "/usr/local/bin/claude"; do
|
|
37
|
-
if [ -x "$candidate" ]; then
|
|
38
|
-
CLAUDE_BIN="$candidate"
|
|
39
|
-
break
|
|
40
|
-
fi
|
|
41
|
-
done
|
|
42
|
-
if ! command -v "$CLAUDE_BIN" &>/dev/null && [ ! -x "$CLAUDE_BIN" ]; then
|
|
43
|
-
echo "Error: claude CLI not found. Install Claude Code: https://docs.anthropic.com/en/docs/claude-code"
|
|
44
|
-
exit 1
|
|
45
|
-
fi
|
|
46
|
-
fi
|
|
47
|
-
|
|
48
|
-
# Run Claude Code in non-interactive print mode
|
|
49
|
-
exec "$CLAUDE_BIN" -p "$TASK" \
|
|
50
|
-
--output-format text \
|
|
51
|
-
--permission-mode "$PERM_MODE" \
|
|
52
|
-
--effort "$EFFORT" \
|
|
53
|
-
--max-budget-usd "$MAX_BUDGET" \
|
|
54
|
-
--no-session-persistence \
|
|
55
|
-
2>&1
|