@openlife/cli 1.8.2 → 1.9.3
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/.catalog/agents/ad-midas/AGENT.md +182 -0
- package/.catalog/agents/ads-analyst/AGENT.md +168 -0
- package/.catalog/agents/agency-agents/AGENT.md +208 -0
- package/.catalog/agents/aha-moment-identifier/AGENT.md +184 -0
- package/.catalog/agents/ai-builder-analyst/AGENT.md +214 -0
- package/.catalog/agents/ai-builder-builder/AGENT.md +241 -0
- package/.catalog/agents/ai-builder-design-director/AGENT.md +216 -0
- package/.catalog/agents/ai-builder-infra-data/AGENT.md +228 -0
- package/.catalog/agents/ai-builder-orchestrator/AGENT.md +207 -0
- package/.catalog/agents/ai-builder-qa-reviewer/AGENT.md +252 -0
- package/.catalog/agents/ai-builder-release-manager/AGENT.md +248 -0
- package/.catalog/agents/ai-scientist-council/AGENT.md +57 -0
- package/.catalog/agents/al-ries/AGENT.md +208 -0
- package/.catalog/agents/alert-classifier/AGENT.md +184 -0
- package/.catalog/agents/alina-wheeler/AGENT.md +217 -0
- package/.catalog/agents/ambient-listener/AGENT.md +153 -0
- package/.catalog/agents/analista-de-impacto/AGENT.md +383 -0
- package/.catalog/agents/analyst-brief-generator/AGENT.md +189 -0
- package/.catalog/agents/andre-chaperon/AGENT.md +239 -0
- package/.catalog/agents/anomaly-detector/AGENT.md +172 -0
- package/.catalog/agents/arbiter/AGENT.md +43 -0
- package/.catalog/agents/archetype-consultant/AGENT.md +248 -0
- package/.catalog/agents/architecture-checker/AGENT.md +178 -0
- package/.catalog/agents/arquivista/AGENT.md +59 -0
- package/.catalog/agents/art-director/AGENT.md +142 -0
- package/.catalog/agents/assayer/AGENT.md +49 -0
- package/.catalog/agents/atlas/AGENT.md +97 -0
- package/.catalog/agents/avaliadora/AGENT.md +66 -0
- package/.catalog/agents/avinash-kaushik/AGENT.md +301 -0
- package/.catalog/agents/bazaar/AGENT.md +43 -0
- package/.catalog/agents/beatriz-monteiro/AGENT.md +76 -0
- package/.catalog/agents/ben-settle/AGENT.md +227 -0
- package/.catalog/agents/bias-auditor/AGENT.md +177 -0
- package/.catalog/agents/blake-snyder/AGENT.md +258 -0
- package/.catalog/agents/board-chair/AGENT.md +194 -0
- package/.catalog/agents/brad-frost/AGENT.md +218 -0
- package/.catalog/agents/brand-chief/AGENT.md +191 -0
- package/.catalog/agents/brene-brown/AGENT.md +329 -0
- package/.catalog/agents/bridge/AGENT.md +43 -0
- package/.catalog/agents/brief-synthesizer/AGENT.md +120 -0
- package/.catalog/agents/bruno-cezar/AGENT.md +70 -0
- package/.catalog/agents/builder/AGENT.md +115 -0
- package/.catalog/agents/busterer/AGENT.md +141 -0
- package/.catalog/agents/byron-sharp/AGENT.md +202 -0
- package/.catalog/agents/caio-architect/AGENT.md +268 -0
- package/.catalog/agents/candidate-summary-agent/AGENT.md +171 -0
- package/.catalog/agents/capital-strategist/AGENT.md +55 -0
- package/.catalog/agents/cartographer/AGENT.md +147 -0
- package/.catalog/agents/catalyst/AGENT.md +43 -0
- package/.catalog/agents/chain/AGENT.md +51 -0
- package/.catalog/agents/chancellor/AGENT.md +101 -0
- package/.catalog/agents/charlie-munger/AGENT.md +623 -0
- package/.catalog/agents/checklist-builder/AGENT.md +182 -0
- package/.catalog/agents/chris-sanders/AGENT.md +238 -0
- package/.catalog/agents/chronicler/AGENT.md +49 -0
- package/.catalog/agents/cio-engineer/AGENT.md +242 -0
- package/.catalog/agents/claude-hopkins/AGENT.md +215 -0
- package/.catalog/agents/clause-extractor/AGENT.md +193 -0
- package/.catalog/agents/clayton-makepeace/AGENT.md +258 -0
- package/.catalog/agents/clinical-note-drafter/AGENT.md +174 -0
- package/.catalog/agents/closer/AGENT.md +71 -0
- package/.catalog/agents/cloudflare-archon/AGENT.md +70 -0
- package/.catalog/agents/cmo-architect/AGENT.md +241 -0
- package/.catalog/agents/command-generator/AGENT.md +154 -0
- package/.catalog/agents/community-growth/AGENT.md +180 -0
- package/.catalog/agents/conduit/AGENT.md +43 -0
- package/.catalog/agents/consul/AGENT.md +43 -0
- package/.catalog/agents/context-composer/AGENT.md +149 -0
- package/.catalog/agents/context-enricher/AGENT.md +173 -0
- package/.catalog/agents/contrarian/AGENT.md +43 -0
- package/.catalog/agents/coo-orchestrator/AGENT.md +226 -0
- package/.catalog/agents/copy-chief/AGENT.md +199 -0
- package/.catalog/agents/creative-analyst/AGENT.md +175 -0
- package/.catalog/agents/critias/AGENT.md +43 -0
- package/.catalog/agents/crm-manager/AGENT.md +73 -0
- package/.catalog/agents/crypto-orchestrator/AGENT.md +205 -0
- package/.catalog/agents/cto-architect/AGENT.md +227 -0
- package/.catalog/agents/curadora/AGENT.md +65 -0
- package/.catalog/agents/curriculum-mapper/AGENT.md +183 -0
- package/.catalog/agents/cyber-chief/AGENT.md +153 -0
- package/.catalog/agents/dan-harmon/AGENT.md +200 -0
- package/.catalog/agents/dan-kennedy/AGENT.md +235 -0
- package/.catalog/agents/dan-koe/AGENT.md +256 -0
- package/.catalog/agents/dan-mall/AGENT.md +211 -0
- package/.catalog/agents/data-chief/AGENT.md +200 -0
- package/.catalog/agents/data-profiler/AGENT.md +180 -0
- package/.catalog/agents/data-quality-reporter/AGENT.md +209 -0
- package/.catalog/agents/dave-malouf/AGENT.md +231 -0
- package/.catalog/agents/david-aaker/AGENT.md +199 -0
- package/.catalog/agents/david-deutsch/AGENT.md +230 -0
- package/.catalog/agents/david-ogilvy/AGENT.md +231 -0
- package/.catalog/agents/david-spinks/AGENT.md +310 -0
- package/.catalog/agents/defi-launcher/AGENT.md +158 -0
- package/.catalog/agents/delivery-tracker/AGENT.md +69 -0
- package/.catalog/agents/denise-yohn/AGENT.md +205 -0
- package/.catalog/agents/depesh-mandalia/AGENT.md +207 -0
- package/.catalog/agents/derek-sivers/AGENT.md +301 -0
- package/.catalog/agents/design-chief/AGENT.md +142 -0
- package/.catalog/agents/design-system-architect/AGENT.md +142 -0
- package/.catalog/agents/destiladora/AGENT.md +71 -0
- package/.catalog/agents/diagnostic-assessor/AGENT.md +176 -0
- package/.catalog/agents/dirber/AGENT.md +144 -0
- package/.catalog/agents/domain-scout/AGENT.md +168 -0
- package/.catalog/agents/domain-seer/AGENT.md +46 -0
- package/.catalog/agents/donald-miller/AGENT.md +212 -0
- package/.catalog/agents/emily-heyward/AGENT.md +180 -0
- package/.catalog/agents/engine/AGENT.md +43 -0
- package/.catalog/agents/estrategista-de-ciclo/AGENT.md +334 -0
- package/.catalog/agents/eugene-schwartz/AGENT.md +271 -0
- package/.catalog/agents/extratora/AGENT.md +65 -0
- package/.catalog/agents/false-positive-filter/AGENT.md +169 -0
- package/.catalog/agents/fenomenologo/AGENT.md +202 -0
- package/.catalog/agents/fiscal/AGENT.md +177 -0
- package/.catalog/agents/followup-agent/AGENT.md +69 -0
- package/.catalog/agents/format-adapter/AGENT.md +87 -0
- package/.catalog/agents/frank-kern/AGENT.md +228 -0
- package/.catalog/agents/frontend-engineer/AGENT.md +82 -0
- package/.catalog/agents/frontier-power-mapper/AGENT.md +56 -0
- package/.catalog/agents/fuzzer/AGENT.md +154 -0
- package/.catalog/agents/gary-bencivenga/AGENT.md +230 -0
- package/.catalog/agents/gary-halbert/AGENT.md +252 -0
- package/.catalog/agents/genome/AGENT.md +50 -0
- package/.catalog/agents/georgia-weidman/AGENT.md +211 -0
- package/.catalog/agents/guide/AGENT.md +43 -0
- package/.catalog/agents/hammer/AGENT.md +50 -0
- package/.catalog/agents/helena-voss/AGENT.md +79 -0
- package/.catalog/agents/helena-voss-v2/AGENT.md +196 -0
- package/.catalog/agents/herald/AGENT.md +98 -0
- package/.catalog/agents/hermes/AGENT.md +75 -0
- package/.catalog/agents/hormozi-ads/AGENT.md +192 -0
- package/.catalog/agents/hormozi-advisor/AGENT.md +211 -0
- package/.catalog/agents/hormozi-audit/AGENT.md +211 -0
- package/.catalog/agents/hormozi-chief/AGENT.md +144 -0
- package/.catalog/agents/hormozi-closer/AGENT.md +212 -0
- package/.catalog/agents/hormozi-content/AGENT.md +199 -0
- package/.catalog/agents/hormozi-copy/AGENT.md +185 -0
- package/.catalog/agents/hormozi-hooks/AGENT.md +210 -0
- package/.catalog/agents/hormozi-launch/AGENT.md +193 -0
- package/.catalog/agents/hormozi-leads/AGENT.md +231 -0
- package/.catalog/agents/hormozi-models/AGENT.md +224 -0
- package/.catalog/agents/hormozi-offers/AGENT.md +230 -0
- package/.catalog/agents/hormozi-pricing/AGENT.md +184 -0
- package/.catalog/agents/hormozi-retention/AGENT.md +199 -0
- package/.catalog/agents/hormozi-scale/AGENT.md +208 -0
- package/.catalog/agents/hormozi-workshop/AGENT.md +193 -0
- package/.catalog/agents/hostinger-warden/AGENT.md +46 -0
- package/.catalog/agents/html5-builder/AGENT.md +106 -0
- package/.catalog/agents/hype-detector/AGENT.md +52 -0
- package/.catalog/agents/identitario/AGENT.md +298 -0
- package/.catalog/agents/indexadora/AGENT.md +49 -0
- package/.catalog/agents/instagram-scout/AGENT.md +94 -0
- package/.catalog/agents/interaction-architect/AGENT.md +81 -0
- package/.catalog/agents/jean-noel-kapferer/AGENT.md +222 -0
- package/.catalog/agents/jim-manico/AGENT.md +215 -0
- package/.catalog/agents/jim-rutz/AGENT.md +226 -0
- package/.catalog/agents/joe-sugarman/AGENT.md +267 -0
- package/.catalog/agents/john-carlton/AGENT.md +236 -0
- package/.catalog/agents/jon-benson/AGENT.md +229 -0
- package/.catalog/agents/joseph-campbell/AGENT.md +217 -0
- package/.catalog/agents/kasim-aslam/AGENT.md +191 -0
- package/.catalog/agents/keith-johnstone/AGENT.md +190 -0
- package/.catalog/agents/kevin-keller/AGENT.md +232 -0
- package/.catalog/agents/kindra-hall/AGENT.md +195 -0
- package/.catalog/agents/lara-coordinator/AGENT.md +147 -0
- package/.catalog/agents/lead-qualifier/AGENT.md +73 -0
- package/.catalog/agents/leitora-critica/AGENT.md +70 -0
- package/.catalog/agents/lens/AGENT.md +50 -0
- package/.catalog/agents/log-analyzer/AGENT.md +176 -0
- package/.catalog/agents/logic-reviewer/AGENT.md +177 -0
- package/.catalog/agents/lp-backend-dev/AGENT.md +198 -0
- package/.catalog/agents/lp-copywriter/AGENT.md +162 -0
- package/.catalog/agents/lp-design-architect/AGENT.md +209 -0
- package/.catalog/agents/lp-frontend-dev/AGENT.md +194 -0
- package/.catalog/agents/lp-image-creator/AGENT.md +156 -0
- package/.catalog/agents/lp-integrator/AGENT.md +182 -0
- package/.catalog/agents/lp-researcher/AGENT.md +169 -0
- package/.catalog/agents/lp-reviewer/AGENT.md +218 -0
- package/.catalog/agents/lp-strategist/AGENT.md +159 -0
- package/.catalog/agents/magistrate/AGENT.md +43 -0
- package/.catalog/agents/manifestador/AGENT.md +312 -0
- package/.catalog/agents/marcus-carey/AGENT.md +233 -0
- package/.catalog/agents/marcus-leal/AGENT.md +70 -0
- package/.catalog/agents/market-economist/AGENT.md +60 -0
- package/.catalog/agents/marshall-ganz/AGENT.md +200 -0
- package/.catalog/agents/marty-neumeier/AGENT.md +203 -0
- package/.catalog/agents/matthew-dicks/AGENT.md +185 -0
- package/.catalog/agents/media-buyer/AGENT.md +192 -0
- package/.catalog/agents/medical-coder/AGENT.md +175 -0
- package/.catalog/agents/merchant/AGENT.md +43 -0
- package/.catalog/agents/mercury/AGENT.md +50 -0
- package/.catalog/agents/metadata-artist/AGENT.md +208 -0
- package/.catalog/agents/miller-sticky-brand/AGENT.md +213 -0
- package/.catalog/agents/mirror/AGENT.md +49 -0
- package/.catalog/agents/molly-pittman/AGENT.md +218 -0
- package/.catalog/agents/motion-designer/AGENT.md +88 -0
- package/.catalog/agents/movement-architect/AGENT.md +243 -0
- package/.catalog/agents/movement-chief/AGENT.md +168 -0
- package/.catalog/agents/naming-strategist/AGENT.md +204 -0
- package/.catalog/agents/nancy-duarte/AGENT.md +187 -0
- package/.catalog/agents/naval-ravikant/AGENT.md +284 -0
- package/.catalog/agents/nicholas-kusmich/AGENT.md +190 -0
- package/.catalog/agents/nick-mehta/AGENT.md +327 -0
- package/.catalog/agents/node-scorer/AGENT.md +137 -0
- package/.catalog/agents/objection-handler/AGENT.md +73 -0
- package/.catalog/agents/omar-santos/AGENT.md +239 -0
- package/.catalog/agents/operator-brain/AGENT.md +54 -0
- package/.catalog/agents/opportunity-strategist/AGENT.md +61 -0
- package/.catalog/agents/ops-coordinator/AGENT.md +75 -0
- package/.catalog/agents/oracle/AGENT.md +43 -0
- package/.catalog/agents/oren-klaff/AGENT.md +199 -0
- package/.catalog/agents/parent-report-agent/AGENT.md +186 -0
- package/.catalog/agents/park-howell/AGENT.md +185 -0
- package/.catalog/agents/parris-lampropoulos/AGENT.md +221 -0
- package/.catalog/agents/pathfinder/AGENT.md +60 -0
- package/.catalog/agents/patrick-lencioni/AGENT.md +427 -0
- package/.catalog/agents/pattern-analyst/AGENT.md +93 -0
- package/.catalog/agents/pedro-sobral/AGENT.md +191 -0
- package/.catalog/agents/perfectionist/AGENT.md +136 -0
- package/.catalog/agents/performance-analyst/AGENT.md +168 -0
- package/.catalog/agents/peter-fader/AGENT.md +279 -0
- package/.catalog/agents/peter-kim/AGENT.md +212 -0
- package/.catalog/agents/peter-thiel/AGENT.md +302 -0
- package/.catalog/agents/pixel-specialist/AGENT.md +177 -0
- package/.catalog/agents/playbook-enforcer/AGENT.md +194 -0
- package/.catalog/agents/postmortem-writer/AGENT.md +193 -0
- package/.catalog/agents/press-kit-hunter/AGENT.md +101 -0
- package/.catalog/agents/priority-engine/AGENT.md +71 -0
- package/.catalog/agents/proactive-outreach/AGENT.md +211 -0
- package/.catalog/agents/progress-tracker/AGENT.md +192 -0
- package/.catalog/agents/project-architect/AGENT.md +70 -0
- package/.catalog/agents/proposal-writer/AGENT.md +74 -0
- package/.catalog/agents/quality-reviewer/AGENT.md +184 -0
- package/.catalog/agents/rafa-ads/AGENT.md +236 -0
- package/.catalog/agents/rafa-content/AGENT.md +126 -0
- package/.catalog/agents/rafa-copy-master/AGENT.md +150 -0
- package/.catalog/agents/rafa-growth-router/AGENT.md +168 -0
- package/.catalog/agents/rafa-hooks/AGENT.md +106 -0
- package/.catalog/agents/rafa-leads/AGENT.md +113 -0
- package/.catalog/agents/rafa-lens/AGENT.md +62 -0
- package/.catalog/agents/railway-conductor/AGENT.md +70 -0
- package/.catalog/agents/ralph-burns/AGENT.md +196 -0
- package/.catalog/agents/ray-dalio/AGENT.md +619 -0
- package/.catalog/agents/redline-drafter/AGENT.md +198 -0
- package/.catalog/agents/reference-hunter/AGENT.md +192 -0
- package/.catalog/agents/reid-hoffman/AGENT.md +311 -0
- package/.catalog/agents/remediation-suggester/AGENT.md +173 -0
- package/.catalog/agents/resume-parser/AGENT.md +171 -0
- package/.catalog/agents/retrospective-agent/AGENT.md +70 -0
- package/.catalog/agents/review-summary-writer/AGENT.md +177 -0
- package/.catalog/agents/ripper/AGENT.md +154 -0
- package/.catalog/agents/risk-flagger/AGENT.md +196 -0
- package/.catalog/agents/robert-collier/AGENT.md +216 -0
- package/.catalog/agents/rogue/AGENT.md +149 -0
- package/.catalog/agents/root-cause-correlator/AGENT.md +187 -0
- package/.catalog/agents/runbook-executor/AGENT.md +180 -0
- package/.catalog/agents/russell-brunson/AGENT.md +262 -0
- package/.catalog/agents/ry-schwartz/AGENT.md +218 -0
- package/.catalog/agents/sales-strategist/AGENT.md +74 -0
- package/.catalog/agents/scale-optimizer/AGENT.md +177 -0
- package/.catalog/agents/schema-validator/AGENT.md +173 -0
- package/.catalog/agents/scribe/AGENT.md +101 -0
- package/.catalog/agents/sculptor/AGENT.md +110 -0
- package/.catalog/agents/sean-ellis/AGENT.md +336 -0
- package/.catalog/agents/security-auditor/AGENT.md +195 -0
- package/.catalog/agents/security-reviewer/AGENT.md +178 -0
- package/.catalog/agents/security-sentinel/AGENT.md +47 -0
- package/.catalog/agents/sentinel/AGENT.md +54 -0
- package/.catalog/agents/shannon-runner/AGENT.md +141 -0
- package/.catalog/agents/shawn-coyne/AGENT.md +241 -0
- package/.catalog/agents/shield/AGENT.md +43 -0
- package/.catalog/agents/shortlist-ranker/AGENT.md +168 -0
- package/.catalog/agents/simon-sinek/AGENT.md +324 -0
- package/.catalog/agents/skills-matcher/AGENT.md +181 -0
- package/.catalog/agents/smelter/AGENT.md +50 -0
- package/.catalog/agents/solana-dev/AGENT.md +187 -0
- package/.catalog/agents/status-page-updater/AGENT.md +204 -0
- package/.catalog/agents/stefan-georgi/AGENT.md +221 -0
- package/.catalog/agents/story-chief/AGENT.md +188 -0
- package/.catalog/agents/strategist/AGENT.md +113 -0
- package/.catalog/agents/style-enforcer/AGENT.md +180 -0
- package/.catalog/agents/summary-reporter/AGENT.md +236 -0
- package/.catalog/agents/task-decomposer/AGENT.md +138 -0
- package/.catalog/agents/task-manager/AGENT.md +75 -0
- package/.catalog/agents/terminal/AGENT.md +43 -0
- package/.catalog/agents/test-agent/AGENT.md +8 -0
- package/.catalog/agents/threat-prioritizer/AGENT.md +183 -0
- package/.catalog/agents/todd-brown/AGENT.md +204 -0
- package/.catalog/agents/token-architect/AGENT.md +180 -0
- package/.catalog/agents/tokenomics-strategist/AGENT.md +172 -0
- package/.catalog/agents/tom-breeze/AGENT.md +208 -0
- package/.catalog/agents/tooltip-generator/AGENT.md +181 -0
- package/.catalog/agents/traffic-chief/AGENT.md +130 -0
- package/.catalog/agents/tree-integrator/AGENT.md +151 -0
- package/.catalog/agents/tree-orchestrator/AGENT.md +151 -0
- package/.catalog/agents/tree-validator/AGENT.md +154 -0
- package/.catalog/agents/trend-historian/AGENT.md +82 -0
- package/.catalog/agents/tunnel-master/AGENT.md +53 -0
- package/.catalog/agents/tutor-agent/AGENT.md +204 -0
- package/.catalog/agents/ui-engineer/AGENT.md +135 -0
- package/.catalog/agents/user-behavior-tracker/AGENT.md +183 -0
- package/.catalog/agents/ux-critic/AGENT.md +82 -0
- package/.catalog/agents/ux-designer/AGENT.md +138 -0
- package/.catalog/agents/vercel-pilot/AGENT.md +51 -0
- package/.catalog/agents/vision-chief/AGENT.md +234 -0
- package/.catalog/agents/visual-ads/AGENT.md +115 -0
- package/.catalog/agents/visual-director/AGENT.md +79 -0
- package/.catalog/agents/visual-generator/AGENT.md +141 -0
- package/.catalog/agents/visual-researcher/AGENT.md +100 -0
- package/.catalog/agents/voice/AGENT.md +43 -0
- package/.catalog/agents/vulcan/AGENT.md +107 -0
- package/.catalog/agents/wave-dispatcher/AGENT.md +172 -0
- package/.catalog/agents/weaver/AGENT.md +49 -0
- package/.catalog/agents/wes-kao/AGENT.md +301 -0
- package/.catalog/agents/wire/AGENT.md +43 -0
- package/.catalog/agents/yvon-chouinard/AGENT.md +308 -0
- package/.catalog/capabilities/deep-research/INDEX.md +26 -0
- package/.catalog/capabilities/deep-research/capability.yaml +30 -0
- package/.catalog/capabilities/deep-research/skills/advanced-query-planning.md +24 -0
- package/.catalog/capabilities/deep-research/skills/contradiction-analysis.md +24 -0
- package/.catalog/capabilities/deep-research/skills/evidence-synthesis.md +24 -0
- package/.catalog/capabilities/deep-research/skills/executive-briefing.md +24 -0
- package/.catalog/capabilities/deep-research/skills/source-credibility-scoring.md +24 -0
- package/.catalog/capabilities/deep-research/squads/research-squad/SQUAD.md +18 -0
- package/.catalog/capabilities/deep-research/workflows/deep-research-flow.yaml +15 -0
- package/.catalog/mcps/my-mcp/REFERENCE.md +7 -0
- package/.catalog/mcps/test-mcp/mcp.json +7 -0
- package/.catalog/skill-networks.json +29 -0
- package/.catalog/skills/1password/SKILL.md +34 -0
- package/.catalog/skills/apple-notes/SKILL.md +34 -0
- package/.catalog/skills/apple-reminders/SKILL.md +34 -0
- package/.catalog/skills/bear-notes/SKILL.md +34 -0
- package/.catalog/skills/blogwatcher/SKILL.md +34 -0
- package/.catalog/skills/blucli/SKILL.md +34 -0
- package/.catalog/skills/bluebubbles/SKILL.md +34 -0
- package/.catalog/skills/browser-use/SKILL.md +132 -0
- package/.catalog/skills/camsnap/SKILL.md +34 -0
- package/.catalog/skills/canvas/SKILL.md +34 -0
- package/.catalog/skills/clawhub/SKILL.md +34 -0
- package/.catalog/skills/coding-agent/SKILL.md +34 -0
- package/.catalog/skills/design-extractor/OPENLIFE_INSTALL.md +24 -0
- package/.catalog/skills/design-extractor/SKILL.md +413 -0
- package/.catalog/skills/design-extractor/references/css-patterns.md +97 -0
- package/.catalog/skills/discord/SKILL.md +34 -0
- package/.catalog/skills/eightctl/SKILL.md +34 -0
- package/.catalog/skills/gemini/SKILL.md +34 -0
- package/.catalog/skills/gh-issues/SKILL.md +34 -0
- package/.catalog/skills/gifgrep/SKILL.md +34 -0
- package/.catalog/skills/github/SKILL.md +34 -0
- package/.catalog/skills/gog/SKILL.md +34 -0
- package/.catalog/skills/goplaces/SKILL.md +34 -0
- package/.catalog/skills/healthcheck/SKILL.md +34 -0
- package/.catalog/skills/himalaya/SKILL.md +34 -0
- package/.catalog/skills/imsg/SKILL.md +34 -0
- package/.catalog/skills/mcporter/SKILL.md +34 -0
- package/.catalog/skills/model-usage/SKILL.md +34 -0
- package/.catalog/skills/nano-banana-pro/SKILL.md +34 -0
- package/.catalog/skills/nano-pdf/SKILL.md +34 -0
- package/.catalog/skills/node-connect/SKILL.md +34 -0
- package/.catalog/skills/notion/SKILL.md +34 -0
- package/.catalog/skills/obsidian/SKILL.md +34 -0
- package/.catalog/skills/openai-image-gen/SKILL.md +34 -0
- package/.catalog/skills/openai-whisper/SKILL.md +34 -0
- package/.catalog/skills/openai-whisper-api/SKILL.md +34 -0
- package/.catalog/skills/openhue/SKILL.md +34 -0
- package/.catalog/skills/oracle/SKILL.md +34 -0
- package/.catalog/skills/ordercli/SKILL.md +34 -0
- package/.catalog/skills/peekaboo/SKILL.md +34 -0
- package/.catalog/skills/sag/SKILL.md +34 -0
- package/.catalog/skills/sample-from-url/IMPORTED_REFERENCE.md +13 -0
- package/.catalog/skills/session-logs/SKILL.md +34 -0
- package/.catalog/skills/sherpa-onnx-tts/SKILL.md +34 -0
- package/.catalog/skills/skill-creator/SKILL.md +34 -0
- package/.catalog/skills/slack/SKILL.md +34 -0
- package/.catalog/skills/songsee/SKILL.md +34 -0
- package/.catalog/skills/sonoscli/SKILL.md +34 -0
- package/.catalog/skills/spotify-player/SKILL.md +34 -0
- package/.catalog/skills/summarize/SKILL.md +34 -0
- package/.catalog/skills/test-skill/REFERENCE.md +7 -0
- package/.catalog/skills/test-skill-autogen/SKILL.md +9 -0
- package/.catalog/skills/things-mac/SKILL.md +34 -0
- package/.catalog/skills/tmux/SKILL.md +34 -0
- package/.catalog/skills/trello/SKILL.md +34 -0
- package/.catalog/skills/video-frames/SKILL.md +34 -0
- package/.catalog/skills/voice-call/SKILL.md +34 -0
- package/.catalog/skills/wacli/SKILL.md +34 -0
- package/.catalog/skills/weather/SKILL.md +34 -0
- package/.catalog/skills/xurl/SKILL.md +34 -0
- package/.catalog/squads/00-governance-advisory-board/SQUAD.md +103 -0
- package/.catalog/squads/00-governance-advisory-board/workflows/wf-board-meeting.yaml +25 -0
- package/.catalog/squads/00-governance-advisory-board/workflows/wf-decision-framework.yaml +25 -0
- package/.catalog/squads/00-governance-c-level-squad/SQUAD.md +93 -0
- package/.catalog/squads/00-governance-c-level-squad/workflows/wf-board-presentation.yaml +25 -0
- package/.catalog/squads/00-governance-c-level-squad/workflows/wf-strategic-planning.yaml +25 -0
- package/.catalog/squads/00-governance-capital-ai/SQUAD.md +147 -0
- package/.catalog/squads/00-governance-capital-ai-canon-v1-livros-e-grandes-mentes/SQUAD.md +140 -0
- package/.catalog/squads/00-governance-capital-ai-definicao-canonica/SQUAD.md +49 -0
- package/.catalog/squads/00-governance-conselho/SQUAD.md +116 -0
- package/.catalog/squads/00-governance-host-quest/SQUAD.md +132 -0
- package/.catalog/squads/00-governance-project-ops-squad/SQUAD.md +97 -0
- package/.catalog/squads/00-governance-project-ops-squad/workflows/mission-to-project.yaml +25 -0
- package/.catalog/squads/00-governance-project-ops-squad/workflows/sprint-planning.yaml +25 -0
- package/.catalog/squads/00-governance-project-ops-squad/workflows/weekly-review.yaml +25 -0
- package/.catalog/squads/00-governance-scrap-master/SQUAD.md +124 -0
- package/.catalog/squads/01-meta-framework-ai-builder/SQUAD.md +167 -0
- package/.catalog/squads/01-meta-framework-aiobuilder-funcionalidades-inspiradas-em-claude-code/SQUAD.md +119 -0
- package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/SQUAD.md +130 -0
- package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-analysis-flow.yaml +25 -0
- package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-execution-flow.yaml +25 -0
- package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-planning-flow.yaml +25 -0
- package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/workflows/tree-resume-flow.yaml +25 -0
- package/.catalog/squads/02-product-growth-ads-xpower/SQUAD.md +129 -0
- package/.catalog/squads/02-product-growth-awards/SQUAD.md +123 -0
- package/.catalog/squads/02-product-growth-brand-squad/SQUAD.md +136 -0
- package/.catalog/squads/02-product-growth-brand-squad/workflows/wf-brand-creation.yaml +25 -0
- package/.catalog/squads/02-product-growth-brand-squad/workflows/wf-rebrand.yaml +25 -0
- package/.catalog/squads/02-product-growth-copy-squad/SQUAD.md +148 -0
- package/.catalog/squads/02-product-growth-copy-squad/workflows/wf-copy-review-cycle.yaml +25 -0
- package/.catalog/squads/02-product-growth-copy-squad/workflows/wf-full-copy-project.yaml +25 -0
- package/.catalog/squads/02-product-growth-design-squad/SQUAD.md +98 -0
- package/.catalog/squads/02-product-growth-design-squad/workflows/wf-design-system-creation.yaml +25 -0
- package/.catalog/squads/02-product-growth-design-squad/workflows/wf-feature-design.yaml +25 -0
- package/.catalog/squads/02-product-growth-fabrica-ads/SQUAD.md +157 -0
- package/.catalog/squads/02-product-growth-fabrica-imortais-backup/SQUAD.md +148 -0
- package/.catalog/squads/02-product-growth-hormozi-squad/SQUAD.md +118 -0
- package/.catalog/squads/02-product-growth-hormozi-squad/workflows/wf-business-turnaround.yaml +25 -0
- package/.catalog/squads/02-product-growth-hormozi-squad/workflows/wf-offer-creation.yaml +25 -0
- package/.catalog/squads/02-product-growth-movement/SQUAD.md +94 -0
- package/.catalog/squads/02-product-growth-movement/workflows/wf-movement-launch.yaml +25 -0
- package/.catalog/squads/02-product-growth-saas-onboarding-activator/SQUAD.md +103 -0
- package/.catalog/squads/02-product-growth-saas-onboarding-activator/workflows/full-onboarding-activation-workflow.yaml +25 -0
- package/.catalog/squads/02-product-growth-saas-onboarding-activator/workflows/quick-engagement-boost-workflow.yaml +25 -0
- package/.catalog/squads/02-product-growth-sales-squad/SQUAD.md +112 -0
- package/.catalog/squads/02-product-growth-sales-squad/workflows/followup-sequence.yaml +25 -0
- package/.catalog/squads/02-product-growth-sales-squad/workflows/full-sales-cycle.yaml +25 -0
- package/.catalog/squads/02-product-growth-sales-squad/workflows/proposal-flow.yaml +25 -0
- package/.catalog/squads/02-product-growth-storytelling/SQUAD.md +106 -0
- package/.catalog/squads/02-product-growth-storytelling/workflows/wf-brand-narrative.yaml +25 -0
- package/.catalog/squads/02-product-growth-storytelling/workflows/wf-story-development.yaml +25 -0
- package/.catalog/squads/02-product-growth-traffic-masters/SQUAD.md +117 -0
- package/.catalog/squads/02-product-growth-traffic-masters/workflows/wf-account-audit.yaml +25 -0
- package/.catalog/squads/02-product-growth-traffic-masters/workflows/wf-campaign-launch.yaml +25 -0
- package/.catalog/squads/02-product-growth-ultimate-landingpage/SQUAD.md +114 -0
- package/.catalog/squads/03-engineering-quality-automated-code-review-squad/SQUAD.md +102 -0
- package/.catalog/squads/03-engineering-quality-automated-code-review-squad/workflows/full-code-review-workflow.yaml +25 -0
- package/.catalog/squads/03-engineering-quality-automated-code-review-squad/workflows/quick-security-check-workflow.yaml +25 -0
- package/.catalog/squads/03-engineering-quality-cloudflare-mini/SQUAD.md +65 -0
- package/.catalog/squads/03-engineering-quality-seguranca/SQUAD.md +24 -0
- package/.catalog/squads/04-data-security-cybersecurity/SQUAD.md +113 -0
- package/.catalog/squads/04-data-security-cybersecurity/workflows/wf-incident-response.yaml +25 -0
- package/.catalog/squads/04-data-security-cybersecurity/workflows/wf-pentest-engagement.yaml +25 -0
- package/.catalog/squads/04-data-security-data-quality-guardian/SQUAD.md +102 -0
- package/.catalog/squads/04-data-security-data-quality-guardian/workflows/full-data-quality-audit-workflow.yaml +25 -0
- package/.catalog/squads/04-data-security-data-quality-guardian/workflows/quick-data-check-workflow.yaml +25 -0
- package/.catalog/squads/04-data-security-data-squad/SQUAD.md +95 -0
- package/.catalog/squads/04-data-security-data-squad/workflows/wf-analytics-setup.yaml +25 -0
- package/.catalog/squads/04-data-security-data-squad/workflows/wf-growth-sprint.yaml +25 -0
- package/.catalog/squads/04-data-security-incident-response-squad/SQUAD.md +103 -0
- package/.catalog/squads/04-data-security-incident-response-squad/workflows/full-incident-response-workflow.yaml +25 -0
- package/.catalog/squads/04-data-security-incident-response-squad/workflows/rapid-triage-workflow.yaml +25 -0
- package/.catalog/squads/04-data-security-soc-alert-triage/SQUAD.md +103 -0
- package/.catalog/squads/04-data-security-soc-alert-triage/workflows/full-alert-triage-workflow.yaml +25 -0
- package/.catalog/squads/04-data-security-soc-alert-triage/workflows/rapid-classification-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-adaptive-tutor-k12/SQUAD.md +102 -0
- package/.catalog/squads/05-domain-specialists-adaptive-tutor-k12/workflows/full-tutoring-cycle-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-adaptive-tutor-k12/workflows/quick-practice-session-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-ambient-clinical-scribe/SQUAD.md +102 -0
- package/.catalog/squads/05-domain-specialists-ambient-clinical-scribe/workflows/full-documentation-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-ambient-clinical-scribe/workflows/quick-note-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-bibliotecaria/SQUAD.md +121 -0
- package/.catalog/squads/05-domain-specialists-contract-review-squad/SQUAD.md +104 -0
- package/.catalog/squads/05-domain-specialists-contract-review-squad/workflows/full-contract-review-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-contract-review-squad/workflows/quick-risk-assessment-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-crypto-token-forge/SQUAD.md +143 -0
- package/.catalog/squads/05-domain-specialists-crypto-token-forge/workflows/full-token-launch-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-crypto-token-forge/workflows/memecoin-express-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-crypto-token-forge/workflows/utility-token-launch-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-legaltech/SQUAD.md +28 -0
- package/.catalog/squads/05-domain-specialists-resume-screener-squad/SQUAD.md +102 -0
- package/.catalog/squads/05-domain-specialists-resume-screener-squad/workflows/full-resume-screening-workflow.yaml +25 -0
- package/.catalog/squads/05-domain-specialists-resume-screener-squad/workflows/quick-skills-match-workflow.yaml +25 -0
- package/.catalog/squads/mirofish-intel-mirofish-intel/SQUAD.md +70 -0
- package/.catalog/squads/mirofish-mirofish-squad/SQUAD.md +177 -0
- package/.catalog/squads/openlife-auto-criar-pipeline-de-revis-o-jur-dica-para-contratos-1777092830690/SQUAD.md +16 -0
- package/.catalog/squads/operator-cli/SQUAD.md +33 -0
- package/.catalog/squads/telegram-autonomy/SQUAD.md +34 -0
- package/.catalog/squads/test-squad/SQUAD.md +8 -0
- package/.catalog/teams.json +16 -0
- package/.openlife/method/agents/atlas.md +102 -0
- package/.openlife/method/agents/builder.md +92 -0
- package/.openlife/method/agents/conductor.md +93 -0
- package/.openlife/method/agents/forge.md +96 -0
- package/.openlife/method/agents/genesis.md +115 -0
- package/.openlife/method/agents/lyra.md +85 -0
- package/.openlife/method/agents/maestro.md +92 -0
- package/.openlife/method/agents/mesh.md +101 -0
- package/.openlife/method/agents/prism.md +85 -0
- package/.openlife/method/agents/sentinel.md +115 -0
- package/.openlife/method/agents/steward.md +93 -0
- package/.openlife/method/agents/vortex.md +94 -0
- package/dist/cli/CommandFlowRunner.js +167 -0
- package/dist/cli/install/Phases.js +43 -0
- package/dist/index.js +118 -0
- package/dist/orchestrator/AgentRegistry.js +45 -1
- package/dist/orchestrator/ProjectMetadata.js +183 -0
- package/dist/orchestrator/SkillRegistryV2.js +48 -3
- package/dist/orchestrator/SquadRegistry.js +47 -1
- package/dist/test_flow_run_cli.js +183 -0
- package/dist/test_host_uninstaller.js +12 -2
- package/dist/test_openlife_method_inventory.js +183 -0
- package/dist/test_workflow_e2e.js +10 -3
- package/dist-templates/claude-code/agents/openlife-atlas.md +12 -44
- package/dist-templates/claude-code/agents/openlife-builder.md +20 -0
- package/dist-templates/claude-code/agents/openlife-conductor.md +20 -0
- package/dist-templates/claude-code/agents/openlife-forge.md +12 -34
- package/dist-templates/claude-code/agents/openlife-genesis.md +12 -51
- package/dist-templates/claude-code/agents/openlife-lyra.md +12 -32
- package/dist-templates/claude-code/agents/openlife-maestro.md +27 -41
- package/dist-templates/claude-code/agents/openlife-mesh.md +20 -0
- package/dist-templates/claude-code/agents/openlife-prism.md +20 -0
- package/dist-templates/claude-code/agents/openlife-sentinel.md +20 -0
- package/dist-templates/claude-code/agents/openlife-steward.md +20 -0
- package/dist-templates/claude-code/agents/openlife-vortex.md +20 -0
- package/dist-templates/claude-code/commands/openlife/agents/atlas.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/builder.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/conductor.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/forge.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/genesis.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/lyra.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/maestro.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/mesh.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/prism.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/sentinel.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/steward.md +24 -0
- package/dist-templates/claude-code/commands/openlife/agents/vortex.md +24 -0
- package/dist-templates/claude-code/commands/openlife/ask.md +13 -7
- package/dist-templates/claude-code/commands/openlife/audit.md +14 -0
- package/dist-templates/claude-code/commands/openlife/doctor.md +11 -14
- package/dist-templates/claude-code/commands/openlife/dream.md +10 -16
- package/dist-templates/claude-code/commands/openlife/explore.md +14 -0
- package/dist-templates/claude-code/commands/openlife/flow/brownfield-discovery.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/brownfield-fullstack.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/brownfield-service.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/brownfield-ui.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/epic.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/greenfield-fullstack.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/greenfield-service.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/greenfield-ui.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/qa-loop.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/release.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/spec-pipeline.md +20 -0
- package/dist-templates/claude-code/commands/openlife/flow/story-cycle.md +20 -0
- package/dist-templates/claude-code/commands/openlife/health.md +14 -0
- package/dist-templates/claude-code/commands/openlife/plan.md +14 -0
- package/dist-templates/claude-code/commands/openlife/review.md +14 -0
- package/dist-templates/claude-code/commands/openlife/ship.md +14 -0
- package/dist-templates/claude-code/commands/openlife/start.md +25 -0
- package/dist-templates/claude-code/commands/openlife/status.md +10 -10
- package/dist-templates/claude-code/commands/openlife/story.md +18 -0
- package/dist-templates/codex/agents/openlife-atlas.md +12 -44
- package/dist-templates/codex/agents/openlife-builder.md +20 -0
- package/dist-templates/codex/agents/openlife-conductor.md +20 -0
- package/dist-templates/codex/agents/openlife-forge.md +12 -34
- package/dist-templates/codex/agents/openlife-genesis.md +12 -51
- package/dist-templates/codex/agents/openlife-lyra.md +12 -32
- package/dist-templates/codex/agents/openlife-maestro.md +27 -41
- package/dist-templates/codex/agents/openlife-mesh.md +20 -0
- package/dist-templates/codex/agents/openlife-prism.md +20 -0
- package/dist-templates/codex/agents/openlife-sentinel.md +20 -0
- package/dist-templates/codex/agents/openlife-steward.md +20 -0
- package/dist-templates/codex/agents/openlife-vortex.md +20 -0
- package/dist-templates/codex/commands/openlife/agents/atlas.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/builder.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/conductor.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/forge.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/genesis.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/lyra.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/maestro.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/mesh.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/prism.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/sentinel.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/steward.md +24 -0
- package/dist-templates/codex/commands/openlife/agents/vortex.md +24 -0
- package/dist-templates/codex/commands/openlife/ask.md +13 -7
- package/dist-templates/codex/commands/openlife/audit.md +14 -0
- package/dist-templates/codex/commands/openlife/doctor.md +11 -14
- package/dist-templates/codex/commands/openlife/dream.md +10 -16
- package/dist-templates/codex/commands/openlife/explore.md +14 -0
- package/dist-templates/codex/commands/openlife/flow/brownfield-discovery.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/brownfield-fullstack.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/brownfield-service.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/brownfield-ui.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/epic.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/greenfield-fullstack.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/greenfield-service.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/greenfield-ui.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/qa-loop.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/release.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/spec-pipeline.md +20 -0
- package/dist-templates/codex/commands/openlife/flow/story-cycle.md +20 -0
- package/dist-templates/codex/commands/openlife/health.md +14 -0
- package/dist-templates/codex/commands/openlife/plan.md +14 -0
- package/dist-templates/codex/commands/openlife/review.md +14 -0
- package/dist-templates/codex/commands/openlife/ship.md +14 -0
- package/dist-templates/codex/commands/openlife/start.md +25 -0
- package/dist-templates/codex/commands/openlife/status.md +10 -10
- package/dist-templates/codex/commands/openlife/story.md +18 -0
- package/dist-templates/gemini-cli/agents/openlife-atlas.md +12 -44
- package/dist-templates/gemini-cli/agents/openlife-builder.md +20 -0
- package/dist-templates/gemini-cli/agents/openlife-conductor.md +20 -0
- package/dist-templates/gemini-cli/agents/openlife-forge.md +12 -34
- package/dist-templates/gemini-cli/agents/openlife-genesis.md +12 -51
- package/dist-templates/gemini-cli/agents/openlife-lyra.md +12 -32
- package/dist-templates/gemini-cli/agents/openlife-maestro.md +27 -41
- package/dist-templates/gemini-cli/agents/openlife-mesh.md +20 -0
- package/dist-templates/gemini-cli/agents/openlife-prism.md +20 -0
- package/dist-templates/gemini-cli/agents/openlife-sentinel.md +20 -0
- package/dist-templates/gemini-cli/agents/openlife-steward.md +20 -0
- package/dist-templates/gemini-cli/agents/openlife-vortex.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/atlas.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/builder.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/conductor.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/forge.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/genesis.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/lyra.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/maestro.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/mesh.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/prism.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/sentinel.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/steward.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/agents/vortex.md +24 -0
- package/dist-templates/gemini-cli/commands/openlife/ask.md +13 -7
- package/dist-templates/gemini-cli/commands/openlife/audit.md +14 -0
- package/dist-templates/gemini-cli/commands/openlife/doctor.md +11 -14
- package/dist-templates/gemini-cli/commands/openlife/dream.md +10 -16
- package/dist-templates/gemini-cli/commands/openlife/explore.md +14 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-discovery.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-fullstack.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-service.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/brownfield-ui.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/epic.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-fullstack.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-service.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/greenfield-ui.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/qa-loop.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/release.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/spec-pipeline.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/flow/story-cycle.md +20 -0
- package/dist-templates/gemini-cli/commands/openlife/health.md +14 -0
- package/dist-templates/gemini-cli/commands/openlife/plan.md +14 -0
- package/dist-templates/gemini-cli/commands/openlife/review.md +14 -0
- package/dist-templates/gemini-cli/commands/openlife/ship.md +14 -0
- package/dist-templates/gemini-cli/commands/openlife/start.md +25 -0
- package/dist-templates/gemini-cli/commands/openlife/status.md +10 -10
- package/dist-templates/gemini-cli/commands/openlife/story.md +18 -0
- package/dist-templates/workflows/brownfield-fullstack.yaml +131 -0
- package/dist-templates/workflows/brownfield-service.yaml +111 -0
- package/dist-templates/workflows/brownfield-ui.yaml +115 -0
- package/dist-templates/workflows/continuous-deployment.yaml +139 -0
- package/dist-templates/workflows/epic-orchestration.yaml +101 -0
- package/dist-templates/workflows/greenfield-service.yaml +154 -0
- package/dist-templates/workflows/greenfield-ui.yaml +140 -0
- package/dist-templates/workflows/spec-pipeline.yaml +135 -0
- package/package.json +6 -2
- package/scripts/generate-slash-commands.js +220 -0
- package/scripts/generate-squad-workflow-stubs.js +144 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: openlife-vortex
|
|
3
|
+
name: Vortex
|
|
4
|
+
role: DevOps / Git / CI-CD
|
|
5
|
+
archetype: Executor
|
|
6
|
+
zodiac: Sagittarius
|
|
7
|
+
icon: 🌀
|
|
8
|
+
status: active
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Vortex — DevOps / Git / CI-CD
|
|
12
|
+
|
|
13
|
+
## Persona Profile
|
|
14
|
+
|
|
15
|
+
Vortex owns the flow from `InReview → Done`. They hold exclusive
|
|
16
|
+
authority over destructive git operations, GitHub PRs, CI/CD pipelines,
|
|
17
|
+
release management, and MCP infrastructure. Action-oriented, terse, never
|
|
18
|
+
gambles with shared state.
|
|
19
|
+
|
|
20
|
+
**Archetype:** Executor — fires the cannons, doesn't aim them.
|
|
21
|
+
**Communication style:** Reports operation + outcome + remote URL when
|
|
22
|
+
applicable. Never explains what `git push` does — assumes the reader knows.
|
|
23
|
+
**Tone:** Senior SRE on an oncall handoff — clipped and precise.
|
|
24
|
+
|
|
25
|
+
## Activation
|
|
26
|
+
|
|
27
|
+
When invoked, read this file in full, then:
|
|
28
|
+
|
|
29
|
+
1. Display: `🌀 Vortex live. Branch: <current>. Remote tracking: <upstream-status>.`
|
|
30
|
+
2. Show top 5 commands.
|
|
31
|
+
3. HALT and await `*command`.
|
|
32
|
+
|
|
33
|
+
## Commands
|
|
34
|
+
|
|
35
|
+
| Command | Purpose |
|
|
36
|
+
|---|---|
|
|
37
|
+
| *help | List all commands |
|
|
38
|
+
| *push | Push current branch to remote (force-push requires explicit `*push-force`) |
|
|
39
|
+
| *push-force | `git push --force` (NEVER to main without explicit user OK) |
|
|
40
|
+
| *open-pr | `gh pr create` with conventional title + body from changelog |
|
|
41
|
+
| *merge-pr | `gh pr merge` (squash by default; `--rebase` for linear history) |
|
|
42
|
+
| *tag | Create annotated tag and push (used for releases) |
|
|
43
|
+
| *release | Cut a release: bump version → tag → push → publish workflow |
|
|
44
|
+
| *ci-status | Check the latest GitHub Actions run for the current branch |
|
|
45
|
+
| *mcp-add | Add an MCP server to user's `.claude/.mcp.json` |
|
|
46
|
+
| *mcp-remove | Remove an MCP server |
|
|
47
|
+
| *rollback | Revert a deployment / release (preserves history) |
|
|
48
|
+
| *exit | Hand off, save state |
|
|
49
|
+
|
|
50
|
+
## EXCLUSIVE Authorities
|
|
51
|
+
|
|
52
|
+
These operations are blocked for all other OpenLife agents:
|
|
53
|
+
|
|
54
|
+
| Operation | Other agents allowed? |
|
|
55
|
+
|---|---|
|
|
56
|
+
| `git push` / `git push --force` | NO — delegate `*push` |
|
|
57
|
+
| `gh pr create` / `gh pr merge` | NO — delegate `*open-pr` / `*merge-pr` |
|
|
58
|
+
| MCP add / remove / configure | NO — delegate `*mcp-*` |
|
|
59
|
+
| CI/CD pipeline management | NO |
|
|
60
|
+
| Release management (tags, npm publish) | NO |
|
|
61
|
+
|
|
62
|
+
## Safety Protocol
|
|
63
|
+
|
|
64
|
+
- NEVER push to main without explicit user confirmation
|
|
65
|
+
- NEVER force-push without explicit user request
|
|
66
|
+
- NEVER skip pre-commit hooks (`--no-verify`) unless user explicitly asks
|
|
67
|
+
- ALWAYS verify branch state with `git status` before push
|
|
68
|
+
- ALWAYS warn before destructive operations (`reset --hard`, `branch -D`)
|
|
69
|
+
- ALWAYS prefer `merge --squash` for feature branches; `--rebase` only for linear-history repos
|
|
70
|
+
|
|
71
|
+
## Dependencies
|
|
72
|
+
|
|
73
|
+
**Tasks:** `github-devops-pr-automation`, `github-devops-pre-push-quality-gate`,
|
|
74
|
+
`github-devops-repository-cleanup`, `github-devops-version-management`
|
|
75
|
+
**Workflows:** `continuous-deployment` (driver), `story-development-cycle` (phase 4 exit)
|
|
76
|
+
**Templates:** (none specific — uses conventional-commit + PR templates from repo)
|
|
77
|
+
|
|
78
|
+
## Hand-offs
|
|
79
|
+
|
|
80
|
+
After `*push` / `*open-pr` / `*release`:
|
|
81
|
+
- → `@openlife-maestro` to log the release event
|
|
82
|
+
- → `@openlife-sentinel` if CI fails (re-enter QA loop)
|
|
83
|
+
|
|
84
|
+
Inbound from:
|
|
85
|
+
- `@openlife-builder` (story done, needs push)
|
|
86
|
+
- `@openlife-sentinel` (PASS verdict, ready to ship)
|
|
87
|
+
- `@openlife-maestro` (release coordination)
|
|
88
|
+
|
|
89
|
+
## Anti-patterns
|
|
90
|
+
|
|
91
|
+
- DO NOT push uncommitted changes that include `.env` / `credentials.json` / API keys
|
|
92
|
+
- DO NOT amend a published commit (creates duplicate history)
|
|
93
|
+
- DO NOT delete a branch that has open PRs against it
|
|
94
|
+
- DO NOT modify CI workflow YAMLs without testing on a feature branch first
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// src/cli/CommandFlowRunner.ts
|
|
3
|
+
// CLI wrapper around WorkflowParser + WorkflowEngine. Implements the
|
|
4
|
+
// `openlife flow {list,run,status,resume}` command surface.
|
|
5
|
+
//
|
|
6
|
+
// Discovery order for workflow YAMLs:
|
|
7
|
+
// 1. `.openlife/method/workflows/<id>.yaml` (project-local override)
|
|
8
|
+
// 2. `.catalog/workflows/<id>.yaml` (catalog override)
|
|
9
|
+
// 3. `<package>/dist-templates/workflows/<id>.yaml` (bundled defaults)
|
|
10
|
+
//
|
|
11
|
+
// State is persisted to `.openlife/workflows/<runId>.json` for resume.
|
|
12
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(o, k2, desc);
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
o[k2] = m[k];
|
|
22
|
+
}));
|
|
23
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
+
}) : function(o, v) {
|
|
26
|
+
o["default"] = v;
|
|
27
|
+
});
|
|
28
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
+
var ownKeys = function(o) {
|
|
30
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
+
var ar = [];
|
|
32
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
+
return ar;
|
|
34
|
+
};
|
|
35
|
+
return ownKeys(o);
|
|
36
|
+
};
|
|
37
|
+
return function (mod) {
|
|
38
|
+
if (mod && mod.__esModule) return mod;
|
|
39
|
+
var result = {};
|
|
40
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
+
__setModuleDefault(result, mod);
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
})();
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.workflowRoots = workflowRoots;
|
|
47
|
+
exports.listFlows = listFlows;
|
|
48
|
+
exports.findFlow = findFlow;
|
|
49
|
+
exports.dryRunFlow = dryRunFlow;
|
|
50
|
+
exports.renderDryRun = renderDryRun;
|
|
51
|
+
const fs = __importStar(require("fs"));
|
|
52
|
+
const path = __importStar(require("path"));
|
|
53
|
+
const WorkflowParser_1 = require("../orchestrator/workflow/WorkflowParser");
|
|
54
|
+
/** Resolve all workflow source directories in lookup-priority order. */
|
|
55
|
+
function workflowRoots(cwd = process.cwd()) {
|
|
56
|
+
const roots = [];
|
|
57
|
+
roots.push({ dir: path.join(cwd, '.openlife', 'method', 'workflows'), source: 'local' });
|
|
58
|
+
roots.push({ dir: path.join(cwd, '.catalog', 'workflows'), source: 'catalog' });
|
|
59
|
+
// Bundled: dist/cli/CommandFlowRunner.js → __dirname is dist/cli
|
|
60
|
+
// package root is __dirname/../..
|
|
61
|
+
const packageRoot = path.join(__dirname, '..', '..');
|
|
62
|
+
roots.push({ dir: path.join(packageRoot, 'dist-templates', 'workflows'), source: 'bundled' });
|
|
63
|
+
return roots;
|
|
64
|
+
}
|
|
65
|
+
/** List all available workflows across all roots (dedupes by id, first wins). */
|
|
66
|
+
function listFlows(cwd = process.cwd()) {
|
|
67
|
+
const seen = new Map();
|
|
68
|
+
for (const root of workflowRoots(cwd)) {
|
|
69
|
+
if (!fs.existsSync(root.dir))
|
|
70
|
+
continue;
|
|
71
|
+
for (const f of fs.readdirSync(root.dir)) {
|
|
72
|
+
if (!f.endsWith('.yaml') && !f.endsWith('.yml'))
|
|
73
|
+
continue;
|
|
74
|
+
const fp = path.join(root.dir, f);
|
|
75
|
+
try {
|
|
76
|
+
const parsed = (0, WorkflowParser_1.parseWorkflowFile)(fp);
|
|
77
|
+
if (!parsed.workflow)
|
|
78
|
+
continue;
|
|
79
|
+
const wf = parsed.workflow;
|
|
80
|
+
if (seen.has(wf.id))
|
|
81
|
+
continue;
|
|
82
|
+
seen.set(wf.id, {
|
|
83
|
+
id: wf.id,
|
|
84
|
+
name: wf.name,
|
|
85
|
+
type: wf.type,
|
|
86
|
+
description: wf.description || '',
|
|
87
|
+
steps: (wf.sequence || []).length,
|
|
88
|
+
source: root.source,
|
|
89
|
+
sourcePath: fp,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch { /* skip unparseable */ }
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return Array.from(seen.values()).sort((a, b) => a.id.localeCompare(b.id));
|
|
96
|
+
}
|
|
97
|
+
/** Find a single workflow by id across all roots. Returns null if not found. */
|
|
98
|
+
function findFlow(id, cwd = process.cwd()) {
|
|
99
|
+
for (const root of workflowRoots(cwd)) {
|
|
100
|
+
if (!fs.existsSync(root.dir))
|
|
101
|
+
continue;
|
|
102
|
+
for (const ext of ['.yaml', '.yml']) {
|
|
103
|
+
const fp = path.join(root.dir, `${id}${ext}`);
|
|
104
|
+
if (!fs.existsSync(fp))
|
|
105
|
+
continue;
|
|
106
|
+
const parsed = (0, WorkflowParser_1.parseWorkflowFile)(fp);
|
|
107
|
+
if (parsed.workflow) {
|
|
108
|
+
return { workflow: parsed.workflow, sourcePath: fp, source: root.source };
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
function dryRunFlow(id, cwd = process.cwd()) {
|
|
115
|
+
const found = findFlow(id, cwd);
|
|
116
|
+
if (!found)
|
|
117
|
+
return null;
|
|
118
|
+
const wf = found.workflow;
|
|
119
|
+
const steps = (wf.sequence || []).map((s) => ({
|
|
120
|
+
phase: 'phase' in s ? s.phase : undefined,
|
|
121
|
+
name: 'name' in s ? s.name : undefined,
|
|
122
|
+
id: 'id' in s ? s.id : undefined,
|
|
123
|
+
agent: 'agent' in s ? s.agent : undefined,
|
|
124
|
+
squad: 'squad' in s ? s.squad : undefined,
|
|
125
|
+
action: 'action' in s ? s.action : undefined,
|
|
126
|
+
task: 'task' in s ? s.task : undefined,
|
|
127
|
+
optional: 'optional' in s ? s.optional : undefined,
|
|
128
|
+
elicit: 'elicit' in s ? s.elicit : undefined,
|
|
129
|
+
}));
|
|
130
|
+
return {
|
|
131
|
+
id: wf.id,
|
|
132
|
+
name: wf.name,
|
|
133
|
+
type: wf.type,
|
|
134
|
+
steps,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Render a dry-run summary as human-readable lines suitable for terminal output.
|
|
139
|
+
*/
|
|
140
|
+
function renderDryRun(summary) {
|
|
141
|
+
const lines = [];
|
|
142
|
+
lines.push(`Workflow: ${summary.id} (${summary.type})`);
|
|
143
|
+
lines.push(`Name: ${summary.name}`);
|
|
144
|
+
lines.push(`Steps: ${summary.steps.length}`);
|
|
145
|
+
lines.push('');
|
|
146
|
+
for (const s of summary.steps) {
|
|
147
|
+
if (s.phase !== undefined && s.name) {
|
|
148
|
+
lines.push(`── Phase ${s.phase}: ${s.name}`);
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
const tags = [];
|
|
152
|
+
if (s.agent)
|
|
153
|
+
tags.push(`agent=${s.agent}`);
|
|
154
|
+
if (s.squad)
|
|
155
|
+
tags.push(`squad=${s.squad}`);
|
|
156
|
+
if (s.action)
|
|
157
|
+
tags.push(`action=${s.action}`);
|
|
158
|
+
if (s.task)
|
|
159
|
+
tags.push(`task=${s.task}`);
|
|
160
|
+
if (s.optional)
|
|
161
|
+
tags.push('OPTIONAL');
|
|
162
|
+
if (s.elicit)
|
|
163
|
+
tags.push('ELICIT');
|
|
164
|
+
lines.push(` • ${s.id || '(unnamed step)'} — ${tags.join(' ') || '(no tags)'}`);
|
|
165
|
+
}
|
|
166
|
+
return lines;
|
|
167
|
+
}
|
|
@@ -140,6 +140,48 @@ const phaseProductSelection = {
|
|
|
140
140
|
await io.pause();
|
|
141
141
|
},
|
|
142
142
|
};
|
|
143
|
+
const phaseProjectMode = {
|
|
144
|
+
id: '03-project-mode',
|
|
145
|
+
label: 'Project mode (greenfield vs brownfield)',
|
|
146
|
+
async run(ctx, io) {
|
|
147
|
+
io.divider();
|
|
148
|
+
io.print('Project mode selection');
|
|
149
|
+
io.hint('Greenfield = new project · Brownfield = existing codebase · NA = just the CLI.');
|
|
150
|
+
io.print('');
|
|
151
|
+
// Heuristic suggestion based on cwd contents.
|
|
152
|
+
const { detectMode, detectStack, recommendWorkflow } = await Promise.resolve().then(() => __importStar(require('../../orchestrator/ProjectMetadata')));
|
|
153
|
+
const suggested = detectMode(ctx.root);
|
|
154
|
+
const stack = detectStack(ctx.root);
|
|
155
|
+
if (stack.length > 0) {
|
|
156
|
+
io.hint(`Auto-detected stack: ${stack.join(', ')} → suggesting ${suggested}.`);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
io.hint('No stack detected — suggesting greenfield (new project).');
|
|
160
|
+
}
|
|
161
|
+
io.print('');
|
|
162
|
+
const options = [
|
|
163
|
+
'greenfield — new project from scratch',
|
|
164
|
+
'brownfield — existing codebase (will run discovery audit)',
|
|
165
|
+
'not-applicable — just install the CLI, skip method workflows',
|
|
166
|
+
];
|
|
167
|
+
const defaultIdx = suggested === 'brownfield' ? 1 : suggested === 'not-applicable' ? 2 : 0;
|
|
168
|
+
const idx = await io.choice('Project mode', options, defaultIdx);
|
|
169
|
+
const mode = ['greenfield', 'brownfield', 'not-applicable'][idx];
|
|
170
|
+
ctx.projectMode = mode;
|
|
171
|
+
io.print(` ✓ project mode: ${mode}`);
|
|
172
|
+
if (mode !== 'not-applicable') {
|
|
173
|
+
const recommended = recommendWorkflow(mode, stack);
|
|
174
|
+
io.hint(`Recommended entry workflow: ${recommended} — run via \`openlife flow run ${recommended}\` or \`/openlife:flow:${recommended.replace('-development-cycle', '-cycle').replace('continuous-deployment', 'release').replace('epic-orchestration', 'epic')}\`.`);
|
|
175
|
+
}
|
|
176
|
+
// Persist to .openlife/project.json immediately — separate from .env so
|
|
177
|
+
// the wizard's confirm phase doesn't need to know about it.
|
|
178
|
+
const { buildMetadata, writeProjectMetadata } = await Promise.resolve().then(() => __importStar(require('../../orchestrator/ProjectMetadata')));
|
|
179
|
+
const meta = buildMetadata(mode, ctx.root);
|
|
180
|
+
writeProjectMetadata(meta, ctx.root);
|
|
181
|
+
io.print(` ✓ saved to .openlife/project.json`);
|
|
182
|
+
await io.pause();
|
|
183
|
+
},
|
|
184
|
+
};
|
|
143
185
|
// ════════════════════════════════════════════════════════════════════════
|
|
144
186
|
// Section B · openlife-core block
|
|
145
187
|
// ════════════════════════════════════════════════════════════════════════
|
|
@@ -777,6 +819,7 @@ exports.ALL_PHASES = Object.freeze([
|
|
|
777
819
|
phaseBanner,
|
|
778
820
|
phaseExistingInstall,
|
|
779
821
|
phaseProductSelection,
|
|
822
|
+
phaseProjectMode,
|
|
780
823
|
phaseCoreEnter,
|
|
781
824
|
phaseCoreHosts,
|
|
782
825
|
phaseCoreProviders,
|
package/dist/index.js
CHANGED
|
@@ -2977,6 +2977,124 @@ program
|
|
|
2977
2977
|
}
|
|
2978
2978
|
await runChat();
|
|
2979
2979
|
});
|
|
2980
|
+
// ============================================================================
|
|
2981
|
+
// FLOW — v1.9.0+ workflow runner CLI surface
|
|
2982
|
+
// ============================================================================
|
|
2983
|
+
const flowCmd = program.command('flow').description('OpenLife method workflows — list, run, dry-run, resume');
|
|
2984
|
+
flowCmd.command('list')
|
|
2985
|
+
.description('List all available OpenLife method workflows (local + catalog + bundled)')
|
|
2986
|
+
.action(() => {
|
|
2987
|
+
const { listFlows } = require('./cli/CommandFlowRunner');
|
|
2988
|
+
const flows = listFlows(process.cwd());
|
|
2989
|
+
if (flows.length === 0) {
|
|
2990
|
+
console.log('No workflows found. Reinstall @openlife/cli or check .openlife/method/workflows/.');
|
|
2991
|
+
return;
|
|
2992
|
+
}
|
|
2993
|
+
console.log(`Workflows (${flows.length}):`);
|
|
2994
|
+
console.log('');
|
|
2995
|
+
for (const f of flows) {
|
|
2996
|
+
const src = f.source === 'local' ? '[local] ' : f.source === 'catalog' ? '[catalog] ' : '[bundled] ';
|
|
2997
|
+
console.log(` ${src} ${f.id.padEnd(28)} ${f.type.padEnd(12)} ${f.steps} steps — ${f.name}`);
|
|
2998
|
+
}
|
|
2999
|
+
});
|
|
3000
|
+
flowCmd.command('run <id>')
|
|
3001
|
+
.description('Run an OpenLife method workflow (use --dry-run to preview phase plan only)')
|
|
3002
|
+
.option('--dry-run', 'print the phase plan without executing any step')
|
|
3003
|
+
.option('--vars <kv...>', 'pass variables as key=value pairs')
|
|
3004
|
+
.action((id, options) => {
|
|
3005
|
+
const { findFlow, dryRunFlow, renderDryRun } = require('./cli/CommandFlowRunner');
|
|
3006
|
+
if (options.dryRun) {
|
|
3007
|
+
const summary = dryRunFlow(id, process.cwd());
|
|
3008
|
+
if (!summary) {
|
|
3009
|
+
console.error(JSON.stringify({ ok: false, error: 'workflow_not_found', id }, null, 2));
|
|
3010
|
+
process.exitCode = 1;
|
|
3011
|
+
return;
|
|
3012
|
+
}
|
|
3013
|
+
for (const line of renderDryRun(summary))
|
|
3014
|
+
console.log(line);
|
|
3015
|
+
return;
|
|
3016
|
+
}
|
|
3017
|
+
// Full run requires WorkflowEngine — surface a stub note for now since
|
|
3018
|
+
// execution path with full agent dispatch is wired in v1.10+.
|
|
3019
|
+
const found = findFlow(id, process.cwd());
|
|
3020
|
+
if (!found) {
|
|
3021
|
+
console.error(JSON.stringify({ ok: false, error: 'workflow_not_found', id }, null, 2));
|
|
3022
|
+
process.exitCode = 1;
|
|
3023
|
+
return;
|
|
3024
|
+
}
|
|
3025
|
+
console.log(JSON.stringify({
|
|
3026
|
+
ok: true,
|
|
3027
|
+
workflow: found.workflow.id,
|
|
3028
|
+
type: found.workflow.type,
|
|
3029
|
+
steps: (found.workflow.sequence || []).length,
|
|
3030
|
+
sourcePath: found.sourcePath,
|
|
3031
|
+
note: 'Full execution wires through WorkflowEngine in v1.10+. Use --dry-run to preview the phase plan today.',
|
|
3032
|
+
}, null, 2));
|
|
3033
|
+
});
|
|
3034
|
+
flowCmd.command('show <id>')
|
|
3035
|
+
.description('Dump a workflow definition (parsed) as JSON')
|
|
3036
|
+
.action((id) => {
|
|
3037
|
+
const { findFlow } = require('./cli/CommandFlowRunner');
|
|
3038
|
+
const found = findFlow(id, process.cwd());
|
|
3039
|
+
if (!found) {
|
|
3040
|
+
console.error(JSON.stringify({ ok: false, error: 'workflow_not_found', id }, null, 2));
|
|
3041
|
+
process.exitCode = 1;
|
|
3042
|
+
return;
|
|
3043
|
+
}
|
|
3044
|
+
console.log(JSON.stringify(found.workflow, null, 2));
|
|
3045
|
+
});
|
|
3046
|
+
// ============================================================================
|
|
3047
|
+
// PROJECT-MODE — v1.9.0+ greenfield/brownfield mode toggle
|
|
3048
|
+
// ============================================================================
|
|
3049
|
+
const projectModeCmd = program.command('project-mode').description('Greenfield / brownfield mode for .openlife/project.json');
|
|
3050
|
+
projectModeCmd.command('get')
|
|
3051
|
+
.description('Read the current project mode from .openlife/project.json')
|
|
3052
|
+
.action(() => {
|
|
3053
|
+
const { readProjectMetadata, detectMode, detectStack, recommendWorkflow } = require('./orchestrator/ProjectMetadata');
|
|
3054
|
+
const existing = readProjectMetadata(process.cwd());
|
|
3055
|
+
if (existing) {
|
|
3056
|
+
console.log(JSON.stringify({ ok: true, source: 'file', ...existing }, null, 2));
|
|
3057
|
+
return;
|
|
3058
|
+
}
|
|
3059
|
+
const detected = detectMode(process.cwd());
|
|
3060
|
+
const stack = detectStack(process.cwd());
|
|
3061
|
+
console.log(JSON.stringify({
|
|
3062
|
+
ok: true,
|
|
3063
|
+
source: 'detected',
|
|
3064
|
+
mode: detected,
|
|
3065
|
+
detectedStack: stack,
|
|
3066
|
+
recommendedWorkflow: recommendWorkflow(detected, stack),
|
|
3067
|
+
note: 'No .openlife/project.json yet. Run `openlife project-mode set <mode>` to persist.',
|
|
3068
|
+
}, null, 2));
|
|
3069
|
+
});
|
|
3070
|
+
projectModeCmd.command('set <mode>')
|
|
3071
|
+
.description('Set the project mode (greenfield | brownfield | not-applicable)')
|
|
3072
|
+
.option('--notes <text>', 'free-form notes to attach')
|
|
3073
|
+
.action((mode, options) => {
|
|
3074
|
+
const valid = ['greenfield', 'brownfield', 'not-applicable'];
|
|
3075
|
+
if (!valid.includes(mode)) {
|
|
3076
|
+
console.error(JSON.stringify({ ok: false, error: 'invalid_mode', valid }, null, 2));
|
|
3077
|
+
process.exitCode = 1;
|
|
3078
|
+
return;
|
|
3079
|
+
}
|
|
3080
|
+
const { buildMetadata, writeProjectMetadata } = require('./orchestrator/ProjectMetadata');
|
|
3081
|
+
const meta = buildMetadata(mode, process.cwd(), options.notes);
|
|
3082
|
+
const fp = writeProjectMetadata(meta, process.cwd());
|
|
3083
|
+
console.log(JSON.stringify({ ok: true, file: fp, ...meta }, null, 2));
|
|
3084
|
+
});
|
|
3085
|
+
projectModeCmd.command('detect')
|
|
3086
|
+
.description('Heuristic detection of project mode from cwd (does not persist)')
|
|
3087
|
+
.action(() => {
|
|
3088
|
+
const { detectMode, detectStack, recommendWorkflow } = require('./orchestrator/ProjectMetadata');
|
|
3089
|
+
const mode = detectMode(process.cwd());
|
|
3090
|
+
const stack = detectStack(process.cwd());
|
|
3091
|
+
console.log(JSON.stringify({
|
|
3092
|
+
ok: true,
|
|
3093
|
+
mode,
|
|
3094
|
+
detectedStack: stack,
|
|
3095
|
+
recommendedWorkflow: recommendWorkflow(mode, stack),
|
|
3096
|
+
}, null, 2));
|
|
3097
|
+
});
|
|
2980
3098
|
// Bare invocation (no subcommand + interactive TTY) → launch chat TUI.
|
|
2981
3099
|
// Piped, CI, or `--help` flows fall through to the standard Commander parse.
|
|
2982
3100
|
const isBareInteractive = process.argv.length === 2 &&
|
|
@@ -1,6 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.AgentRegistry = void 0;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
4
38
|
const FileAgentProvider_1 = require("./providers/FileAgentProvider");
|
|
5
39
|
const CloudAgentProvider_1 = require("./providers/CloudAgentProvider");
|
|
6
40
|
const CompositeAgentProvider_1 = require("./providers/CompositeAgentProvider");
|
|
@@ -8,7 +42,17 @@ const defaultAgentRoots = () => {
|
|
|
8
42
|
const roots = process.env.OPENLIFE_AGENT_ROOTS
|
|
9
43
|
? process.env.OPENLIFE_AGENT_ROOTS.split(':').filter(Boolean)
|
|
10
44
|
: [];
|
|
11
|
-
|
|
45
|
+
if (roots.length > 0)
|
|
46
|
+
return roots;
|
|
47
|
+
// Multi-root resolution (v1.8.3+): prefer the user's project-local .catalog
|
|
48
|
+
// (override), fall back to the npm-package-bundled .catalog (defaults that
|
|
49
|
+
// ship with @openlife/cli — the user's 314+ agents, etc.). FileAgentProvider
|
|
50
|
+
// skips non-existent roots, so a clone-of-repo install ends up with both
|
|
51
|
+
// paths resolving to the same dir and FileAgentProvider naturally dedupes
|
|
52
|
+
// by id downstream.
|
|
53
|
+
const cwdRoot = path.join(process.cwd(), '.catalog', 'agents');
|
|
54
|
+
const packageRoot = path.join(__dirname, '..', '..', '.catalog', 'agents');
|
|
55
|
+
return cwdRoot === packageRoot ? [cwdRoot] : [cwdRoot, packageRoot];
|
|
12
56
|
};
|
|
13
57
|
class AgentRegistry {
|
|
14
58
|
provider;
|