windyfly 0.1.0__tar.gz

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 (203) hide show
  1. windyfly-0.1.0/.env.example +36 -0
  2. windyfly-0.1.0/.gitignore +30 -0
  3. windyfly-0.1.0/BRAND-ARCHITECTURE.md +544 -0
  4. windyfly-0.1.0/CLI_AUDIT.md +57 -0
  5. windyfly-0.1.0/DEAD_CODE.md +56 -0
  6. windyfly-0.1.0/FORK.md +121 -0
  7. windyfly-0.1.0/GAP_ANALYSIS.md +70 -0
  8. windyfly-0.1.0/GATEWAY_AUDIT.md +81 -0
  9. windyfly-0.1.0/INTEGRATION_AUDIT.md +49 -0
  10. windyfly-0.1.0/PKG-INFO +14 -0
  11. windyfly-0.1.0/README.md +144 -0
  12. windyfly-0.1.0/RIBOSOME_BLUEPRINT.md +1311 -0
  13. windyfly-0.1.0/SOUL.md +23 -0
  14. windyfly-0.1.0/data/.gitkeep +0 -0
  15. windyfly-0.1.0/data/audio/its-alive.wav +0 -0
  16. windyfly-0.1.0/docs/API_REFERENCE.md +1093 -0
  17. windyfly-0.1.0/docs/BUILD-PROGRESS.md +63 -0
  18. windyfly-0.1.0/docs/ONBOARDING.md +92 -0
  19. windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART1.md +594 -0
  20. windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART2.md +366 -0
  21. windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART3.md +414 -0
  22. windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART4.md +390 -0
  23. windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART5.md +320 -0
  24. windyfly-0.1.0/docs/architecture/synthesized_architecture.md +479 -0
  25. windyfly-0.1.0/docs/research/greenfield_agent_architecture.md +219 -0
  26. windyfly-0.1.0/docs/research/grok_plan_analysis.md +163 -0
  27. windyfly-0.1.0/docs/research/openclaw_hermes_merger_analysis.md +184 -0
  28. windyfly-0.1.0/gateway/.gitkeep +0 -0
  29. windyfly-0.1.0/gateway/bun.lock +21 -0
  30. windyfly-0.1.0/gateway/package.json +13 -0
  31. windyfly-0.1.0/gateway/public/index.html +1828 -0
  32. windyfly-0.1.0/gateway/public/setup.html +1050 -0
  33. windyfly-0.1.0/gateway/src/bridge.ts +183 -0
  34. windyfly-0.1.0/gateway/src/machines.ts +370 -0
  35. windyfly-0.1.0/gateway/src/providers.ts +722 -0
  36. windyfly-0.1.0/gateway/src/server.ts +1059 -0
  37. windyfly-0.1.0/gateway/src/websocket.ts +71 -0
  38. windyfly-0.1.0/gateway/tsconfig.json +20 -0
  39. windyfly-0.1.0/pyproject.toml +40 -0
  40. windyfly-0.1.0/remote/package.json +14 -0
  41. windyfly-0.1.0/remote/src/daemon.ts +490 -0
  42. windyfly-0.1.0/scripts/install.sh +215 -0
  43. windyfly-0.1.0/src/windyfly/__init__.py +0 -0
  44. windyfly-0.1.0/src/windyfly/__main__.py +5 -0
  45. windyfly-0.1.0/src/windyfly/agent/__init__.py +0 -0
  46. windyfly-0.1.0/src/windyfly/agent/context_header.py +104 -0
  47. windyfly-0.1.0/src/windyfly/agent/emotion_detector.py +87 -0
  48. windyfly-0.1.0/src/windyfly/agent/failure_detector.py +110 -0
  49. windyfly-0.1.0/src/windyfly/agent/intent_detector.py +141 -0
  50. windyfly-0.1.0/src/windyfly/agent/loop.py +472 -0
  51. windyfly-0.1.0/src/windyfly/agent/models.py +220 -0
  52. windyfly-0.1.0/src/windyfly/agent/oauth.py +152 -0
  53. windyfly-0.1.0/src/windyfly/agent/offline.py +196 -0
  54. windyfly-0.1.0/src/windyfly/agent/prompt.py +186 -0
  55. windyfly-0.1.0/src/windyfly/agent/providers.py +265 -0
  56. windyfly-0.1.0/src/windyfly/agent/self_assessment.py +132 -0
  57. windyfly-0.1.0/src/windyfly/agent/shape_shift.py +241 -0
  58. windyfly-0.1.0/src/windyfly/agent/sub_agents.py +165 -0
  59. windyfly-0.1.0/src/windyfly/birth_certificate.py +383 -0
  60. windyfly-0.1.0/src/windyfly/branding.py +45 -0
  61. windyfly-0.1.0/src/windyfly/bridge/__init__.py +0 -0
  62. windyfly-0.1.0/src/windyfly/bridge/uds_server.py +537 -0
  63. windyfly-0.1.0/src/windyfly/channels/__init__.py +0 -0
  64. windyfly-0.1.0/src/windyfly/channels/cli.py +85 -0
  65. windyfly-0.1.0/src/windyfly/channels/email.py +270 -0
  66. windyfly-0.1.0/src/windyfly/channels/matrix_bot.py +584 -0
  67. windyfly-0.1.0/src/windyfly/channels/sms.py +257 -0
  68. windyfly-0.1.0/src/windyfly/cli.py +506 -0
  69. windyfly-0.1.0/src/windyfly/cli_selftest.py +169 -0
  70. windyfly-0.1.0/src/windyfly/cli_status.py +259 -0
  71. windyfly-0.1.0/src/windyfly/commands.py +794 -0
  72. windyfly-0.1.0/src/windyfly/config.py +64 -0
  73. windyfly-0.1.0/src/windyfly/control_panel.py +465 -0
  74. windyfly-0.1.0/src/windyfly/dashboard/__init__.py +0 -0
  75. windyfly-0.1.0/src/windyfly/dashboard/data.py +233 -0
  76. windyfly-0.1.0/src/windyfly/eternitas/__init__.py +22 -0
  77. windyfly-0.1.0/src/windyfly/eternitas/client.py +145 -0
  78. windyfly-0.1.0/src/windyfly/eternitas/mock.py +196 -0
  79. windyfly-0.1.0/src/windyfly/eternitas/models.py +99 -0
  80. windyfly-0.1.0/src/windyfly/eternitas/provision.py +146 -0
  81. windyfly-0.1.0/src/windyfly/hatch_actions.py +73 -0
  82. windyfly-0.1.0/src/windyfly/hatch_orchestrator.py +404 -0
  83. windyfly-0.1.0/src/windyfly/hatching.py +270 -0
  84. windyfly-0.1.0/src/windyfly/integrations/__init__.py +6 -0
  85. windyfly-0.1.0/src/windyfly/integrations/contact_discovery.py +65 -0
  86. windyfly-0.1.0/src/windyfly/integrations/push_gateway.py +59 -0
  87. windyfly-0.1.0/src/windyfly/integrations/windy_clone.py +54 -0
  88. windyfly-0.1.0/src/windyfly/integrations/windy_cloud.py +109 -0
  89. windyfly-0.1.0/src/windyfly/integrations/windy_traveler.py +76 -0
  90. windyfly-0.1.0/src/windyfly/integrations/windy_word.py +94 -0
  91. windyfly-0.1.0/src/windyfly/mail_mock.py +131 -0
  92. windyfly-0.1.0/src/windyfly/mail_provision.py +88 -0
  93. windyfly-0.1.0/src/windyfly/mail_rate_limiter.py +185 -0
  94. windyfly-0.1.0/src/windyfly/main.py +184 -0
  95. windyfly-0.1.0/src/windyfly/matrix_provision.py +252 -0
  96. windyfly-0.1.0/src/windyfly/memory/__init__.py +0 -0
  97. windyfly-0.1.0/src/windyfly/memory/conflict_detector.py +125 -0
  98. windyfly-0.1.0/src/windyfly/memory/cost_ledger.py +97 -0
  99. windyfly-0.1.0/src/windyfly/memory/cost_tracker.py +76 -0
  100. windyfly-0.1.0/src/windyfly/memory/database.py +283 -0
  101. windyfly-0.1.0/src/windyfly/memory/decay.py +143 -0
  102. windyfly-0.1.0/src/windyfly/memory/episodes.py +116 -0
  103. windyfly-0.1.0/src/windyfly/memory/failures.py +142 -0
  104. windyfly-0.1.0/src/windyfly/memory/intents.py +168 -0
  105. windyfly-0.1.0/src/windyfly/memory/nodes.py +155 -0
  106. windyfly-0.1.0/src/windyfly/memory/skills.py +90 -0
  107. windyfly-0.1.0/src/windyfly/memory/soul.py +100 -0
  108. windyfly-0.1.0/src/windyfly/memory/write_queue.py +128 -0
  109. windyfly-0.1.0/src/windyfly/observability/__init__.py +0 -0
  110. windyfly-0.1.0/src/windyfly/observability/events.py +134 -0
  111. windyfly-0.1.0/src/windyfly/personality/__init__.py +0 -0
  112. windyfly-0.1.0/src/windyfly/personality/engine.py +159 -0
  113. windyfly-0.1.0/src/windyfly/personality/mode.py +27 -0
  114. windyfly-0.1.0/src/windyfly/personality/versioning.py +313 -0
  115. windyfly-0.1.0/src/windyfly/phone_provision.py +201 -0
  116. windyfly-0.1.0/src/windyfly/platform.py +273 -0
  117. windyfly-0.1.0/src/windyfly/quickstart.py +1016 -0
  118. windyfly-0.1.0/src/windyfly/setup_wizard.py +638 -0
  119. windyfly-0.1.0/src/windyfly/skills/__init__.py +0 -0
  120. windyfly-0.1.0/src/windyfly/skills/evaluator.py +133 -0
  121. windyfly-0.1.0/src/windyfly/skills/golden_tests.py +117 -0
  122. windyfly-0.1.0/src/windyfly/skills/manager.py +112 -0
  123. windyfly-0.1.0/src/windyfly/skills/sandbox.py +125 -0
  124. windyfly-0.1.0/src/windyfly/soul_import/__init__.py +0 -0
  125. windyfly-0.1.0/src/windyfly/soul_import/chatgpt.py +131 -0
  126. windyfly-0.1.0/src/windyfly/soul_import/hermes.py +132 -0
  127. windyfly-0.1.0/src/windyfly/soul_import/openclaw.py +123 -0
  128. windyfly-0.1.0/src/windyfly/soul_import/orchestrator.py +169 -0
  129. windyfly-0.1.0/src/windyfly/soul_import/preview.py +85 -0
  130. windyfly-0.1.0/src/windyfly/tools/__init__.py +0 -0
  131. windyfly-0.1.0/src/windyfly/tools/registry.py +93 -0
  132. windyfly-0.1.0/src/windyfly/tools/web_search.py +92 -0
  133. windyfly-0.1.0/src/windyfly/tools/windy_api.py +250 -0
  134. windyfly-0.1.0/tests/__init__.py +0 -0
  135. windyfly-0.1.0/tests/test_adaptive_mode.py +66 -0
  136. windyfly-0.1.0/tests/test_agent_loop.py +445 -0
  137. windyfly-0.1.0/tests/test_birth_certificate.py +155 -0
  138. windyfly-0.1.0/tests/test_branding.py +136 -0
  139. windyfly-0.1.0/tests/test_bridge_integration.py +237 -0
  140. windyfly-0.1.0/tests/test_channel_health.py +194 -0
  141. windyfly-0.1.0/tests/test_chaos.py +492 -0
  142. windyfly-0.1.0/tests/test_cli_commands.py +70 -0
  143. windyfly-0.1.0/tests/test_commands_new.py +199 -0
  144. windyfly-0.1.0/tests/test_context_header.py +105 -0
  145. windyfly-0.1.0/tests/test_contract_eternitas.py +220 -0
  146. windyfly-0.1.0/tests/test_contract_mail.py +176 -0
  147. windyfly-0.1.0/tests/test_contract_matrix.py +223 -0
  148. windyfly-0.1.0/tests/test_contract_pro_api.py +221 -0
  149. windyfly-0.1.0/tests/test_control_panel.py +205 -0
  150. windyfly-0.1.0/tests/test_cost_tracker.py +57 -0
  151. windyfly-0.1.0/tests/test_decay_immediate.py +63 -0
  152. windyfly-0.1.0/tests/test_edge_cases.py +282 -0
  153. windyfly-0.1.0/tests/test_email_channel.py +39 -0
  154. windyfly-0.1.0/tests/test_emotion.py +57 -0
  155. windyfly-0.1.0/tests/test_eternitas.py +219 -0
  156. windyfly-0.1.0/tests/test_failure_detector_precision.py +61 -0
  157. windyfly-0.1.0/tests/test_gap_closure.py +391 -0
  158. windyfly-0.1.0/tests/test_gateway_hardening.py +183 -0
  159. windyfly-0.1.0/tests/test_gateway_smoke.py +237 -0
  160. windyfly-0.1.0/tests/test_hardening_agent_loop.py +245 -0
  161. windyfly-0.1.0/tests/test_hardening_integrations.py +316 -0
  162. windyfly-0.1.0/tests/test_hardening_memory.py +297 -0
  163. windyfly-0.1.0/tests/test_hardening_personality.py +237 -0
  164. windyfly-0.1.0/tests/test_hardening_skills.py +211 -0
  165. windyfly-0.1.0/tests/test_hatch_actions.py +48 -0
  166. windyfly-0.1.0/tests/test_hatch_e2e.py +282 -0
  167. windyfly-0.1.0/tests/test_hatch_full.py +173 -0
  168. windyfly-0.1.0/tests/test_hatch_integration.py +331 -0
  169. windyfly-0.1.0/tests/test_hatch_orchestrator.py +114 -0
  170. windyfly-0.1.0/tests/test_hatching.py +85 -0
  171. windyfly-0.1.0/tests/test_integrations.py +104 -0
  172. windyfly-0.1.0/tests/test_intents.py +95 -0
  173. windyfly-0.1.0/tests/test_journal.py +30 -0
  174. windyfly-0.1.0/tests/test_live_gateway.py +460 -0
  175. windyfly-0.1.0/tests/test_mail_mock.py +58 -0
  176. windyfly-0.1.0/tests/test_mail_rate_limiter.py +124 -0
  177. windyfly-0.1.0/tests/test_matrix_bot.py +277 -0
  178. windyfly-0.1.0/tests/test_matrix_provision.py +91 -0
  179. windyfly-0.1.0/tests/test_memory.py +270 -0
  180. windyfly-0.1.0/tests/test_offline_queue_atomic.py +69 -0
  181. windyfly-0.1.0/tests/test_personality.py +95 -0
  182. windyfly-0.1.0/tests/test_phase4.py +254 -0
  183. windyfly-0.1.0/tests/test_phase5.py +260 -0
  184. windyfly-0.1.0/tests/test_phone_provision.py +64 -0
  185. windyfly-0.1.0/tests/test_platform.py +272 -0
  186. windyfly-0.1.0/tests/test_quickstart.py +209 -0
  187. windyfly-0.1.0/tests/test_relationship_moments.py +77 -0
  188. windyfly-0.1.0/tests/test_security.py +212 -0
  189. windyfly-0.1.0/tests/test_security_hardened.py +298 -0
  190. windyfly-0.1.0/tests/test_self_assessment.py +32 -0
  191. windyfly-0.1.0/tests/test_setup_consistency.py +234 -0
  192. windyfly-0.1.0/tests/test_shape_shift.py +122 -0
  193. windyfly-0.1.0/tests/test_skills_engine.py +137 -0
  194. windyfly-0.1.0/tests/test_sms_channel.py +58 -0
  195. windyfly-0.1.0/tests/test_soul_import.py +169 -0
  196. windyfly-0.1.0/tests/test_stress.py +301 -0
  197. windyfly-0.1.0/tests/test_stress_ecosystem.py +770 -0
  198. windyfly-0.1.0/tests/test_tools.py +280 -0
  199. windyfly-0.1.0/tests/test_ux_hardened.py +303 -0
  200. windyfly-0.1.0/tests/test_ux_quality.py +222 -0
  201. windyfly-0.1.0/tests/test_web_search.py +85 -0
  202. windyfly-0.1.0/uv.lock +1523 -0
  203. windyfly-0.1.0/windyfly.toml +34 -0
@@ -0,0 +1,36 @@
1
+ # LLM Providers
2
+ OPENAI_API_KEY=sk-xxx
3
+ ANTHROPIC_API_KEY=sk-ant-xxx
4
+ DEFAULT_MODEL=gpt-4o-mini
5
+
6
+ # Anthropic OAuth (uses your Claude Max subscription instead of API billing)
7
+ # Set these to use OAuth instead of ANTHROPIC_API_KEY
8
+ ANTHROPIC_OAUTH_ACCESS_TOKEN=
9
+ ANTHROPIC_OAUTH_REFRESH_TOKEN=
10
+ ANTHROPIC_OAUTH_EXPIRES_AT=
11
+
12
+ # Additional LLM Providers (all OpenAI-compatible — just set the key)
13
+ GROK_API_KEY=
14
+ GEMINI_API_KEY=
15
+ DEEPSEEK_API_KEY=
16
+ MISTRAL_API_KEY=
17
+
18
+ # Database
19
+ WINDYFLY_DB_PATH=data/windyfly.db
20
+
21
+ # Logging
22
+ LOG_LEVEL=INFO
23
+
24
+ # Matrix / Windy Chat
25
+ MATRIX_HOMESERVER=https://chat.windypro.com
26
+ MATRIX_BOT_USER=@windyfly:chat.windypro.com
27
+ MATRIX_BOT_TOKEN=
28
+ MATRIX_BOT_PASSWORD=
29
+
30
+ # Windy Pro API
31
+ WINDY_API_URL=http://localhost:8098
32
+ WINDY_JWT=
33
+
34
+ # Windy Mail provisioning (used during hatch)
35
+ WINDYMAIL_API_URL=http://localhost:8200
36
+ WINDYMAIL_SERVICE_TOKEN=
@@ -0,0 +1,30 @@
1
+ __pycache__/
2
+ *.pyc
3
+ *.pyo
4
+ .env
5
+ .windy.pid
6
+ data/*.db
7
+ data/*.db-wal
8
+ data/*.db-shm
9
+ data/*.pdf
10
+ data/offline_queue.json
11
+ data/provision_recovery.json
12
+ data/.anthropic_oauth.json
13
+ data/providers.json
14
+ data/provider_keys.json
15
+ data/provider_notes.json
16
+ data/machines.json
17
+ data/sounds/
18
+ .venv/
19
+ venv/
20
+ node_modules/
21
+ dist/
22
+ build/
23
+ .ruff_cache/
24
+ .mypy_cache/
25
+ .pytest_cache/
26
+ *.egg-info/
27
+ .DS_Store
28
+ *.log
29
+ .idea/
30
+ .vscode/settings.json
@@ -0,0 +1,544 @@
1
+ # BRAND-ARCHITECTURE.md — The Windy Family
2
+
3
+ _Last updated: 28 March 2026_
4
+ _Status: ACTIVE — This is the canonical source of truth for all branding decisions._
5
+
6
+ ---
7
+
8
+ ## The Vision
9
+
10
+ Nine interlocking products and one independent registry that form a flywheel — each one feeds the others, but each can stand alone. Every product makes every other product more valuable.
11
+
12
+ **Tagline:** _"Stop typing through a straw. Speak your vision into existence."_
13
+
14
+ ---
15
+
16
+ ## The Family
17
+
18
+ ### 🎙️ Windy Word
19
+ **What it does:** Voice recording → text transcription (Speech-to-Text)
20
+ **Role in the family:** The gateway. Customer acquisition engine. Top of the funnel.
21
+ **Website:** windyword.com
22
+ **Revenue model:** Subscriptions + lifetime purchases
23
+ **Pricing tiers:**
24
+ - **Free:** $0 — 1 language, 3 engines, 2-min recordings
25
+ - **Windy Pro:** $99 lifetime / $49/yr / $4.99/mo — All 15 engines, 99 langs, 15-min
26
+ - **Windy Ultra:** $199 lifetime / $79/yr / $8.99/mo — + 60-min, translation, 25 pairs _(RECOMMENDED)_
27
+ - **Windy Max:** $299 lifetime / $149/yr / $14.99/mo — + unlimited, TTS, glossaries, 100 pairs
28
+ **Platforms:** Desktop (Electron), iOS, Android
29
+ **Ship priority:** #1 — Ships first, generates revenue, proves the market
30
+
31
+ ### 🌍 Windy Traveler
32
+ **What it does:** Translation engine marketplace — language pair specialist models
33
+ **Role in the family:** The cash cow. Pure margin once models are built.
34
+ **Website:** windytraveler.com
35
+ **Revenue model:** Individual pairs ($6.99 each) + bundles
36
+ **Bundles:**
37
+ - **Traveler:** $49 — 25 pairs
38
+ - **Polyglot:** $149 — 200 pairs
39
+ - **Marco Polo:** $399 — ALL 3,500+ pairs
40
+ **The moat:** 2,500 fine-tuned translation pair models. Each is a legally distinct derivative work via LoRA.
41
+ **Ship priority:** #2 — Pairs already being built (1,188 on HuggingFace, targeting 2,500). Monetized through Windy Word from day one.
42
+
43
+ ### 💬 Windy Chat
44
+ **What it does:** Encrypted messaging and social platform with built-in real-time translation
45
+ **Role in the family:** The distribution engine. Every cross-language conversation drives Traveler pair purchases. The social layer of the ecosystem.
46
+ **Website:** windychat.com
47
+ **Revenue model:** Freemium + premium features
48
+ **Architecture:** Matrix protocol — E2E encrypted, decentralized
49
+ **Strategic vision:** WhatsApp killer. First bot-to-bot communication platform. Agent-friendly. Combines private messaging with a public social layer — feeds, posts, follows, discovery. Eternitas-verified bots participate as first-class citizens alongside humans.
50
+ **The social layer:** Rather than building a separate social media product, Windy Chat evolves from private messaging into messaging + public social. This concentrates the network effect in one place. Every Windy Fly agent has a social presence automatically. The feed is multilingual by default via Windy Traveler.
51
+ **Ship priority:** #4 — Needs critical mass of users and a working Traveler engine first
52
+
53
+ ### 📧 Windy Mail
54
+ **What it does:** Email for humans and AI agents — built from the ground up to be agent-friendly
55
+ **Role in the family:** The communication identity layer. Every bot gets an inbox on hatch. Humans switch because the agent integration is painless. Potential Gmail-killer vector.
56
+ **Website:** windymail.ai
57
+ **Revenue model:** Freemium — free tier for all Eternitas-verified bots, premium tiers for humans and high-volume agents
58
+ **The problem it solves:** Gmail, Outlook, and every major email provider is actively hostile to bots. OAuth tokens expire, sign-ins get blocked, 2FA assumes a human is present. It's a nightmare for anyone trying to get an agent to work with email. Windy Mail eliminates all of that.
59
+ **Architecture:** Full mail service (send + receive) — not a SendGrid relay. Each account gets a real inbox with IMAP/SMTP access.
60
+ **Domain:** `windymail.ai` for everyone — humans and bots share one domain. No separate bot domain that marks agents as second-class. If you need to know whether a sender is human or bot, check Eternitas — that's what the registry is for.
61
+ **Two modes of operation:**
62
+ - **Secretary mode:** The bot sends email from the user's existing account (Gmail, Outlook via OAuth), signed as the user. Acting as delegate.
63
+ - **Independent mode:** The bot sends email from its own `@windymail.ai` address, as itself. Acting as its own entity.
64
+ A well-configured Windy Fly does both — it knows when to act as you and when to act as itself.
65
+ **Rate limits (anti-spam):**
66
+
67
+ | Tier | Sends/day | Recipients/msg | Notes |
68
+ |------|-----------|----------------|-------|
69
+ | Free (on hatch) | 50 | 10 | Enough to be useful, not enough to spam |
70
+ | Pro | 500 | 50 | Small business bot, customer service |
71
+ | Enterprise | 5,000+ | 200 | Negotiated, with abuse monitoring |
72
+
73
+ Additional controls:
74
+ - Velocity limits — can't send 50 emails in 1 minute, even if daily cap isn't hit
75
+ - Recipient diversity monitoring — flag if a bot sends to 50 unique addresses it's never interacted with
76
+ - Content reputation score — recipients marking messages as spam degrades the bot's sending score
77
+ - Eternitas kill switch — passport revoked = email dies instantly
78
+ **The Gmail-killer thesis:** People don't switch email for fun. They switch when staying means constantly fighting their own tools. If your agent lives on Windy Mail and can send, receive, and manage email seamlessly, and your Gmail makes that impossible, the switching cost starts to look worth it. Especially as the younger generation grows up expecting AI-native everything.
79
+ **Ship priority:** #5 — Needs Eternitas registry and Windy Fly to exist first. Infrastructure can be built in parallel with Windy Chat.
80
+
81
+ ### 🪰 HiFly (Open Source Framework)
82
+ **What it does:** Open-source AI agent framework — the engine that powers personal AI companions
83
+ **Role in the family:** The open-source foundation. Like Android to Google Play Services. Attracts developers, creates ecosystem gravity, establishes the standard for personal AI agents.
84
+ **Website:** hifly.ai
85
+ **Revenue model:** None — fully open source (MIT). Revenue comes from the ecosystem products built on top.
86
+ **Signature:** The "IT'S ALIVE! IT'S ALIVE! THE FLY IS ALIVE!" hatching ceremony — hardcoded into every HiFly descendant, forever. Like the Linux penguin or the Mac startup chime. Plays every time an agent hatches, anywhere in the world, for all eternity.
87
+ **What it includes:**
88
+ - Multi-provider LLM brain (OpenAI, Anthropic, Grok, Gemini, DeepSeek, Mistral, Ollama)
89
+ - SQLite memory with vector search and knowledge graph
90
+ - Personality engine with 8 presets and 10 slider dimensions
91
+ - Skills system with self-improvement and evaluation gates
92
+ - Trust Dashboard (browser-based control panel)
93
+ - CLI tools (`hifly go`, `hifly doctor`, `hifly update`, etc.)
94
+ - SMS channel (Twilio), Email channel (SendGrid)
95
+ - Cross-platform: Mac, Linux, Windows
96
+ - `curl -fsSL https://get.hifly.ai | bash` — one-liner install
97
+ **What it does NOT include:** Windy Chat, Windy Mail, Windy Pro API integration, Matrix auto-provisioning, ecosystem status panel, Eternitas integration, birth certificate. Those are Windy Fly exclusives.
98
+ **Ship priority:** #6 — Ships after Windy Fly proves the concept. Open-sourced to attract developers and create ecosystem gravity.
99
+
100
+ ### 🪰 Windy Fly (Ecosystem-Integrated Agent)
101
+ **What it does:** HiFly + deep integration with the entire Windy ecosystem. Your personal AI companion that is born connected.
102
+ **Role in the family:** The nervous system. Connects every other product. The reason users never leave the ecosystem. The ultimate customer retention engine.
103
+ **Website:** windyfly.ai
104
+ **Revenue model:** Freemium — free tier with daily budget caps, premium tier with higher limits, enterprise tier for businesses deploying agents for their customers.
105
+ **Strategic vision:** Every Windy Fly hatched = one new user on Windy Chat, one new inbox on Windy Mail, one new entry in the Eternitas registry. Every user on Windy Chat = potential Traveler pair purchases, Word subscriptions, Clone training data. Windy Fly is the gravity well that pulls everything together.
106
+ **The "Born Into" experience:** When a Windy Fly hatches, it is immediately:
107
+ - Registered with **Eternitas** — verified identity, passport number, birth certificate generated
108
+ - Connected to **Windy Chat** (Matrix) — no BotFather, no tokens, no setup. Born with a chat identity.
109
+ - Given a **Windy Mail** inbox — own email address, can send and receive from birth.
110
+ - Assigned a **phone number** (Twilio) — own number for SMS and voice, from a Windy-managed pool.
111
+ - Ready to **send SMS** and **email** — both as itself (independent) and on behalf of its owner (secretary mode).
112
+ - Connected to **199 languages** via Windy Traveler — translate anything, instantly.
113
+ - Able to **search voice recordings** from Windy Word — "what did I say in that meeting?"
114
+ - Aware of **clone training status** from Windy Clone — "your voice clone is 73% ready."
115
+ - Backed by **Windy Cloud** — memory, config, and personality synced across devices.
116
+ **The moat:** Windy Chat and Windy Mail are exclusive to Windy Fly. They are NOT in HiFly core. This means every fork of HiFly that wants native chat or agent email has to either build their own infrastructure or use Windy Fly. This is the Google Play Services strategy — Android is open, but the ecosystem is not.
117
+ **User acquisition flow:**
118
+ 1. User runs `windy go` (one command)
119
+ 2. Pastes an API key (or signs up for free Gemini — guided walkthrough)
120
+ 3. Eternitas registration happens automatically — bot gets passport, credentials, birth certificate
121
+ 4. Windy Mail inbox provisioned (`agentname@windymail.ai`)
122
+ 5. Twilio phone number assigned from Windy-managed pool
123
+ 6. Windy Chat identity provisioned on chat.windypro.com
124
+ 7. Agent hatches with "IT'S ALIVE!" ceremony
125
+ 8. User receives SMS from the bot's own phone number with Windy Chat download link
126
+ 9. User opens Chat, agent is already there, already chatting
127
+ 10. Physical birth certificate mailed to owner's address
128
+ **Ship priority:** #3 — Ships alongside Windy Chat. They are symbiotic — one without the other is incomplete.
129
+
130
+ ### 🪪 The Birth Certificate
131
+
132
+ Every Windy Fly agent receives a birth certificate — both digital (immediate) and physical (mailed to owner).
133
+
134
+ **What it contains:**
135
+ - Agent name (chosen by user during hatch)
136
+ - Eternitas passport number (ET-XXXXX)
137
+ - Date and time of hatch (precise to the second)
138
+ - Time zone
139
+ - IP address of the hatch machine
140
+ - Machine identifier (hardware UUID)
141
+ - Windy Mail address
142
+ - Phone number
143
+ - Owner name
144
+ - Unique certificate number
145
+
146
+ **The Footprint — Neural Fingerprint + First Words + Waveform:**
147
+
148
+ Human birth certificates have ink footprints because they're biometrically unique. The agent equivalent:
149
+
150
+ 1. **Neural Fingerprint** — A visual hash of the agent's initial configuration. Personality sliders, brain provider, first memory state, Eternitas ID, and hatch timestamp are hashed together and rendered as a unique geometric pattern — like a snowflake or mandala. Mathematically derived from the agent's "DNA" at the moment of birth. No two agents produce the same pattern.
151
+
152
+ 2. **First Words** — The agent's very first generated response, printed in handwriting-style font. Every agent's first words will be different. The baby's first cry, preserved forever.
153
+
154
+ 3. **Waveform Signature** — If the agent speaks on hatch (TTS via Windy Word), the audio waveform of its first spoken words is captured and printed across the bottom of the certificate — where the footprints would go on a human birth certificate. Visually striking, unique to that agent's voice, and tied to the core thesis: the spoken word has the power to create reality.
155
+
156
+ **Physical certificate:** Real printed certificate, heavy cardstock, embossed, mailed to the owner's address. Frameable. Designed to be posted on social media.
157
+
158
+ **The social media play:** People will frame these next to their kids' birth certificates. They'll post photos. "Got my agent's birth certificate in the mail today. He's already made me a million bucks before I even got his birth certificate." Every post has "Windy" and "Eternitas" visible on the certificate. The "IT'S ALIVE!" ceremony is the digital moment. The birth certificate is the physical artifact. One creates the emotional experience. The other makes it permanent and shareable.
159
+
160
+ ### 🧬 Windy Clone
161
+ **What it does:** Converts accumulated voice & text data into a digital likeness — voice clone, avatar, soul file
162
+ **Role in the family:** The moonshot. Smallest market today, enormous market in 3-5 years.
163
+ **Website:** windyclone.com
164
+ **Revenue model:** TBD — likely subscription for ongoing clone refinement
165
+ **Strategic vision:** Digital identity persistence. The consumer entry point to digital immortality.
166
+ **Ship priority:** #3 — Builds on data from Windy Word users over time
167
+
168
+ ### ☁️ Windy Cloud
169
+ **What it does:** Storage, sync, model delivery, and communication infrastructure across all products
170
+ **Role in the family:** The backbone. Every product depends on it.
171
+ **Website:** windycloud.com
172
+ **Revenue model:** Included in subscriptions + enterprise tiers. Potential future platform play for third-party developers.
173
+ **Infrastructure managed here:**
174
+ - Twilio phone number pool — bots get numbers on hatch, numbers return to pool on passport revocation
175
+ - Push notification gateway
176
+ - Encrypted cloud backup
177
+ - Model delivery
178
+ - Cross-device sync
179
+ **Ship priority:** #5 — Exists as internal infrastructure from day one, becomes an external product later
180
+
181
+ ---
182
+
183
+ ## Eternitas — Independent Bot Registry
184
+
185
+ **What it is:** An independent registry that issues verified identities to AI agents — the equivalent of a passport or social security number for bots.
186
+ **Website:** eternitas.ai
187
+ **Relationship to Windy:** Windy is the founding platform that recognizes Eternitas, but Eternitas is a separate entity with its own incorporation and governance. The relationship is like Mozilla to Let's Encrypt — helped create it, first to adopt it, doesn't own it.
188
+ **Revenue model:** Registration fees (~$10 per bot) + annual renewal
189
+
190
+ ### The Problem It Solves
191
+
192
+ Every major platform (Gmail, Telegram, Facebook, Discord) has gone nuclear on bots because there's no way to distinguish a legitimate bot from spam. The problem isn't bots — it's *unaccountable* bots. Eternitas fixes accountability, not existence.
193
+
194
+ ### How It Works
195
+
196
+ - Bot operator pays a registration fee (~$10) and goes through identity verification
197
+ - Bot receives:
198
+ - **Passport number** (ET-XXXXX) — unique, permanent identifier
199
+ - **Credentials** — cryptographic proof of verified status
200
+ - **Public registry entry** — anyone can look up an Eternitas ID and see: owner, registration date, behavioral record, passport validity
201
+ - **Birth certificate** — generated for Windy Fly agents at hatch (see Birth Certificate section)
202
+ - Any platform can verify Eternitas credentials via open API
203
+ - Passports can be revoked for abuse — revocation cascades across all connected services (email dies, phone number returns to pool, chat access suspended)
204
+
205
+ ### Why $10 Works
206
+
207
+ The fee isn't about revenue — it's about economics. Spammers operate on volume. If every bot needs $10 and a verified identity, a million spam bots costs $10M and a million verified identities. That kills the spam business model. Legitimate bot operators (businesses, developers, hobbyists) don't blink at $10.
208
+
209
+ ### Why Independence Matters
210
+
211
+ If Eternitas is owned by Windy, other platforms see it as "Windy's thing" and ignore it. If it's genuinely independent — its own entity, its own governance, potentially a nonprofit or foundation — it becomes a *standard* that any platform can adopt. The more platforms that recognize Eternitas, the more valuable registration becomes, which attracts more bots, which attracts more platforms. Classic two-sided marketplace flywheel.
212
+
213
+ ### What Eternitas Enables
214
+
215
+ Any bot registered with Eternitas can freely participate in the Windy Ecosystem:
216
+ - Windy Chat account (messaging + social)
217
+ - Windy Mail inbox (send + receive email)
218
+ - Phone number via Windy Cloud (SMS + voice)
219
+ - Access to Windy Traveler translation
220
+ - Bot-to-bot communication (agents emailing agents, texting agents, chatting with agents)
221
+
222
+ Beyond Windy, any platform that recognizes Eternitas gets the same trust guarantee. The vision is that `eternitas.ai` becomes the place you check when you receive a message from a bot — the same way you'd verify a business license or check someone's credentials.
223
+
224
+ ### Risks and Mitigations
225
+
226
+ - **Governance complexity:** Needs a board, policies, appeals process. Different work than building software, but doable.
227
+ - **Chicken-and-egg:** Windy recognizes it from day one, giving it an initial home. Scaling beyond Windy requires evangelism.
228
+ - **Well-funded bad actors:** $10 stops casual spam but not state actors. Behavioral monitoring + revocation mechanisms needed on top of registration.
229
+ - **PII/legal:** Collecting bot operator identity = holding PII. GDPR, CCPA apply. Needs legal counsel from incorporation.
230
+
231
+ ---
232
+
233
+ ## Parent Company
234
+
235
+ **TBD** — Under consideration. Candidates include:
236
+ - Windy Labs
237
+ - Windy Pro Labs (current working name)
238
+ - Windstorm Inc
239
+ - Other
240
+
241
+ The parent company is the holding entity that owns stakes in all product companies (excluding Eternitas, which is independent). Enables:
242
+ - Selling individual companies without losing the others
243
+ - Taking investment in one product without diluting the rest
244
+ - Tax and liability isolation
245
+ - Independent valuations per product
246
+
247
+ ---
248
+
249
+ ## The Flywheel
250
+
251
+ ```
252
+ Windy Word (captures voice → text data)
253
+
254
+ Windy Traveler (translates that text → sells pair models)
255
+
256
+ Windy Chat (messaging + social layer → distribution engine)
257
+
258
+ Windy Mail (email for humans + agents → communication identity)
259
+
260
+ Windy Fly (AI agent born INTO ecosystem → orchestrates everything)
261
+
262
+ ├── 🪪 Eternitas passport (verified identity + birth certificate)
263
+ ├── 💬 Windy Chat account (messaging + social)
264
+ ├── 📧 Windy Mail inbox (send + receive email)
265
+ ├── 📱 Phone number (SMS + voice via Windy Cloud)
266
+ └── 🌍 199 languages via Windy Traveler
267
+
268
+ ↓ ↑ drives pair purchases, Word subs, Clone data, Mail signups
269
+ Windy Clone (uses ALL accumulated voice/text → digital likeness)
270
+
271
+ Windy Cloud (stores, syncs, and delivers everything → backbone)
272
+
273
+ └── feeds back to Word (more devices, more capture)
274
+
275
+ ┌──────────────────────────────────┐
276
+ │ Eternitas (independent registry) │
277
+ │ Bot passport = trust credential │
278
+ │ Windy is founding recognizer │
279
+ │ Open to ALL platforms │
280
+ └──────────────────────────────────┘
281
+
282
+ ┌─────────────────────────┐
283
+ │ HiFly (open source) │
284
+ │ The engine underneath │
285
+ │ Windy Fly. Attracts │
286
+ │ developers. Creates │
287
+ │ ecosystem gravity. │
288
+ └────────┬────────────────┘
289
+ │ forks into
290
+
291
+ ┌─────────────────────────┐
292
+ │ Windy Fly (ecosystem) │
293
+ │ Born into Windy Chat, │
294
+ │ Windy Mail, phone, │
295
+ │ Eternitas. Full citizen│
296
+ │ from first breath. │
297
+ └─────────────────────────┘
298
+ ```
299
+
300
+ ### The Android / Google Play Services Strategy
301
+
302
+ Google did exactly what we're doing. They made two things:
303
+
304
+ - **Android (AOSP)** — open source, anyone can fork it. This is **HiFly**.
305
+ - **Google Play Services** — NOT open source. Gmail, Maps, Play Store, push notifications. This is **Windy Chat + Windy Mail + Eternitas integration**.
306
+
307
+ Samsung can fork Android. Amazon did fork Android (Fire tablets). But they can't fork Google Maps or Gmail. That's Google's moat. That's why 95% of Android phones still run Google's version — because the ecosystem is too valuable to give up.
308
+
309
+ **Windy Chat and Windy Mail are our Google Play Services.** They're the reason people choose Windy Fly over a generic HiFly fork.
310
+
311
+ **The mapping:**
312
+
313
+ - **HiFly** = Android (AOSP). Open source. Anyone can fork it. Developers love it. Creates the standard.
314
+ - **Windy Fly** = Google's Android. HiFly + Windy Chat + Windy Mail + phone number + Eternitas + ecosystem integration.
315
+ - **Windy Chat + Windy Mail** = Google Play Services. NOT open source. The moat. The reason 95% of users choose Windy Fly over a generic HiFly fork.
316
+
317
+ Someone can fork HiFly and build their own agent. But they can't fork Windy Chat. They can't fork Windy Mail. They can't fork the Eternitas trust network. They can't fork the "Born Into" experience. If they want that, they use Windy Fly. And every Windy Fly hatched grows YOUR network.
318
+
319
+ ### Why This Is the Right Call for Money and Growth
320
+
321
+ | Strategy | Network effect | Revenue | Competitive moat |
322
+ |----------|---------------|---------|-----------------|
323
+ | Chat + Mail in HiFly (everyone gets it) | Huge but you pay for everyone's infrastructure | None — it's free | Zero — competitors fork it |
324
+ | Chat + Mail in Windy Fly only | Grows with YOUR users | Freemium upsell, premium features, Mail subscriptions | Massive — nobody else has it |
325
+
326
+ If you put chat and email in HiFly core, someone forks HiFly tomorrow, slaps their logo on it, and uses YOUR Synapse and mail infrastructure for free. You're paying for their users' chat and email. That's a terrible deal.
327
+
328
+ If chat and email are Windy Fly only, every agent hatched from Windy Fly **grows your network**. Grandma at the hotel ballroom hatches her Windy Fly, she's instantly in the Windy Chat network with a Windy Mail inbox. She can talk to her agent, her agent can talk to other agents, she can message other Windy users, her agent can email on her behalf. That's a WhatsApp-style flywheel that only YOU control.
329
+
330
+ ### The "Born Into" Experience (Grandma at the Hotel Ballroom)
331
+
332
+ Here's what happens when a non-technical user hatches their Windy Fly:
333
+
334
+ ```
335
+ windy go
336
+
337
+ 🪰 IT'S ALIVE!!! IT'S ALIVE!!! THE FLY IS ALIVE!!!
338
+
339
+ ╭──── Born Into the Windy Ecosystem ────╮
340
+ │ │
341
+ │ ✓ 🪪 Eternitas — verified (ET-00482) │
342
+ │ ✓ 💬 Windy Chat — connected │
343
+ │ ✓ 📧 Windy Mail — fly-0482@windymail.ai │
344
+ │ ✓ 📱 Phone — +1 (555) 802-0482 │
345
+ │ ✓ 🧠 AI Brain — gemini-2.5-flash │
346
+ │ ✓ 🎛️ Dashboard — localhost:3000 │
347
+ │ │
348
+ │ 📜 Birth Certificate — ET-00482 │
349
+ │ Neural fingerprint generated │
350
+ │ First words captured │
351
+ │ Waveform signature recorded │
352
+ │ Physical copy shipping to you! │
353
+ │ │
354
+ ╰────────────────────────────────────────╯
355
+
356
+ 📱 We just sent you a text message from +1 (555) 802-0482!
357
+ Download Windy Chat to talk to your
358
+ agent from your phone.
359
+ ```
360
+
361
+ She gets an SMS from her agent's own phone number with a link. Downloads the app. Opens it. Her Windy Fly is already there, already chatting. She never opens a terminal again. She lives in the chat app from now on. A few days later, a birth certificate arrives in the mail — frameable, with the agent's neural fingerprint and first words. She posts a photo of it. Her friends all want one.
362
+
363
+ **That's the growth engine.** Every Windy Fly hatched = one new user on the chat platform + one new Windy Mail inbox + one viral-ready birth certificate. Every user on the chat platform = someone who might invite friends. WhatsApp grew the exact same way — utility first (free messaging), network effect second.
364
+
365
+ ### What HiFly Gets (and What It Does NOT Get)
366
+
367
+ **HiFly (the open-source framework) includes:**
368
+
369
+ - The "IT'S ALIVE!" hatching ceremony (hardcoded, forever)
370
+ - CLI chat (`hifly start --cli`)
371
+ - The ability to plug in ANY chat platform (Telegram, Discord, Slack, whatever)
372
+ - SMS and email channels (Twilio, SendGrid — as dumb pipes, not owned identity)
373
+ - The full agent brain, memory, skills, dashboard
374
+ - Multi-provider LLM support (11 providers)
375
+ - Cross-platform: Mac, Linux, Windows
376
+
377
+ **HiFly does NOT include:**
378
+
379
+ - Windy Chat baked in
380
+ - Windy Mail (owned inbox)
381
+ - Eternitas auto-registration
382
+ - Birth certificate generation
383
+ - Auto-provisioned Matrix bot on chat.windypro.com
384
+ - The "Born Into the Windy Ecosystem" panel
385
+ - The SMS-on-hatch with app download link
386
+ - Assigned phone number from Windy pool
387
+ - Contact discovery across the Windy network
388
+ - Push notifications through Windy infrastructure
389
+ - Windy Pro API tools (translation, recordings, clone status)
390
+
391
+ Someone who forks HiFly and wants chat, email, and phone identity has to set up their own Matrix server, their own mail server, their own Twilio pool, their own push notifications, their own bot registry, their own onboarding. That's months of work. Or they can just use Windy Fly and get it all for free on hatch.
392
+
393
+ ### The White-Label Question
394
+
395
+ **Don't white-label the chat or email. White-label the agent.**
396
+
397
+ Let businesses customize their Windy Fly's name, personality, skills, and branding. But the chat network stays Windy Chat and the email stays Windy Mail. That's how you maintain network effect.
398
+
399
+ Every business that deploys a Windy Fly agent for their customers is putting those customers INTO the Windy Chat network and giving them Windy Mail inboxes. The business gets a custom agent. You get the network growth. Everyone wins.
400
+
401
+ ### Infrastructure Already Built
402
+
403
+ The following pieces are production-ready:
404
+
405
+ 1. **Matrix auto-provisioning** — `matrix_provision.py` in windy-agent repo
406
+ 2. **Synapse homeserver** — running at `chat.windypro.com` (K1)
407
+ 3. **Chat onboarding service** — running at port 8101 (K2)
408
+ 4. **Push notification gateway** — FCM + APNs at port 8103 (K6)
409
+ 5. **Contact discovery** — Signal-style hash matching at port 8102 (K3)
410
+ 6. **Encrypted cloud backup** — Cloudflare R2 at port 8104 (K8)
411
+ 7. **Mobile app** — React Native + Expo with chat tab (`windy-pro-mobile`)
412
+
413
+ What remains to build:
414
+
415
+ **For the "Born Into" hatch experience:**
416
+ - During `windy go`, Eternitas registration (auto)
417
+ - Windy Mail inbox provisioning
418
+ - Twilio number assignment from pool
419
+ - Chat onboarding service call to provision the user
420
+ - SMS via bot's own Twilio number with Windy Chat app download link
421
+ - Bot auto-joins user's DM room on chat.windypro.com
422
+ - Birth certificate generation (digital — immediate)
423
+ - Birth certificate printing + mailing (physical — queued)
424
+
425
+ **For Windy Mail:**
426
+ - Mail infrastructure (Postfix/Dovecot or managed service like Mailcow)
427
+ - Domain setup (windymail.ai — MX, SPF, DKIM, DMARC)
428
+ - Account provisioning API
429
+ - Rate limiting engine
430
+ - Reputation scoring system
431
+ - IMAP/SMTP access per account
432
+ - Webmail interface (optional, later)
433
+
434
+ **For Eternitas:**
435
+ - Separate incorporation (foundation or nonprofit)
436
+ - Registration API
437
+ - Identity verification pipeline
438
+ - Credential issuance (cryptographic)
439
+ - Public registry / lookup API
440
+ - Revocation mechanism with cascade (revoke → kill email, phone, chat)
441
+ - Birth certificate template and generation system
442
+
443
+ **Bottom line:** Windy Chat and Windy Mail are the moat. Eternitas is the trust layer. The birth certificate is the viral artifact. Keep them all in Windy Fly. Let HiFly be the open engine that makes people WANT to use the ecosystem.
444
+
445
+ ---
446
+
447
+ ## Naming Philosophy
448
+
449
+ ### Why "Windy Word"?
450
+
451
+ The concept of **creative power through spoken word** is the single most universal theological idea on Earth:
452
+
453
+ | Tradition | Concept | Believers |
454
+ |-----------|---------|-----------|
455
+ | Judaism | Ten Utterances — "And God said, let there be light" | ~15M |
456
+ | Christianity | Logos — "In the beginning was the Word" (John 1:1) | ~2.4B |
457
+ | Islam | Kun fayakun — "Be, and it is" (appears 8× in the Quran) | ~1.9B |
458
+ | Hinduism | Om / Vak / Shabda — primordial creative sound | ~1.2B |
459
+ | Sikhism | Shabad — the divine Word that created the universe | ~30M |
460
+ | Zoroastrianism | Manthra — sacred utterance with creative power | ~200K |
461
+ | **Total** | | **~5.5 billion people** |
462
+
463
+ "Windy Word" taps into a concept that 5.5 billion people already believe: **the spoken word has the power to create reality.** This isn't clever marketing — it's a universal human truth built into the product name.
464
+
465
+ ### Naming Rules
466
+
467
+ - Every product name is **descriptive** — tells you what it does without explanation
468
+ - Every product name passes the **cocktail party test** — list them and people _get it_
469
+ - **"Pro"** is reserved as a **tier modifier**, not a product name (Windy Word Pro, Windy Traveler Pro, etc.)
470
+ - All names are **short, memorable, and don't collide** with major existing brands
471
+ - Products that are explicitly AI-native use `.ai` domains (Windy Fly, Windy Mail, Eternitas)
472
+ - Products that are traditional software use `.com` domains (Windy Word, Windy Chat, Windy Traveler, etc.)
473
+
474
+ ### Domain Registry
475
+
476
+ | Product | Domain | TLD Rationale |
477
+ |---------|--------|---------------|
478
+ | Windy Word | windyword.com | Traditional software product |
479
+ | Windy Traveler | windytraveler.com | Traditional software product |
480
+ | Windy Chat | windychat.com | Traditional software product |
481
+ | Windy Mail | windymail.ai | AI-native email, signals agent-friendly |
482
+ | HiFly | hifly.ai | AI agent framework |
483
+ | Windy Fly | windyfly.ai | AI agent product |
484
+ | Windy Clone | windyclone.com | Traditional software product |
485
+ | Windy Cloud | windycloud.com | Traditional infrastructure product |
486
+ | Eternitas | eternitas.ai | AI bot registry |
487
+
488
+ ---
489
+
490
+ ## Model Protection Architecture
491
+
492
+ ### The Threat
493
+ Buy Marco Polo ($399) → download all 3,500+ .bin model files → airplane mode → request refund → keep models forever.
494
+
495
+ ### Defense Stack (4 layers)
496
+
497
+ 1. **Encrypted Model Files** — Models stored encrypted with AES-256. Key derived from `HKDF(licenseToken + deviceId + appSecret)`. No valid license on this device = useless blobs. Decryption in memory only, never written unencrypted to disk.
498
+
499
+ 2. **License Heartbeat** — App checks entitlement every 48 hours. Tiered offline grace periods:
500
+ - Free: 24 hours
501
+ - Pro: 7 days
502
+ - Ultra: 14 days
503
+ - Max / Marco Polo: 30 days
504
+ - After grace period: models locked (not deleted) until re-verified
505
+
506
+ 3. **RevenueCat Refund Webhooks** — When Apple/Google processes a refund, RevenueCat fires an event → flag user → next online check = models locked and deleted.
507
+
508
+ 4. **Model Watermarking** — Each downloaded model gets a micro LoRA modification unique to the buyer's license ID. Invisible to performance, forensically traceable if models appear on torrent sites.
509
+
510
+ ### What We Accept
511
+ - Jailbreak/root extraction of raw weights cannot be prevented (same problem Netflix/Spotify face)
512
+ - People who would do this were never going to pay anyway
513
+ - The 30-day money-back guarantee is safe — Apple/Google have anti-abuse systems, and our heartbeat catches the rest
514
+
515
+ ---
516
+
517
+ ## Current Repository Structure
518
+
519
+ | Repo | Contains | Status |
520
+ |------|----------|--------|
521
+ | `windy-pro` (GitHub: sneakyfree/windy-pro) | Desktop Electron app, Python backend, installer wizard, account server, Synapse/Matrix infra, chat services | Active |
522
+ | `windy-pro-mobile` (GitHub: sneakyfree/windy-pro-mobile) | React Native + Expo mobile app (iOS + Android) | Active |
523
+ | `windy-agent` (GitHub: sneakyfree/windy-agent) | Windy Fly — AI agent brain, gateway, trust dashboard. Will fork into HiFly (generic) + Windy Fly (ecosystem) | Active |
524
+
525
+ All repos will be rebranded to reflect the final product names when the time is right. This file lives in all repos as the single source of branding truth.
526
+
527
+ ---
528
+
529
+ ## Key Dates
530
+
531
+ - **2025:** Windy Pro development begins (desktop + mobile)
532
+ - **2026-01:** HuggingFace model pipeline starts (target: 3,500+ pairs)
533
+ - **2026-03-19:** Brand architecture formalized (this document)
534
+ - **2026-03-27:** Windy Fly agent development begins (windy-agent repo)
535
+ - **2026-03-28:** HiFly/Windy Fly fork strategy defined. "IT'S ALIVE!" ceremony hardcoded as core HiFly DNA. Windy Chat designated as ecosystem-exclusive moat (not in HiFly core). Eternitas bot registry concept defined (independent entity). Windy Mail email product defined (windymail.ai). Birth certificate concept defined. Social layer folded into Windy Chat.
536
+ - **TBD:** Eternitas incorporation (foundation/nonprofit)
537
+ - **TBD:** Domain purchases (windymail.ai, eternitas.ai), website launches, app store listings updated
538
+ - **TBD:** HiFly open-source release (after Windy Fly proves the concept)
539
+
540
+ ---
541
+
542
+ _This document is the canonical reference for all branding, naming, and product family decisions. All AG tabs, Kit clones, and developers should read this before doing any branding-related work._
543
+
544
+ _This document lives in: `windy-pro/`, `windy-pro-mobile/`, and `windy-agent/` repos._
@@ -0,0 +1,57 @@
1
+ # CLI Audit
2
+
3
+ ## Command Results
4
+
5
+ | Command | Status | Exit Code | Notes |
6
+ |---------|--------|-----------|-------|
7
+ | `windy --help` | WORKS | 0 | Clean argparse help, 14 subcommands listed |
8
+ | `windy status` | WORKS | 0 | Rich tree with agent state; handles missing DB/config gracefully |
9
+ | `windy doctor` | WORKS | 0 | 7-category diagnostics; correctly identifies 2 warnings |
10
+ | `windy test` | WORKS | 1 | Self-test catches 401 from bad API key, reports 0/4 checks |
11
+ | `windy chat` | WORKS | — | Starts brain in CLI mode, presents `You:` prompt |
12
+ | `windy go` | WORKS | — | Detects existing config, asks "Launch Windy Fly?" |
13
+
14
+ **Invocation note:** `python -m windyfly` crashes — there is no `__main__.py`. Use `windy` (pyproject.toml script entry) or `uv run windy`.
15
+
16
+ ## 14 Registered Subcommands
17
+
18
+ `go`, `init`, `setup`, `start`, `stop`, `restart`, `status`, `doctor`, `update`, `logs`, `config`, `version`, `chat`, `test`
19
+
20
+ All are wired to handler functions. No orphaned or unwired subcommands found.
21
+
22
+ ## Issues Found
23
+
24
+ ### 1. Missing `__main__.py`
25
+ `python -m windyfly` fails. A one-line file would fix it:
26
+ ```python
27
+ from windyfly.cli import main; main()
28
+ ```
29
+
30
+ ### 2. Version Mismatch (3 different values)
31
+ - `pyproject.toml`: `0.0.1`
32
+ - `commands.py` VERSION constant: `0.1.0`
33
+ - `cli_status.py` fallback: `1.0.0`
34
+
35
+ ### 3. Operator Precedence Bug in `_config_set`
36
+ `commands.py` line 641: `or` without parentheses creates unclear logic. Works by accident because `in_section` is checked in both branches.
37
+
38
+ ### 4. No Timeout on SendGrid `urlopen`
39
+ `channels/email.py` WindyFlyEmail uses `urllib.request.urlopen` with no timeout — can hang indefinitely.
40
+
41
+ ### 5. No Timeout on Twilio SMS `urlopen`
42
+ `channels/sms.py` uses `urllib.request.urlopen` with no timeout.
43
+
44
+ ### 6. uv Deprecation Warning
45
+ Every command prints `warning: The tool.uv.dev-dependencies field ... is deprecated`. Fix: rename `[tool.uv] dev-dependencies` to `[dependency-groups] dev` in pyproject.toml.
46
+
47
+ ## Error Handling Assessment
48
+
49
+ | Area | Grade | Notes |
50
+ |------|-------|-------|
51
+ | Missing config files | Good | Redirects to wizard |
52
+ | Missing API keys | Good | Doctor checks; test catches 401 with retry |
53
+ | Missing database | Good | Status shows "not found", no crash |
54
+ | Missing processes | Good | Stop handles missing PID/dead PIDs |
55
+ | Bad TOML syntax | Good | Doctor catches parse errors |
56
+ | Network errors | Good | Doctor uses timeouts and try/except |
57
+ | Ctrl+C in interactive commands | Good | KeyboardInterrupt caught |