@openlife/cli 1.7.14 → 1.8.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.
Files changed (473) hide show
  1. package/.catalog/agents/ad-midas/AGENT.md +182 -0
  2. package/.catalog/agents/ads-analyst/AGENT.md +168 -0
  3. package/.catalog/agents/agency-agents/AGENT.md +208 -0
  4. package/.catalog/agents/aha-moment-identifier/AGENT.md +184 -0
  5. package/.catalog/agents/ai-builder-analyst/AGENT.md +214 -0
  6. package/.catalog/agents/ai-builder-builder/AGENT.md +241 -0
  7. package/.catalog/agents/ai-builder-design-director/AGENT.md +216 -0
  8. package/.catalog/agents/ai-builder-infra-data/AGENT.md +228 -0
  9. package/.catalog/agents/ai-builder-orchestrator/AGENT.md +207 -0
  10. package/.catalog/agents/ai-builder-qa-reviewer/AGENT.md +252 -0
  11. package/.catalog/agents/ai-builder-release-manager/AGENT.md +248 -0
  12. package/.catalog/agents/ai-scientist-council/AGENT.md +57 -0
  13. package/.catalog/agents/al-ries/AGENT.md +208 -0
  14. package/.catalog/agents/alert-classifier/AGENT.md +184 -0
  15. package/.catalog/agents/alina-wheeler/AGENT.md +217 -0
  16. package/.catalog/agents/ambient-listener/AGENT.md +153 -0
  17. package/.catalog/agents/analista-de-impacto/AGENT.md +383 -0
  18. package/.catalog/agents/analyst-brief-generator/AGENT.md +189 -0
  19. package/.catalog/agents/andre-chaperon/AGENT.md +239 -0
  20. package/.catalog/agents/anomaly-detector/AGENT.md +172 -0
  21. package/.catalog/agents/arbiter/AGENT.md +43 -0
  22. package/.catalog/agents/archetype-consultant/AGENT.md +248 -0
  23. package/.catalog/agents/architecture-checker/AGENT.md +178 -0
  24. package/.catalog/agents/arquivista/AGENT.md +59 -0
  25. package/.catalog/agents/art-director/AGENT.md +142 -0
  26. package/.catalog/agents/assayer/AGENT.md +49 -0
  27. package/.catalog/agents/atlas/AGENT.md +97 -0
  28. package/.catalog/agents/avaliadora/AGENT.md +66 -0
  29. package/.catalog/agents/avinash-kaushik/AGENT.md +301 -0
  30. package/.catalog/agents/bazaar/AGENT.md +43 -0
  31. package/.catalog/agents/beatriz-monteiro/AGENT.md +76 -0
  32. package/.catalog/agents/ben-settle/AGENT.md +227 -0
  33. package/.catalog/agents/bias-auditor/AGENT.md +177 -0
  34. package/.catalog/agents/blake-snyder/AGENT.md +258 -0
  35. package/.catalog/agents/board-chair/AGENT.md +194 -0
  36. package/.catalog/agents/brad-frost/AGENT.md +218 -0
  37. package/.catalog/agents/brand-chief/AGENT.md +191 -0
  38. package/.catalog/agents/brene-brown/AGENT.md +329 -0
  39. package/.catalog/agents/bridge/AGENT.md +43 -0
  40. package/.catalog/agents/brief-synthesizer/AGENT.md +120 -0
  41. package/.catalog/agents/bruno-cezar/AGENT.md +70 -0
  42. package/.catalog/agents/builder/AGENT.md +115 -0
  43. package/.catalog/agents/busterer/AGENT.md +141 -0
  44. package/.catalog/agents/byron-sharp/AGENT.md +202 -0
  45. package/.catalog/agents/caio-architect/AGENT.md +268 -0
  46. package/.catalog/agents/candidate-summary-agent/AGENT.md +171 -0
  47. package/.catalog/agents/capital-strategist/AGENT.md +55 -0
  48. package/.catalog/agents/cartographer/AGENT.md +147 -0
  49. package/.catalog/agents/catalyst/AGENT.md +43 -0
  50. package/.catalog/agents/chain/AGENT.md +51 -0
  51. package/.catalog/agents/chancellor/AGENT.md +101 -0
  52. package/.catalog/agents/charlie-munger/AGENT.md +623 -0
  53. package/.catalog/agents/checklist-builder/AGENT.md +182 -0
  54. package/.catalog/agents/chris-sanders/AGENT.md +238 -0
  55. package/.catalog/agents/chronicler/AGENT.md +49 -0
  56. package/.catalog/agents/cio-engineer/AGENT.md +242 -0
  57. package/.catalog/agents/claude-hopkins/AGENT.md +215 -0
  58. package/.catalog/agents/clause-extractor/AGENT.md +193 -0
  59. package/.catalog/agents/clayton-makepeace/AGENT.md +258 -0
  60. package/.catalog/agents/clinical-note-drafter/AGENT.md +174 -0
  61. package/.catalog/agents/closer/AGENT.md +71 -0
  62. package/.catalog/agents/cloudflare-archon/AGENT.md +70 -0
  63. package/.catalog/agents/cmo-architect/AGENT.md +241 -0
  64. package/.catalog/agents/command-generator/AGENT.md +154 -0
  65. package/.catalog/agents/community-growth/AGENT.md +180 -0
  66. package/.catalog/agents/conduit/AGENT.md +43 -0
  67. package/.catalog/agents/consul/AGENT.md +43 -0
  68. package/.catalog/agents/context-composer/AGENT.md +149 -0
  69. package/.catalog/agents/context-enricher/AGENT.md +173 -0
  70. package/.catalog/agents/contrarian/AGENT.md +43 -0
  71. package/.catalog/agents/coo-orchestrator/AGENT.md +226 -0
  72. package/.catalog/agents/copy-chief/AGENT.md +199 -0
  73. package/.catalog/agents/creative-analyst/AGENT.md +175 -0
  74. package/.catalog/agents/critias/AGENT.md +43 -0
  75. package/.catalog/agents/crm-manager/AGENT.md +73 -0
  76. package/.catalog/agents/crypto-orchestrator/AGENT.md +205 -0
  77. package/.catalog/agents/cto-architect/AGENT.md +227 -0
  78. package/.catalog/agents/curadora/AGENT.md +65 -0
  79. package/.catalog/agents/curriculum-mapper/AGENT.md +183 -0
  80. package/.catalog/agents/cyber-chief/AGENT.md +153 -0
  81. package/.catalog/agents/dan-harmon/AGENT.md +200 -0
  82. package/.catalog/agents/dan-kennedy/AGENT.md +235 -0
  83. package/.catalog/agents/dan-koe/AGENT.md +256 -0
  84. package/.catalog/agents/dan-mall/AGENT.md +211 -0
  85. package/.catalog/agents/data-chief/AGENT.md +200 -0
  86. package/.catalog/agents/data-profiler/AGENT.md +180 -0
  87. package/.catalog/agents/data-quality-reporter/AGENT.md +209 -0
  88. package/.catalog/agents/dave-malouf/AGENT.md +231 -0
  89. package/.catalog/agents/david-aaker/AGENT.md +199 -0
  90. package/.catalog/agents/david-deutsch/AGENT.md +230 -0
  91. package/.catalog/agents/david-ogilvy/AGENT.md +231 -0
  92. package/.catalog/agents/david-spinks/AGENT.md +310 -0
  93. package/.catalog/agents/defi-launcher/AGENT.md +158 -0
  94. package/.catalog/agents/delivery-tracker/AGENT.md +69 -0
  95. package/.catalog/agents/denise-yohn/AGENT.md +205 -0
  96. package/.catalog/agents/depesh-mandalia/AGENT.md +207 -0
  97. package/.catalog/agents/derek-sivers/AGENT.md +301 -0
  98. package/.catalog/agents/design-chief/AGENT.md +142 -0
  99. package/.catalog/agents/design-system-architect/AGENT.md +142 -0
  100. package/.catalog/agents/destiladora/AGENT.md +71 -0
  101. package/.catalog/agents/diagnostic-assessor/AGENT.md +176 -0
  102. package/.catalog/agents/dirber/AGENT.md +144 -0
  103. package/.catalog/agents/domain-scout/AGENT.md +168 -0
  104. package/.catalog/agents/domain-seer/AGENT.md +46 -0
  105. package/.catalog/agents/donald-miller/AGENT.md +212 -0
  106. package/.catalog/agents/emily-heyward/AGENT.md +180 -0
  107. package/.catalog/agents/engine/AGENT.md +43 -0
  108. package/.catalog/agents/estrategista-de-ciclo/AGENT.md +334 -0
  109. package/.catalog/agents/eugene-schwartz/AGENT.md +271 -0
  110. package/.catalog/agents/extratora/AGENT.md +65 -0
  111. package/.catalog/agents/false-positive-filter/AGENT.md +169 -0
  112. package/.catalog/agents/fenomenologo/AGENT.md +202 -0
  113. package/.catalog/agents/fiscal/AGENT.md +177 -0
  114. package/.catalog/agents/followup-agent/AGENT.md +69 -0
  115. package/.catalog/agents/format-adapter/AGENT.md +87 -0
  116. package/.catalog/agents/frank-kern/AGENT.md +228 -0
  117. package/.catalog/agents/frontend-engineer/AGENT.md +82 -0
  118. package/.catalog/agents/frontier-power-mapper/AGENT.md +56 -0
  119. package/.catalog/agents/fuzzer/AGENT.md +154 -0
  120. package/.catalog/agents/gary-bencivenga/AGENT.md +230 -0
  121. package/.catalog/agents/gary-halbert/AGENT.md +252 -0
  122. package/.catalog/agents/genome/AGENT.md +50 -0
  123. package/.catalog/agents/georgia-weidman/AGENT.md +211 -0
  124. package/.catalog/agents/guide/AGENT.md +43 -0
  125. package/.catalog/agents/hammer/AGENT.md +50 -0
  126. package/.catalog/agents/helena-voss/AGENT.md +79 -0
  127. package/.catalog/agents/helena-voss-v2/AGENT.md +196 -0
  128. package/.catalog/agents/herald/AGENT.md +98 -0
  129. package/.catalog/agents/hermes/AGENT.md +75 -0
  130. package/.catalog/agents/hormozi-ads/AGENT.md +192 -0
  131. package/.catalog/agents/hormozi-advisor/AGENT.md +211 -0
  132. package/.catalog/agents/hormozi-audit/AGENT.md +211 -0
  133. package/.catalog/agents/hormozi-chief/AGENT.md +144 -0
  134. package/.catalog/agents/hormozi-closer/AGENT.md +212 -0
  135. package/.catalog/agents/hormozi-content/AGENT.md +199 -0
  136. package/.catalog/agents/hormozi-copy/AGENT.md +185 -0
  137. package/.catalog/agents/hormozi-hooks/AGENT.md +210 -0
  138. package/.catalog/agents/hormozi-launch/AGENT.md +193 -0
  139. package/.catalog/agents/hormozi-leads/AGENT.md +231 -0
  140. package/.catalog/agents/hormozi-models/AGENT.md +224 -0
  141. package/.catalog/agents/hormozi-offers/AGENT.md +230 -0
  142. package/.catalog/agents/hormozi-pricing/AGENT.md +184 -0
  143. package/.catalog/agents/hormozi-retention/AGENT.md +199 -0
  144. package/.catalog/agents/hormozi-scale/AGENT.md +208 -0
  145. package/.catalog/agents/hormozi-workshop/AGENT.md +193 -0
  146. package/.catalog/agents/hostinger-warden/AGENT.md +46 -0
  147. package/.catalog/agents/html5-builder/AGENT.md +106 -0
  148. package/.catalog/agents/hype-detector/AGENT.md +52 -0
  149. package/.catalog/agents/identitario/AGENT.md +298 -0
  150. package/.catalog/agents/indexadora/AGENT.md +49 -0
  151. package/.catalog/agents/instagram-scout/AGENT.md +94 -0
  152. package/.catalog/agents/interaction-architect/AGENT.md +81 -0
  153. package/.catalog/agents/jean-noel-kapferer/AGENT.md +222 -0
  154. package/.catalog/agents/jim-manico/AGENT.md +215 -0
  155. package/.catalog/agents/jim-rutz/AGENT.md +226 -0
  156. package/.catalog/agents/joe-sugarman/AGENT.md +267 -0
  157. package/.catalog/agents/john-carlton/AGENT.md +236 -0
  158. package/.catalog/agents/jon-benson/AGENT.md +229 -0
  159. package/.catalog/agents/joseph-campbell/AGENT.md +217 -0
  160. package/.catalog/agents/kasim-aslam/AGENT.md +191 -0
  161. package/.catalog/agents/keith-johnstone/AGENT.md +190 -0
  162. package/.catalog/agents/kevin-keller/AGENT.md +232 -0
  163. package/.catalog/agents/kindra-hall/AGENT.md +195 -0
  164. package/.catalog/agents/lara-coordinator/AGENT.md +147 -0
  165. package/.catalog/agents/lead-qualifier/AGENT.md +73 -0
  166. package/.catalog/agents/leitora-critica/AGENT.md +70 -0
  167. package/.catalog/agents/lens/AGENT.md +50 -0
  168. package/.catalog/agents/log-analyzer/AGENT.md +176 -0
  169. package/.catalog/agents/logic-reviewer/AGENT.md +177 -0
  170. package/.catalog/agents/lp-backend-dev/AGENT.md +198 -0
  171. package/.catalog/agents/lp-copywriter/AGENT.md +162 -0
  172. package/.catalog/agents/lp-design-architect/AGENT.md +209 -0
  173. package/.catalog/agents/lp-frontend-dev/AGENT.md +194 -0
  174. package/.catalog/agents/lp-image-creator/AGENT.md +156 -0
  175. package/.catalog/agents/lp-integrator/AGENT.md +182 -0
  176. package/.catalog/agents/lp-researcher/AGENT.md +169 -0
  177. package/.catalog/agents/lp-reviewer/AGENT.md +218 -0
  178. package/.catalog/agents/lp-strategist/AGENT.md +159 -0
  179. package/.catalog/agents/magistrate/AGENT.md +43 -0
  180. package/.catalog/agents/manifestador/AGENT.md +312 -0
  181. package/.catalog/agents/marcus-carey/AGENT.md +233 -0
  182. package/.catalog/agents/marcus-leal/AGENT.md +70 -0
  183. package/.catalog/agents/market-economist/AGENT.md +60 -0
  184. package/.catalog/agents/marshall-ganz/AGENT.md +200 -0
  185. package/.catalog/agents/marty-neumeier/AGENT.md +203 -0
  186. package/.catalog/agents/matthew-dicks/AGENT.md +185 -0
  187. package/.catalog/agents/media-buyer/AGENT.md +192 -0
  188. package/.catalog/agents/medical-coder/AGENT.md +175 -0
  189. package/.catalog/agents/merchant/AGENT.md +43 -0
  190. package/.catalog/agents/mercury/AGENT.md +50 -0
  191. package/.catalog/agents/metadata-artist/AGENT.md +208 -0
  192. package/.catalog/agents/miller-sticky-brand/AGENT.md +213 -0
  193. package/.catalog/agents/mirror/AGENT.md +49 -0
  194. package/.catalog/agents/molly-pittman/AGENT.md +218 -0
  195. package/.catalog/agents/motion-designer/AGENT.md +88 -0
  196. package/.catalog/agents/movement-architect/AGENT.md +243 -0
  197. package/.catalog/agents/movement-chief/AGENT.md +168 -0
  198. package/.catalog/agents/naming-strategist/AGENT.md +204 -0
  199. package/.catalog/agents/nancy-duarte/AGENT.md +187 -0
  200. package/.catalog/agents/naval-ravikant/AGENT.md +284 -0
  201. package/.catalog/agents/nicholas-kusmich/AGENT.md +190 -0
  202. package/.catalog/agents/nick-mehta/AGENT.md +327 -0
  203. package/.catalog/agents/node-scorer/AGENT.md +137 -0
  204. package/.catalog/agents/objection-handler/AGENT.md +73 -0
  205. package/.catalog/agents/omar-santos/AGENT.md +239 -0
  206. package/.catalog/agents/operator-brain/AGENT.md +54 -0
  207. package/.catalog/agents/opportunity-strategist/AGENT.md +61 -0
  208. package/.catalog/agents/ops-coordinator/AGENT.md +75 -0
  209. package/.catalog/agents/oracle/AGENT.md +43 -0
  210. package/.catalog/agents/oren-klaff/AGENT.md +199 -0
  211. package/.catalog/agents/parent-report-agent/AGENT.md +186 -0
  212. package/.catalog/agents/park-howell/AGENT.md +185 -0
  213. package/.catalog/agents/parris-lampropoulos/AGENT.md +221 -0
  214. package/.catalog/agents/pathfinder/AGENT.md +60 -0
  215. package/.catalog/agents/patrick-lencioni/AGENT.md +427 -0
  216. package/.catalog/agents/pattern-analyst/AGENT.md +93 -0
  217. package/.catalog/agents/pedro-sobral/AGENT.md +191 -0
  218. package/.catalog/agents/perfectionist/AGENT.md +136 -0
  219. package/.catalog/agents/performance-analyst/AGENT.md +168 -0
  220. package/.catalog/agents/peter-fader/AGENT.md +279 -0
  221. package/.catalog/agents/peter-kim/AGENT.md +212 -0
  222. package/.catalog/agents/peter-thiel/AGENT.md +302 -0
  223. package/.catalog/agents/pixel-specialist/AGENT.md +177 -0
  224. package/.catalog/agents/playbook-enforcer/AGENT.md +194 -0
  225. package/.catalog/agents/postmortem-writer/AGENT.md +193 -0
  226. package/.catalog/agents/press-kit-hunter/AGENT.md +101 -0
  227. package/.catalog/agents/priority-engine/AGENT.md +71 -0
  228. package/.catalog/agents/proactive-outreach/AGENT.md +211 -0
  229. package/.catalog/agents/progress-tracker/AGENT.md +192 -0
  230. package/.catalog/agents/project-architect/AGENT.md +70 -0
  231. package/.catalog/agents/proposal-writer/AGENT.md +74 -0
  232. package/.catalog/agents/quality-reviewer/AGENT.md +184 -0
  233. package/.catalog/agents/rafa-ads/AGENT.md +236 -0
  234. package/.catalog/agents/rafa-content/AGENT.md +126 -0
  235. package/.catalog/agents/rafa-copy-master/AGENT.md +150 -0
  236. package/.catalog/agents/rafa-growth-router/AGENT.md +168 -0
  237. package/.catalog/agents/rafa-hooks/AGENT.md +106 -0
  238. package/.catalog/agents/rafa-leads/AGENT.md +113 -0
  239. package/.catalog/agents/rafa-lens/AGENT.md +62 -0
  240. package/.catalog/agents/railway-conductor/AGENT.md +70 -0
  241. package/.catalog/agents/ralph-burns/AGENT.md +196 -0
  242. package/.catalog/agents/ray-dalio/AGENT.md +619 -0
  243. package/.catalog/agents/redline-drafter/AGENT.md +198 -0
  244. package/.catalog/agents/reference-hunter/AGENT.md +192 -0
  245. package/.catalog/agents/reid-hoffman/AGENT.md +311 -0
  246. package/.catalog/agents/remediation-suggester/AGENT.md +173 -0
  247. package/.catalog/agents/resume-parser/AGENT.md +171 -0
  248. package/.catalog/agents/retrospective-agent/AGENT.md +70 -0
  249. package/.catalog/agents/review-summary-writer/AGENT.md +177 -0
  250. package/.catalog/agents/ripper/AGENT.md +154 -0
  251. package/.catalog/agents/risk-flagger/AGENT.md +196 -0
  252. package/.catalog/agents/robert-collier/AGENT.md +216 -0
  253. package/.catalog/agents/rogue/AGENT.md +149 -0
  254. package/.catalog/agents/root-cause-correlator/AGENT.md +187 -0
  255. package/.catalog/agents/runbook-executor/AGENT.md +180 -0
  256. package/.catalog/agents/russell-brunson/AGENT.md +262 -0
  257. package/.catalog/agents/ry-schwartz/AGENT.md +218 -0
  258. package/.catalog/agents/sales-strategist/AGENT.md +74 -0
  259. package/.catalog/agents/scale-optimizer/AGENT.md +177 -0
  260. package/.catalog/agents/schema-validator/AGENT.md +173 -0
  261. package/.catalog/agents/scribe/AGENT.md +101 -0
  262. package/.catalog/agents/sculptor/AGENT.md +110 -0
  263. package/.catalog/agents/sean-ellis/AGENT.md +336 -0
  264. package/.catalog/agents/security-auditor/AGENT.md +195 -0
  265. package/.catalog/agents/security-reviewer/AGENT.md +178 -0
  266. package/.catalog/agents/security-sentinel/AGENT.md +47 -0
  267. package/.catalog/agents/sentinel/AGENT.md +54 -0
  268. package/.catalog/agents/shannon-runner/AGENT.md +141 -0
  269. package/.catalog/agents/shawn-coyne/AGENT.md +241 -0
  270. package/.catalog/agents/shield/AGENT.md +43 -0
  271. package/.catalog/agents/shortlist-ranker/AGENT.md +168 -0
  272. package/.catalog/agents/simon-sinek/AGENT.md +324 -0
  273. package/.catalog/agents/skills-matcher/AGENT.md +181 -0
  274. package/.catalog/agents/smelter/AGENT.md +50 -0
  275. package/.catalog/agents/solana-dev/AGENT.md +187 -0
  276. package/.catalog/agents/status-page-updater/AGENT.md +204 -0
  277. package/.catalog/agents/stefan-georgi/AGENT.md +221 -0
  278. package/.catalog/agents/story-chief/AGENT.md +188 -0
  279. package/.catalog/agents/strategist/AGENT.md +113 -0
  280. package/.catalog/agents/style-enforcer/AGENT.md +180 -0
  281. package/.catalog/agents/summary-reporter/AGENT.md +236 -0
  282. package/.catalog/agents/task-decomposer/AGENT.md +138 -0
  283. package/.catalog/agents/task-manager/AGENT.md +75 -0
  284. package/.catalog/agents/terminal/AGENT.md +43 -0
  285. package/.catalog/agents/test-agent/AGENT.md +8 -0
  286. package/.catalog/agents/threat-prioritizer/AGENT.md +183 -0
  287. package/.catalog/agents/todd-brown/AGENT.md +204 -0
  288. package/.catalog/agents/token-architect/AGENT.md +180 -0
  289. package/.catalog/agents/tokenomics-strategist/AGENT.md +172 -0
  290. package/.catalog/agents/tom-breeze/AGENT.md +208 -0
  291. package/.catalog/agents/tooltip-generator/AGENT.md +181 -0
  292. package/.catalog/agents/traffic-chief/AGENT.md +130 -0
  293. package/.catalog/agents/tree-integrator/AGENT.md +151 -0
  294. package/.catalog/agents/tree-orchestrator/AGENT.md +151 -0
  295. package/.catalog/agents/tree-validator/AGENT.md +154 -0
  296. package/.catalog/agents/trend-historian/AGENT.md +82 -0
  297. package/.catalog/agents/tunnel-master/AGENT.md +53 -0
  298. package/.catalog/agents/tutor-agent/AGENT.md +204 -0
  299. package/.catalog/agents/ui-engineer/AGENT.md +135 -0
  300. package/.catalog/agents/user-behavior-tracker/AGENT.md +183 -0
  301. package/.catalog/agents/ux-critic/AGENT.md +82 -0
  302. package/.catalog/agents/ux-designer/AGENT.md +138 -0
  303. package/.catalog/agents/vercel-pilot/AGENT.md +51 -0
  304. package/.catalog/agents/vision-chief/AGENT.md +234 -0
  305. package/.catalog/agents/visual-ads/AGENT.md +115 -0
  306. package/.catalog/agents/visual-director/AGENT.md +79 -0
  307. package/.catalog/agents/visual-generator/AGENT.md +141 -0
  308. package/.catalog/agents/visual-researcher/AGENT.md +100 -0
  309. package/.catalog/agents/voice/AGENT.md +43 -0
  310. package/.catalog/agents/vulcan/AGENT.md +107 -0
  311. package/.catalog/agents/wave-dispatcher/AGENT.md +172 -0
  312. package/.catalog/agents/weaver/AGENT.md +49 -0
  313. package/.catalog/agents/wes-kao/AGENT.md +301 -0
  314. package/.catalog/agents/wire/AGENT.md +43 -0
  315. package/.catalog/agents/yvon-chouinard/AGENT.md +308 -0
  316. package/.catalog/capabilities/deep-research/INDEX.md +26 -0
  317. package/.catalog/capabilities/deep-research/capability.yaml +30 -0
  318. package/.catalog/capabilities/deep-research/skills/advanced-query-planning.md +24 -0
  319. package/.catalog/capabilities/deep-research/skills/contradiction-analysis.md +24 -0
  320. package/.catalog/capabilities/deep-research/skills/evidence-synthesis.md +24 -0
  321. package/.catalog/capabilities/deep-research/skills/executive-briefing.md +24 -0
  322. package/.catalog/capabilities/deep-research/skills/source-credibility-scoring.md +24 -0
  323. package/.catalog/capabilities/deep-research/squads/research-squad/SQUAD.md +18 -0
  324. package/.catalog/capabilities/deep-research/workflows/deep-research-flow.yaml +15 -0
  325. package/.catalog/mcps/my-mcp/REFERENCE.md +7 -0
  326. package/.catalog/mcps/test-mcp/mcp.json +7 -0
  327. package/.catalog/skill-networks.json +29 -0
  328. package/.catalog/skills/1password/SKILL.md +34 -0
  329. package/.catalog/skills/apple-notes/SKILL.md +34 -0
  330. package/.catalog/skills/apple-reminders/SKILL.md +34 -0
  331. package/.catalog/skills/bear-notes/SKILL.md +34 -0
  332. package/.catalog/skills/blogwatcher/SKILL.md +34 -0
  333. package/.catalog/skills/blucli/SKILL.md +34 -0
  334. package/.catalog/skills/bluebubbles/SKILL.md +34 -0
  335. package/.catalog/skills/browser-use/SKILL.md +132 -0
  336. package/.catalog/skills/camsnap/SKILL.md +34 -0
  337. package/.catalog/skills/canvas/SKILL.md +34 -0
  338. package/.catalog/skills/clawhub/SKILL.md +34 -0
  339. package/.catalog/skills/coding-agent/SKILL.md +34 -0
  340. package/.catalog/skills/design-extractor/OPENLIFE_INSTALL.md +24 -0
  341. package/.catalog/skills/design-extractor/SKILL.md +413 -0
  342. package/.catalog/skills/design-extractor/references/css-patterns.md +97 -0
  343. package/.catalog/skills/discord/SKILL.md +34 -0
  344. package/.catalog/skills/eightctl/SKILL.md +34 -0
  345. package/.catalog/skills/gemini/SKILL.md +34 -0
  346. package/.catalog/skills/gh-issues/SKILL.md +34 -0
  347. package/.catalog/skills/gifgrep/SKILL.md +34 -0
  348. package/.catalog/skills/github/SKILL.md +34 -0
  349. package/.catalog/skills/gog/SKILL.md +34 -0
  350. package/.catalog/skills/goplaces/SKILL.md +34 -0
  351. package/.catalog/skills/healthcheck/SKILL.md +34 -0
  352. package/.catalog/skills/himalaya/SKILL.md +34 -0
  353. package/.catalog/skills/imsg/SKILL.md +34 -0
  354. package/.catalog/skills/mcporter/SKILL.md +34 -0
  355. package/.catalog/skills/model-usage/SKILL.md +34 -0
  356. package/.catalog/skills/nano-banana-pro/SKILL.md +34 -0
  357. package/.catalog/skills/nano-pdf/SKILL.md +34 -0
  358. package/.catalog/skills/node-connect/SKILL.md +34 -0
  359. package/.catalog/skills/notion/SKILL.md +34 -0
  360. package/.catalog/skills/obsidian/SKILL.md +34 -0
  361. package/.catalog/skills/openai-image-gen/SKILL.md +34 -0
  362. package/.catalog/skills/openai-whisper/SKILL.md +34 -0
  363. package/.catalog/skills/openai-whisper-api/SKILL.md +34 -0
  364. package/.catalog/skills/openhue/SKILL.md +34 -0
  365. package/.catalog/skills/oracle/SKILL.md +34 -0
  366. package/.catalog/skills/ordercli/SKILL.md +34 -0
  367. package/.catalog/skills/peekaboo/SKILL.md +34 -0
  368. package/.catalog/skills/sag/SKILL.md +34 -0
  369. package/.catalog/skills/sample-from-url/IMPORTED_REFERENCE.md +13 -0
  370. package/.catalog/skills/session-logs/SKILL.md +34 -0
  371. package/.catalog/skills/sherpa-onnx-tts/SKILL.md +34 -0
  372. package/.catalog/skills/skill-creator/SKILL.md +34 -0
  373. package/.catalog/skills/slack/SKILL.md +34 -0
  374. package/.catalog/skills/songsee/SKILL.md +34 -0
  375. package/.catalog/skills/sonoscli/SKILL.md +34 -0
  376. package/.catalog/skills/spotify-player/SKILL.md +34 -0
  377. package/.catalog/skills/summarize/SKILL.md +34 -0
  378. package/.catalog/skills/test-skill/REFERENCE.md +7 -0
  379. package/.catalog/skills/test-skill-autogen/SKILL.md +9 -0
  380. package/.catalog/skills/things-mac/SKILL.md +34 -0
  381. package/.catalog/skills/tmux/SKILL.md +34 -0
  382. package/.catalog/skills/trello/SKILL.md +34 -0
  383. package/.catalog/skills/video-frames/SKILL.md +34 -0
  384. package/.catalog/skills/voice-call/SKILL.md +34 -0
  385. package/.catalog/skills/wacli/SKILL.md +34 -0
  386. package/.catalog/skills/weather/SKILL.md +34 -0
  387. package/.catalog/skills/xurl/SKILL.md +34 -0
  388. package/.catalog/squads/00-governance-advisory-board/SQUAD.md +103 -0
  389. package/.catalog/squads/00-governance-c-level-squad/SQUAD.md +93 -0
  390. package/.catalog/squads/00-governance-capital-ai/SQUAD.md +147 -0
  391. package/.catalog/squads/00-governance-capital-ai-canon-v1-livros-e-grandes-mentes/SQUAD.md +140 -0
  392. package/.catalog/squads/00-governance-capital-ai-definicao-canonica/SQUAD.md +49 -0
  393. package/.catalog/squads/00-governance-conselho/SQUAD.md +116 -0
  394. package/.catalog/squads/00-governance-host-quest/SQUAD.md +132 -0
  395. package/.catalog/squads/00-governance-project-ops-squad/SQUAD.md +97 -0
  396. package/.catalog/squads/00-governance-scrap-master/SQUAD.md +124 -0
  397. package/.catalog/squads/01-meta-framework-ai-builder/SQUAD.md +167 -0
  398. package/.catalog/squads/01-meta-framework-aiobuilder-funcionalidades-inspiradas-em-claude-code/SQUAD.md +119 -0
  399. package/.catalog/squads/01-meta-framework-swarm-tree-orchestration/SQUAD.md +130 -0
  400. package/.catalog/squads/02-product-growth-ads-xpower/SQUAD.md +129 -0
  401. package/.catalog/squads/02-product-growth-awards/SQUAD.md +123 -0
  402. package/.catalog/squads/02-product-growth-brand-squad/SQUAD.md +136 -0
  403. package/.catalog/squads/02-product-growth-copy-squad/SQUAD.md +148 -0
  404. package/.catalog/squads/02-product-growth-design-squad/SQUAD.md +98 -0
  405. package/.catalog/squads/02-product-growth-fabrica-ads/SQUAD.md +157 -0
  406. package/.catalog/squads/02-product-growth-fabrica-imortais-backup/SQUAD.md +148 -0
  407. package/.catalog/squads/02-product-growth-hormozi-squad/SQUAD.md +118 -0
  408. package/.catalog/squads/02-product-growth-movement/SQUAD.md +94 -0
  409. package/.catalog/squads/02-product-growth-saas-onboarding-activator/SQUAD.md +103 -0
  410. package/.catalog/squads/02-product-growth-sales-squad/SQUAD.md +112 -0
  411. package/.catalog/squads/02-product-growth-storytelling/SQUAD.md +106 -0
  412. package/.catalog/squads/02-product-growth-traffic-masters/SQUAD.md +117 -0
  413. package/.catalog/squads/02-product-growth-ultimate-landingpage/SQUAD.md +114 -0
  414. package/.catalog/squads/03-engineering-quality-automated-code-review-squad/SQUAD.md +102 -0
  415. package/.catalog/squads/03-engineering-quality-cloudflare-mini/SQUAD.md +65 -0
  416. package/.catalog/squads/03-engineering-quality-seguranca/SQUAD.md +24 -0
  417. package/.catalog/squads/04-data-security-cybersecurity/SQUAD.md +113 -0
  418. package/.catalog/squads/04-data-security-data-quality-guardian/SQUAD.md +102 -0
  419. package/.catalog/squads/04-data-security-data-squad/SQUAD.md +95 -0
  420. package/.catalog/squads/04-data-security-incident-response-squad/SQUAD.md +103 -0
  421. package/.catalog/squads/04-data-security-soc-alert-triage/SQUAD.md +103 -0
  422. package/.catalog/squads/05-domain-specialists-adaptive-tutor-k12/SQUAD.md +102 -0
  423. package/.catalog/squads/05-domain-specialists-ambient-clinical-scribe/SQUAD.md +102 -0
  424. package/.catalog/squads/05-domain-specialists-bibliotecaria/SQUAD.md +121 -0
  425. package/.catalog/squads/05-domain-specialists-contract-review-squad/SQUAD.md +104 -0
  426. package/.catalog/squads/05-domain-specialists-crypto-token-forge/SQUAD.md +143 -0
  427. package/.catalog/squads/05-domain-specialists-legaltech/SQUAD.md +28 -0
  428. package/.catalog/squads/05-domain-specialists-resume-screener-squad/SQUAD.md +102 -0
  429. package/.catalog/squads/mirofish-intel-mirofish-intel/SQUAD.md +70 -0
  430. package/.catalog/squads/mirofish-mirofish-squad/SQUAD.md +177 -0
  431. package/.catalog/squads/openlife-auto-criar-pipeline-de-revis-o-jur-dica-para-contratos-1777092830690/SQUAD.md +16 -0
  432. package/.catalog/squads/operator-cli/SQUAD.md +33 -0
  433. package/.catalog/squads/telegram-autonomy/SQUAD.md +34 -0
  434. package/.catalog/squads/test-squad/SQUAD.md +8 -0
  435. package/.catalog/teams.json +16 -0
  436. package/INSTALL.md +29 -1
  437. package/dist/cli/ChatTui.js +32 -0
  438. package/dist/cli/InstallModules.js +17 -2
  439. package/dist/cli/InstallWizardV2.js +110 -0
  440. package/dist/cli/install/Multiselect.js +285 -0
  441. package/dist/cli/install/OAuthRunner.js +170 -0
  442. package/dist/cli/install/Phases.js +864 -0
  443. package/dist/cli/install/ProvidersCatalog.js +320 -0
  444. package/dist/cli/install/WizardIO.js +271 -0
  445. package/dist/cli/install/types.js +17 -0
  446. package/dist/index.js +72 -33
  447. package/dist/orchestrator/AgentRegistry.js +45 -1
  448. package/dist/orchestrator/ConsequenceForecaster.js +24 -1
  449. package/dist/orchestrator/DreamGoalStore.js +130 -0
  450. package/dist/orchestrator/Gatekeeper.js +14 -0
  451. package/dist/orchestrator/Gateway.js +149 -10
  452. package/dist/orchestrator/ModelManager.js +7 -1
  453. package/dist/orchestrator/OrchestrationLoop.js +12 -0
  454. package/dist/orchestrator/ParallelOrchestrationLoop.js +12 -2
  455. package/dist/orchestrator/RuntimePolicy.js +4 -1
  456. package/dist/orchestrator/ServiceCompletionPolicy.js +15 -0
  457. package/dist/orchestrator/SkillRegistryV2.js +48 -3
  458. package/dist/orchestrator/SquadRegistry.js +47 -1
  459. package/dist/orchestrator/SynthesizerAgent.js +20 -1
  460. package/dist/orchestrator/TaskExecutor.js +53 -0
  461. package/dist/orchestrator/capability/CapabilityGenesisEngine.js +66 -11
  462. package/dist/test_capability_genesis_engine.js +1 -1
  463. package/dist/test_chat_smoke_command.js +59 -0
  464. package/dist/test_dream_goal_commands.js +76 -0
  465. package/dist/test_gateway_telegram_formatting.js +74 -0
  466. package/dist/test_install_wizard_v2.js +193 -0
  467. package/dist/test_on_demand_voice_reply.js +65 -0
  468. package/dist/test_remaining_sprints_contracts.js +103 -0
  469. package/dist/test_runtime_policy.js +25 -6
  470. package/dist/test_service_completion_policy.js +7 -0
  471. package/dist/test_subsystems_routing_governance.js +13 -3
  472. package/dist/test_task_executor_gemini_api.js +68 -0
  473. package/package.json +6 -3
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ // src/test_install_wizard_v2.ts
3
+ // Smoke + invariant tests for the v1.8.0 Install Wizard 2.0.
4
+ //
5
+ // Covers:
6
+ // 1. ProvidersCatalog consistency — every ProviderId has a catalog row.
7
+ // 2. OAuth policy — Anthropic OAuth is blocked, Codex/Gemini/Grok allowed.
8
+ // 3. Phase registry — all phases have unique ids and required fields.
9
+ // 4. CannedIO driver — wizard can walk through happy-path with canned answers
10
+ // without throwing (early phases only — won't touch the filesystem).
11
+ //
12
+ // Pattern follows existing src/test_install_wizard.ts (canned-answer driver).
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ const fs = __importStar(require("fs"));
48
+ const os = __importStar(require("os"));
49
+ const path = __importStar(require("path"));
50
+ const ProvidersCatalog_1 = require("./cli/install/ProvidersCatalog");
51
+ const types_1 = require("./cli/install/types");
52
+ const Phases_1 = require("./cli/install/Phases");
53
+ const WizardIO_1 = require("./cli/install/WizardIO");
54
+ const OAuthRunner_1 = require("./cli/install/OAuthRunner");
55
+ let failed = 0;
56
+ let passed = 0;
57
+ function check(name, cond, detail) {
58
+ if (cond) {
59
+ passed++;
60
+ console.log(` ✓ ${name}`);
61
+ }
62
+ else {
63
+ failed++;
64
+ console.error(` ✗ ${name}${detail ? ` — ${detail}` : ''}`);
65
+ }
66
+ }
67
+ async function main() {
68
+ console.log('test_install_wizard_v2: starting');
69
+ // ── 1. ProvidersCatalog consistency ─────────────────────────────────
70
+ console.log('\n[1] ProvidersCatalog consistency');
71
+ check('catalog has at least 25 entries', ProvidersCatalog_1.PROVIDERS_CATALOG.length >= 25, `actual=${ProvidersCatalog_1.PROVIDERS_CATALOG.length}`);
72
+ // All entries have required fields
73
+ for (const p of ProvidersCatalog_1.PROVIDERS_CATALOG) {
74
+ check(`${p.id} has label`, p.label.length > 0);
75
+ check(`${p.id} has tier`, !!p.tier);
76
+ check(`${p.id} has tags`, p.tags.length > 0);
77
+ }
78
+ // No duplicate IDs
79
+ const seen = new Set();
80
+ let dupes = 0;
81
+ for (const p of ProvidersCatalog_1.PROVIDERS_CATALOG) {
82
+ if (seen.has(p.id))
83
+ dupes++;
84
+ seen.add(p.id);
85
+ }
86
+ check('no duplicate provider ids', dupes === 0, `dupes=${dupes}`);
87
+ // ── 2. OAuth policy enforcement ─────────────────────────────────────
88
+ console.log('\n[2] OAuth policy');
89
+ const oauthList = types_1.OAUTH_ENABLED_PROVIDERS;
90
+ check('OAUTH_ENABLED_PROVIDERS has openai-cli', oauthList.includes('openai-cli'));
91
+ check('OAUTH_ENABLED_PROVIDERS has gemini-cli', oauthList.includes('gemini-cli'));
92
+ check('OAUTH_ENABLED_PROVIDERS has xai (Grok)', oauthList.includes('xai'));
93
+ check('OAUTH_ENABLED_PROVIDERS excludes anthropic', !oauthList.includes('anthropic'), 'Anthropic OAuth must be policy-blocked');
94
+ // OAuth runner refuses Anthropic
95
+ const antResult = await (0, OAuthRunner_1.runOAuth)('anthropic', { dryRun: true });
96
+ check('runOAuth("anthropic") returns ok=false', antResult.ok === false, `detail=${antResult.detail}`);
97
+ check('runOAuth("anthropic") detail mentions POLICY_BLOCK', /POLICY_BLOCK/.test(antResult.detail));
98
+ // OAuth runner accepts Codex dry-run
99
+ const codexResult = await (0, OAuthRunner_1.runOAuth)('openai-cli', { dryRun: true });
100
+ check('runOAuth("openai-cli", dryRun) returns ok=true', codexResult.ok === true);
101
+ const geminiResult = await (0, OAuthRunner_1.runOAuth)('gemini-cli', { dryRun: true });
102
+ check('runOAuth("gemini-cli", dryRun) returns ok=true', geminiResult.ok === true);
103
+ // ── 3. Phase registry ───────────────────────────────────────────────
104
+ console.log('\n[3] Phase registry');
105
+ check('ALL_PHASES has at least 20 phases', Phases_1.ALL_PHASES.length >= 20, `actual=${Phases_1.ALL_PHASES.length}`);
106
+ const phaseIds = new Set();
107
+ let phaseDupes = 0;
108
+ for (const ph of Phases_1.ALL_PHASES) {
109
+ if (phaseIds.has(ph.id))
110
+ phaseDupes++;
111
+ phaseIds.add(ph.id);
112
+ check(`phase "${ph.id}" has label`, ph.label.length > 0);
113
+ check(`phase "${ph.id}" has run fn`, typeof ph.run === 'function');
114
+ }
115
+ check('no duplicate phase ids', phaseDupes === 0, `dupes=${phaseDupes}`);
116
+ // The first 3 phases (banner, existing-install, product-select) MUST be unconditional.
117
+ const banner = Phases_1.ALL_PHASES.find(p => p.id === '00-banner');
118
+ check('00-banner has no `when` condition', banner !== undefined && !banner.when);
119
+ const existing = Phases_1.ALL_PHASES.find(p => p.id === '01-existing-install');
120
+ check('01-existing-install has no `when` condition', existing !== undefined && !existing.when);
121
+ const productSel = Phases_1.ALL_PHASES.find(p => p.id === '02-product-select');
122
+ check('02-product-select has no `when` condition', productSel !== undefined && !productSel.when);
123
+ // Core / agent phases must have `when` conditions
124
+ const coreEnter = Phases_1.ALL_PHASES.find(p => p.id === '10-core-enter');
125
+ check('10-core-enter has `when` condition', coreEnter !== undefined && typeof coreEnter.when === 'function');
126
+ const agentEnter = Phases_1.ALL_PHASES.find(p => p.id === '20-agent-enter');
127
+ check('20-agent-enter has `when` condition', agentEnter !== undefined && typeof agentEnter.when === 'function');
128
+ // ── 4. Catalog ↔ OAuth consistency ──────────────────────────────────
129
+ console.log('\n[4] Catalog ↔ OAuth consistency');
130
+ for (const id of types_1.OAUTH_ENABLED_PROVIDERS) {
131
+ try {
132
+ const p = (0, ProvidersCatalog_1.getProvider)(id);
133
+ check(`OAuth provider "${id}" has oauthCli`, !!p.oauthCli, `oauthCli="${p.oauthCli}"`);
134
+ }
135
+ catch (err) {
136
+ check(`OAuth provider "${id}" exists in catalog`, false, err instanceof Error ? err.message : String(err));
137
+ }
138
+ }
139
+ // Every catalog entry with oauthCli set should appear in OAUTH_ENABLED_PROVIDERS
140
+ for (const p of (0, ProvidersCatalog_1.oauthProviders)()) {
141
+ check(`catalog OAuth "${p.id}" in OAUTH_ENABLED_PROVIDERS`, types_1.OAUTH_ENABLED_PROVIDERS.includes(p.id), `catalog declares oauthCli=${p.oauthCli} but type not allow-listed`);
142
+ }
143
+ // ── 5. CannedIO smoke (banner + existing-install only, no FS writes) ─
144
+ // Use a clean tmp dir so phase 01 hits the "no previous install" branch
145
+ // and doesn't prompt for abort/reinstall/repair.
146
+ console.log('\n[5] CannedIO smoke');
147
+ const tmpRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'openlife-test-v2-'));
148
+ try {
149
+ const io = new WizardIO_1.CannedIO([
150
+ /* phase 00-banner: pause */ true,
151
+ /* phase 01-existing-install: pause */ true,
152
+ ]);
153
+ const phase00 = Phases_1.ALL_PHASES[0];
154
+ const phase01 = Phases_1.ALL_PHASES[1];
155
+ const ctx = {
156
+ root: tmpRoot,
157
+ products: [],
158
+ coreHosts: [],
159
+ coreProviders: [],
160
+ coreApiKeys: {},
161
+ agentAuthDecisions: [],
162
+ agentOAuthResults: [],
163
+ agentApiKeys: {},
164
+ warnings: [],
165
+ };
166
+ await phase00.run(ctx, io);
167
+ await phase01.run(ctx, io);
168
+ check('CannedIO drove first 2 phases without throwing', true);
169
+ check('CannedIO transcript captured output', io.transcript.length > 0);
170
+ check('ctx not aborted on clean tmpdir', !ctx.aborted);
171
+ }
172
+ catch (err) {
173
+ check('CannedIO drove first 2 phases without throwing', false, err instanceof Error ? err.message : String(err));
174
+ }
175
+ finally {
176
+ try {
177
+ fs.rmSync(tmpRoot, { recursive: true, force: true });
178
+ }
179
+ catch { /* ignore */ }
180
+ }
181
+ // ── Done ────────────────────────────────────────────────────────────
182
+ console.log('');
183
+ console.log(`Results: ${passed} passed, ${failed} failed`);
184
+ if (failed > 0) {
185
+ console.error('TEST_INSTALL_WIZARD_V2_FAIL');
186
+ process.exit(1);
187
+ }
188
+ console.log('✅ test_install_wizard_v2: all checks passed');
189
+ }
190
+ main().catch((err) => {
191
+ console.error('TEST_INSTALL_WIZARD_V2_UNCAUGHT', err);
192
+ process.exit(1);
193
+ });
@@ -0,0 +1,65 @@
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const assert = __importStar(require("assert"));
37
+ const Gateway_1 = require("./orchestrator/Gateway");
38
+ async function main() {
39
+ process.env.OPENLIFE_TELEGRAM_ALLOWED_USER_ID = '';
40
+ process.env.OPENLIFE_ENABLE_TTS = 'false';
41
+ const gateway = new Gateway_1.Gateway();
42
+ gateway.classifier = { classify: async () => ({ intent: 'KNOWLEDGE_RETRIEVAL', budgetLimit: 0.01 }) };
43
+ gateway.gatekeeper = { routeTask: async (_task, input) => `Resposta final para: ${input}` };
44
+ gateway.voiceManager = { generateSpeech: async (_text) => '/tmp/openlife-on-demand-voice-test.mp3' };
45
+ const result = await gateway.processTextForTestDetailed('1344110010', '/voice explique o AIOBUILDER em uma frase');
46
+ assert.equal(result.events.some((e) => e.kind === 'voice'), true);
47
+ assert.equal(result.finalText.includes('Resposta final para: explique o AIOBUILDER em uma frase'), true);
48
+ assert.equal(result.finalText.includes('/voice'), false);
49
+ const noVoice = await gateway.processTextForTestDetailed('1344110010', 'explique o AIOBUILDER em uma frase');
50
+ assert.equal(noVoice.events.some((e) => e.kind === 'voice'), false);
51
+ assert.equal(noVoice.events.some((e) => e.kind === 'edit'), true);
52
+ const fallbackGateway = new Gateway_1.Gateway();
53
+ fallbackGateway.classifier = gateway.classifier;
54
+ fallbackGateway.gatekeeper = gateway.gatekeeper;
55
+ fallbackGateway.voiceManager = { generateSpeech: async () => { throw new Error('NO_TTS_PROVIDER'); } };
56
+ const fallback = await fallbackGateway.processTextForTestDetailed('1344110010', 'responda por voz: diga olá');
57
+ assert.equal(fallback.events.some((e) => e.kind === 'voice'), false);
58
+ assert.match(fallback.finalText, /Não consegui gerar a voz/);
59
+ assert.match(fallback.finalText, /OPENAI_API_KEY|ELEVENLABS_API_KEY/);
60
+ console.log('ON_DEMAND_VOICE_REPLY_OK');
61
+ }
62
+ main().catch((err) => {
63
+ console.error(err);
64
+ process.exit(1);
65
+ });
@@ -0,0 +1,103 @@
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fs = __importStar(require("fs"));
37
+ const os = __importStar(require("os"));
38
+ const path = __importStar(require("path"));
39
+ const ServiceCompletionPolicy_1 = require("./orchestrator/ServiceCompletionPolicy");
40
+ const ExecutionState_1 = require("./orchestrator/ExecutionState");
41
+ const Gateway_1 = require("./orchestrator/Gateway");
42
+ const CapabilityGenesisEngine_1 = require("./orchestrator/capability/CapabilityGenesisEngine");
43
+ const CapabilityPackState_1 = require("./orchestrator/capability/CapabilityPackState");
44
+ const ConsequenceForecaster_1 = require("./orchestrator/ConsequenceForecaster");
45
+ function assert(condition, message) {
46
+ if (!condition)
47
+ throw new Error(message);
48
+ }
49
+ async function main() {
50
+ // Sprint 2 — ServiceEvidence must be typed; generic artifacts/attempts alone are not enough.
51
+ const policy = new ServiceCompletionPolicy_1.ServiceCompletionPolicy();
52
+ const weak = (0, ExecutionState_1.createExecutionState)('weak', 'operate service', 'u1');
53
+ weak.plan = ['provision', 'integrate', 'validate'];
54
+ weak.successCriteria = policy.enforceCriteria(['resultado']);
55
+ weak.attempts.push({ role: 'executor', summary: 'exec ok', status: 'success', at: new Date().toISOString(), artifactPath: '.artifacts/a.txt' });
56
+ weak.attempts.push({ role: 'reviewer', summary: 'review ok', status: 'success', at: new Date().toISOString() });
57
+ weak.artifacts.push('.artifacts/a.txt');
58
+ assert(policy.evaluate(weak).complete === false, 'generic artifacts must not complete service without typed evidence');
59
+ const strong = (0, ExecutionState_1.createExecutionState)('strong', 'operate service', 'u1');
60
+ strong.plan = ['provision', 'integrate', 'validate'];
61
+ strong.successCriteria = policy.enforceCriteria(['resultado']);
62
+ strong.attempts = weak.attempts;
63
+ strong.artifacts = ['.artifacts/provision.txt', '.artifacts/e2e.txt'];
64
+ strong.serviceEvidence = [
65
+ { type: 'provisioning', status: 'passed', summary: 'runtime provisioned', artifactPath: '.artifacts/provision.txt', at: new Date().toISOString() },
66
+ { type: 'integration', status: 'passed', summary: 'modules integrated', artifactPath: '.artifacts/integration.txt', at: new Date().toISOString() },
67
+ { type: 'e2e', status: 'passed', summary: 'end-to-end passed', artifactPath: '.artifacts/e2e.txt', at: new Date().toISOString() },
68
+ { type: 'observability', status: 'passed', summary: 'logs/metrics captured', artifactPath: '.artifacts/observability.txt', at: new Date().toISOString() },
69
+ { type: 'operation', status: 'passed', summary: 'real operation command documented', artifactPath: '.artifacts/operation.txt', command: 'openlife service run svc', at: new Date().toISOString() },
70
+ ];
71
+ assert(policy.evaluate(strong).complete === true, 'typed service evidence should complete service');
72
+ // Sprint 3 — Telegram conflict classification must be deterministic and non-secret.
73
+ const conflict = Gateway_1.Gateway.classifyTelegramLaunchError(new Error('409: Conflict: terminated by other getUpdates request'));
74
+ assert('error' in conflict && conflict.error === 'telegram_polling_conflict', '409 must classify as polling conflict');
75
+ assert('recoveryOptions' in conflict && conflict.recoveryOptions.includes('stop_conflicting_instance'), '409 recovery must offer stop_conflicting_instance');
76
+ // Sprint 4 — Capability Genesis must create skill+squad+agent+workflow+checklist+governance+index by default.
77
+ const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'openlife-remaining-sprints-'));
78
+ const catalogRoot = path.join(tmp, '.catalog', 'capabilities');
79
+ const stateStore = new CapabilityPackState_1.CapabilityPackStateStore({ stateDir: path.join(tmp, '.openlife', 'capability-state') });
80
+ const engine = new CapabilityGenesisEngine_1.CapabilityGenesisEngine({ catalogRoot, stateStore });
81
+ const generated = engine.generate({ description: 'customer support escalation capability', packId: 'customer-support-escalation', mode: 'professional', actor: 'tester' });
82
+ assert(generated.ok === true, 'capability genesis should succeed');
83
+ if (!generated.ok)
84
+ throw new Error('unreachable');
85
+ for (const rel of ['skills/customer-support-escalation.md', 'squads/customer-support-escalation-squad/SQUAD.md', 'agents/customer-support-escalation-agent.md', 'workflows/customer-support-escalation.yaml', 'checklists/customer-support-escalation-checklist.md', 'governance/customer-support-escalation-policy.json', 'INDEX.md']) {
86
+ assert(fs.existsSync(path.join(generated.packDir, rel)), `missing generated asset: ${rel}`);
87
+ }
88
+ assert(generated.pack.agents?.length === 1, 'manifest must include agent ref');
89
+ assert(generated.pack.checklists?.length === 1, 'manifest must include checklist ref');
90
+ assert(generated.pack.policies?.length === 1, 'manifest must include governance policy ref');
91
+ // Sprint 5 — consequence forecast must expose value scoring and now/24h/7d/30d horizons.
92
+ const basePolicy = { executionMode: 'balanced', swarmMode: 'none', maxBranches: 1, rationale: 'test' };
93
+ const forecast = new ConsequenceForecaster_1.ConsequenceForecaster().forecast('deploy production change safely', 'high', basePolicy, ['codex']);
94
+ assert(Array.isArray(forecast.valueScores) && forecast.valueScores.length >= 4, 'forecast must include value scores');
95
+ for (const h of ['now', '24h', '7d', '30d']) {
96
+ assert(forecast.horizons?.[h]?.impact, `missing horizon ${h}`);
97
+ }
98
+ console.log('TEST_REMAINING_SPRINTS_CONTRACTS_OK');
99
+ }
100
+ main().catch((error) => {
101
+ console.error(error.message || error);
102
+ process.exit(1);
103
+ });
@@ -10,12 +10,31 @@ async function main() {
10
10
  runtime.recordResult('gemini', false, 'quota exhausted');
11
11
  runtime.recordResult('claude', false, 'auth expired');
12
12
  runtime.recordResult('codex', true, 'ok');
13
- const research = runtime.decide('RESEARCH_ANALYSIS');
14
- assert(!research.preferred.includes('gemini'), 'gemini should enter cooldown after quota failure');
15
- assert(research.preferred.includes('codex'), 'research should fallback to codex when gemini is unhealthy');
16
- const engineering = runtime.decide('ENGINEERING_BUILD');
17
- assert(!engineering.preferred.includes('claude'), 'claude should enter cooldown after auth failure');
18
- assert(engineering.preferred[0] === 'codex', 'codex should become preferred when secondary executors cool down');
13
+ // Pass explicit executors so the test is deterministic regardless of the
14
+ // repo's models.json (otherwise getStrictModelExecutors() reads cwd's
15
+ // models.json and biases `base` to a single executor when the chain has
16
+ // length 1 — which is the case in this repo today). The test exercises
17
+ // the health/cooldown filter, not chain-detection from disk.
18
+ //
19
+ // Also unset GEMINI_API_KEY in this process so the runtime's gemini-api
20
+ // bypass (which keeps gemini preferred when the key is exported even if
21
+ // cooling down) doesn't mask the cooldown assertion. CI/local env may
22
+ // export it for other tests; we restore it after.
23
+ const previousGeminiKey = process.env.GEMINI_API_KEY;
24
+ delete process.env.GEMINI_API_KEY;
25
+ try {
26
+ const baseExecutors = ['gemini', 'claude', 'codex'];
27
+ const research = runtime.decide('RESEARCH_ANALYSIS', [...baseExecutors]);
28
+ assert(!research.preferred.includes('gemini'), 'gemini should enter cooldown after quota failure');
29
+ assert(research.preferred.includes('codex'), 'research should fallback to codex when gemini is unhealthy');
30
+ const engineering = runtime.decide('ENGINEERING_BUILD', [...baseExecutors]);
31
+ assert(!engineering.preferred.includes('claude'), 'claude should enter cooldown after auth failure');
32
+ assert(engineering.preferred[0] === 'codex', 'codex should become preferred when secondary executors cool down');
33
+ }
34
+ finally {
35
+ if (previousGeminiKey !== undefined)
36
+ process.env.GEMINI_API_KEY = previousGeminiKey;
37
+ }
19
38
  const snapshot = runtime.saveSnapshot();
20
39
  assert(!!snapshot, 'runtime policy snapshot should be saved');
21
40
  console.log('TEST_RUNTIME_POLICY_OK');
@@ -22,6 +22,13 @@ async function main() {
22
22
  complete.attempts.push({ role: 'executor', summary: 'exec ok', status: 'success', at: new Date().toISOString(), artifactPath: '.artifacts/a.txt' });
23
23
  complete.attempts.push({ role: 'reviewer', summary: 'review ok', status: 'success', at: new Date().toISOString() });
24
24
  complete.artifacts.push('.artifacts/a.txt');
25
+ complete.serviceEvidence = [
26
+ { type: 'provisioning', status: 'passed', summary: 'provisioned', at: new Date().toISOString(), artifactPath: '.artifacts/provision.txt' },
27
+ { type: 'integration', status: 'passed', summary: 'integrated', at: new Date().toISOString(), artifactPath: '.artifacts/integration.txt' },
28
+ { type: 'e2e', status: 'passed', summary: 'e2e passed', at: new Date().toISOString(), artifactPath: '.artifacts/e2e.txt' },
29
+ { type: 'observability', status: 'passed', summary: 'observability captured', at: new Date().toISOString(), artifactPath: '.artifacts/observability.txt' },
30
+ { type: 'operation', status: 'passed', summary: 'operation documented', at: new Date().toISOString(), artifactPath: '.artifacts/operation.txt', command: 'openlife service run t2' },
31
+ ];
25
32
  const reportComplete = policy.evaluate(complete);
26
33
  assert(reportComplete.complete === true, 'should pass complete service report');
27
34
  console.log('TEST_SERVICE_COMPLETION_POLICY_OK');
@@ -137,9 +137,14 @@ async function testGovernanceLayer() {
137
137
  }
138
138
  async function testRuntimePolicy() {
139
139
  const policy = new RuntimePolicy_1.RuntimePolicy();
140
- // ALLOW: codex healthy by default
140
+ // ALLOW: codex healthy by default.
141
+ // Pass explicit executors so the test is deterministic regardless of
142
+ // the repo's models.json (otherwise getStrictModelExecutors() reads
143
+ // cwd's models.json and biases `base`). The test exercises the
144
+ // health/cooldown filter, not chain detection.
141
145
  policy.recordResult('codex', true, 'ok');
142
- const allow = policy.decide('ENGINEERING_BUILD');
146
+ const baseExecutors = ['gemini', 'claude', 'codex'];
147
+ const allow = policy.decide('ENGINEERING_BUILD', [...baseExecutors]);
143
148
  if (!Array.isArray(allow.preferred)) {
144
149
  throw new Error('RUNTIME_POLICY_ALLOW_FAILED: preferred not array');
145
150
  }
@@ -148,10 +153,13 @@ async function testRuntimePolicy() {
148
153
  }
149
154
  // DENY: all-but-codex cooled down, then allowlist restricts to gemini only -> no executors
150
155
  const prevAllow = process.env.OPENLIFE_ALLOWED_LLM_EXECUTORS;
156
+ const prevGemini = process.env.GEMINI_API_KEY;
151
157
  process.env.OPENLIFE_ALLOWED_LLM_EXECUTORS = 'gemini';
158
+ // Unset GEMINI_API_KEY so the cooldown bypass doesn't keep gemini preferred.
159
+ delete process.env.GEMINI_API_KEY;
152
160
  policy.recordResult('gemini', false, 'quota exhausted');
153
161
  try {
154
- const restricted = policy.decide('RESEARCH_ANALYSIS');
162
+ const restricted = policy.decide('RESEARCH_ANALYSIS', [...baseExecutors]);
155
163
  if (restricted.preferred.length !== 0) {
156
164
  throw new Error(`RUNTIME_POLICY_DENY_FAILED: expected empty preferred, got ${restricted.preferred.join(',')}`);
157
165
  }
@@ -164,6 +172,8 @@ async function testRuntimePolicy() {
164
172
  delete process.env.OPENLIFE_ALLOWED_LLM_EXECUTORS;
165
173
  else
166
174
  process.env.OPENLIFE_ALLOWED_LLM_EXECUTORS = prevAllow;
175
+ if (prevGemini !== undefined)
176
+ process.env.GEMINI_API_KEY = prevGemini;
167
177
  }
168
178
  }
169
179
  async function testSandboxPolicy() {
@@ -0,0 +1,68 @@
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const assert = __importStar(require("assert"));
37
+ const fs = __importStar(require("fs"));
38
+ const os = __importStar(require("os"));
39
+ const path = __importStar(require("path"));
40
+ const TaskExecutor_1 = require("./orchestrator/TaskExecutor");
41
+ async function main() {
42
+ const key = process.env.GEMINI_API_KEY;
43
+ if (!key) {
44
+ console.log('TEST_TASK_EXECUTOR_GEMINI_API_SKIPPED missing GEMINI_API_KEY');
45
+ return;
46
+ }
47
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), 'openlife-gemini-executor-'));
48
+ const prevCwd = process.cwd();
49
+ process.chdir(root);
50
+ try {
51
+ const executor = new TaskExecutor_1.TaskExecutor();
52
+ const result = await executor.execute('gemini', 'Responda exatamente: TASK_EXECUTOR_GEMINI_API_OK', 'gemini_api_smoke');
53
+ assert.strictEqual(result.ok, true, result.stderr || result.stdout);
54
+ assert.strictEqual(result.executor, 'gemini');
55
+ assert.ok(result.commandProvenance?.startsWith('gemini-api/'), `expected gemini-api provenance, got ${result.commandProvenance}`);
56
+ assert.ok(result.stdout.includes('TASK_EXECUTOR_GEMINI_API_OK'), `unexpected stdout: ${result.stdout}`);
57
+ assert.ok(fs.existsSync(result.artifactPath), 'artifact path should exist');
58
+ }
59
+ finally {
60
+ process.chdir(prevCwd);
61
+ fs.rmSync(root, { recursive: true, force: true });
62
+ }
63
+ console.log('TEST_TASK_EXECUTOR_GEMINI_API_OK');
64
+ }
65
+ main().catch((err) => {
66
+ console.error('TEST_TASK_EXECUTOR_GEMINI_API_FAIL:', err instanceof Error ? err.message : err);
67
+ process.exit(1);
68
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openlife/cli",
3
- "version": "1.7.14",
3
+ "version": "1.8.3",
4
4
  "description": "OPEN-LIFE Córtex Orquestrador Dual-Core",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -8,6 +8,7 @@
8
8
  "bin",
9
9
  "scripts",
10
10
  "dist-templates",
11
+ ".catalog",
11
12
  "docs/README.md",
12
13
  "docs/quickstart.md",
13
14
  "docs/getting-started.md",
@@ -162,11 +163,13 @@
162
163
  "test:matrix-rain": "npm run build && node dist/test_matrix_rain.js",
163
164
  "test:chat-tui": "npm run build && node dist/test_chat_tui.js",
164
165
  "test:config-tui": "npm run build && node dist/test_config_tui.js",
166
+ "test:install-wizard-v2": "npm run build && node dist/test_install_wizard_v2.js",
165
167
  "pretest:all": "node scripts/clean-test-pollution.js",
166
- "test:all": "npm run build && node dist/test_distribution_installability.js && node dist/test_orchestration_assets_lifecycle.js && node dist/test_openlife_runtime_source_truth.js && node dist/test_openlife_evolution_surface.js && node dist/test_openlife_routing_surface.js && node dist/test_openlife_auto_creator_routing.js && node dist/test_openlife_gatekeeper_routing.js && node dist/test_enterprise_agentic_core.js && node dist/test_admin_teams_networks.js && node dist/test_agent_team_skill_network.js && node dist/test_benchmark_engine.js && node dist/test_cli_service_commands.js && node dist/test_consequence_forecaster.js && node dist/test_conversation_memory.js && node dist/test_create_entities.js && node dist/test_designmd_import_registry.js && node dist/test_designmd_mode.js && node dist/test_designmd_mode_workspace.js && node dist/test_dream_organizer.js && node dist/test_dual_mode.js && node dist/test_governance.js && node dist/test_governance_advanced.js && node dist/test_install_flow.js && node dist/test_job_lifecycle.js && node dist/test_memory_orchestrator.js && node dist/test_memory_promotion.js && node dist/test_memory_retention.js && node dist/test_operating_system.js && node dist/test_optimization_loop.js && node dist/test_outcome_simulator.js && node dist/test_performance_scorecard.js && node dist/test_phase6_board.js && node dist/test_phase6_cadence.js && node dist/test_phase6_ops.js && node dist/test_release_gate.js && node dist/test_reversa_contracts_e2e.js && node dist/test_reversa_export_and_strict.js && node dist/test_reversa_full_execution.js && node dist/test_reversa_lite.js && node dist/test_runtime_policy.js && node dist/test_runtime_probe.js && node dist/test_runtime_registry.js && node dist/test_security_download_guard.js && node dist/test_service_command_surface.js && node dist/test_service_completion_policy.js && node dist/test_service_guardrails_delete.js && node dist/test_sources_import_ref.js && node dist/test_sources_scaffold.js && node dist/test_teammate_learning.js && node dist/test_telegram_delete_guardrail.js && node dist/test_daemon_sigterm.js && node dist/test_ask_exit.js && node dist/test_brain_error_diagnostics.js && node dist/test_cli_doc_parity.js && node dist/test_trigger_basic_auth.js && node dist/test_brain_fallback_chain.js && node dist/test_cli_help_surface.js && node dist/test_cli_diagnostics.js && node dist/test_cli_crud_roundtrip.js && node dist/test_subsystems_routing_governance.js && node dist/test_subsystems_org_state.js && node dist/test_subsystems_promotion_memory_assets.js && node dist/test_phase1_check_exit.js && node dist/test_install_flow_host_validation.js && node dist/test_dist_templates_layout.js && node dist/test_host_installer.js && node dist/test_host_uninstaller.js && node dist/test_install_wizard.js && node dist/test_multi_host_docs_parity.js && node dist/test_host_install_e2e.js && node dist/test_runtime_profile_oauth_only.js && node dist/test_atomic_writer.js && node dist/test_mission_checkpoint.js && node dist/test_workflow_parser.js && node dist/test_workflow_engine.js && node dist/test_workflow_e2e.js && node dist/test_distributed_lock.js && node dist/test_watchdog_heartbeat.js && node dist/test_runtime_health_backoff.js && node dist/test_queue_scheduler.js && node dist/test_squad_skill_creator.js && node dist/test_aiobuilder_cli_parity.js && node dist/test_catalog_quality.js && node dist/test_royal_stack_golden.js && node dist/test_capability_pack_schema.js && node dist/test_capability_genesis_engine.js && node dist/test_workflow_schema_backward_compat.js && node dist/test_service_mode_explicit_only.js && node dist/test_deep_research_capability.js && node dist/test_guided_creator_cli.js && node dist/test_governance_v13_policies.js && node dist/test_gateway_telegram_guardrails.js && node dist/test_cron_manager.js && node dist/test_profile_toolset_mcp.js && node dist/test_squad_skill_design_llm.js && node dist/test_workflow_condition_parser.js && node dist/test_security_download_and_scan.js && node dist/test_host_installers_gemini_codex.js && node dist/test_toolset_enforcement.js && node dist/test_creator_placeholders_completed.js && node dist/test_performance_latency.js && node dist/test_post_mission_evaluation.js && node dist/test_governance_scope_ledger.js && node dist/test_consequence_forecast_brain.js && node dist/test_remote_publish.js && node dist/test_process_sandbox.js && node dist/test_v15_e2e_integration.js && node dist/test_doctor_sandbox_check.js && node dist/test_task_executor_sandbox_optin.js && node dist/test_forecast_brain_wiring.js && node dist/test_status_command.js && node dist/test_logs_command.js && node dist/test_agent_creator.js && node dist/test_matrix_rain.js && node dist/test_chat_tui.js && node dist/test_config_tui.js",
168
+ "test:all": "npm run build && node dist/test_distribution_installability.js && node dist/test_orchestration_assets_lifecycle.js && node dist/test_openlife_runtime_source_truth.js && node dist/test_openlife_evolution_surface.js && node dist/test_openlife_routing_surface.js && node dist/test_openlife_auto_creator_routing.js && node dist/test_openlife_gatekeeper_routing.js && node dist/test_enterprise_agentic_core.js && node dist/test_admin_teams_networks.js && node dist/test_agent_team_skill_network.js && node dist/test_benchmark_engine.js && node dist/test_cli_service_commands.js && node dist/test_consequence_forecaster.js && node dist/test_conversation_memory.js && node dist/test_create_entities.js && node dist/test_designmd_import_registry.js && node dist/test_designmd_mode.js && node dist/test_designmd_mode_workspace.js && node dist/test_dream_organizer.js && node dist/test_dual_mode.js && node dist/test_governance.js && node dist/test_governance_advanced.js && node dist/test_install_flow.js && node dist/test_job_lifecycle.js && node dist/test_memory_orchestrator.js && node dist/test_memory_promotion.js && node dist/test_memory_retention.js && node dist/test_operating_system.js && node dist/test_optimization_loop.js && node dist/test_outcome_simulator.js && node dist/test_performance_scorecard.js && node dist/test_phase6_board.js && node dist/test_phase6_cadence.js && node dist/test_phase6_ops.js && node dist/test_release_gate.js && node dist/test_reversa_contracts_e2e.js && node dist/test_reversa_export_and_strict.js && node dist/test_reversa_full_execution.js && node dist/test_reversa_lite.js && node dist/test_runtime_policy.js && node dist/test_runtime_probe.js && node dist/test_runtime_registry.js && node dist/test_security_download_guard.js && node dist/test_service_command_surface.js && node dist/test_service_completion_policy.js && node dist/test_service_guardrails_delete.js && node dist/test_sources_import_ref.js && node dist/test_sources_scaffold.js && node dist/test_teammate_learning.js && node dist/test_telegram_delete_guardrail.js && node dist/test_daemon_sigterm.js && node dist/test_ask_exit.js && node dist/test_brain_error_diagnostics.js && node dist/test_cli_doc_parity.js && node dist/test_trigger_basic_auth.js && node dist/test_brain_fallback_chain.js && node dist/test_cli_help_surface.js && node dist/test_cli_diagnostics.js && node dist/test_cli_crud_roundtrip.js && node dist/test_subsystems_routing_governance.js && node dist/test_subsystems_org_state.js && node dist/test_subsystems_promotion_memory_assets.js && node dist/test_phase1_check_exit.js && node dist/test_install_flow_host_validation.js && node dist/test_dist_templates_layout.js && node dist/test_host_installer.js && node dist/test_host_uninstaller.js && node dist/test_install_wizard.js && node dist/test_multi_host_docs_parity.js && node dist/test_host_install_e2e.js && node dist/test_runtime_profile_oauth_only.js && node dist/test_atomic_writer.js && node dist/test_mission_checkpoint.js && node dist/test_workflow_parser.js && node dist/test_workflow_engine.js && node dist/test_workflow_e2e.js && node dist/test_distributed_lock.js && node dist/test_watchdog_heartbeat.js && node dist/test_runtime_health_backoff.js && node dist/test_queue_scheduler.js && node dist/test_squad_skill_creator.js && node dist/test_aiobuilder_cli_parity.js && node dist/test_catalog_quality.js && node dist/test_royal_stack_golden.js && node dist/test_capability_pack_schema.js && node dist/test_capability_genesis_engine.js && node dist/test_workflow_schema_backward_compat.js && node dist/test_service_mode_explicit_only.js && node dist/test_deep_research_capability.js && node dist/test_guided_creator_cli.js && node dist/test_governance_v13_policies.js && node dist/test_gateway_telegram_guardrails.js && node dist/test_cron_manager.js && node dist/test_profile_toolset_mcp.js && node dist/test_squad_skill_design_llm.js && node dist/test_workflow_condition_parser.js && node dist/test_security_download_and_scan.js && node dist/test_host_installers_gemini_codex.js && node dist/test_toolset_enforcement.js && node dist/test_creator_placeholders_completed.js && node dist/test_performance_latency.js && node dist/test_post_mission_evaluation.js && node dist/test_governance_scope_ledger.js && node dist/test_consequence_forecast_brain.js && node dist/test_remote_publish.js && node dist/test_process_sandbox.js && node dist/test_v15_e2e_integration.js && node dist/test_doctor_sandbox_check.js && node dist/test_task_executor_sandbox_optin.js && node dist/test_forecast_brain_wiring.js && node dist/test_status_command.js && node dist/test_logs_command.js && node dist/test_agent_creator.js && node dist/test_matrix_rain.js && node dist/test_chat_tui.js && node dist/test_config_tui.js && node dist/test_install_wizard_v2.js",
167
169
  "prepublishOnly": "npm run test:all",
168
170
  "test:no-automatic-messages": "npm run build && node dist/test_no_automatic_messages.js",
169
- "test:gateway-fast-ack": "npm run build && node dist/test_gateway_fast_ack.js"
171
+ "test:gateway-fast-ack": "npm run build && node dist/test_gateway_fast_ack.js",
172
+ "test:gateway-telegram-formatting": "npm run build && node dist/test_gateway_telegram_formatting.js"
170
173
  },
171
174
  "dependencies": {
172
175
  "@anthropic-ai/sdk": "^0.86.1",