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.
- windyfly-0.1.0/.env.example +36 -0
- windyfly-0.1.0/.gitignore +30 -0
- windyfly-0.1.0/BRAND-ARCHITECTURE.md +544 -0
- windyfly-0.1.0/CLI_AUDIT.md +57 -0
- windyfly-0.1.0/DEAD_CODE.md +56 -0
- windyfly-0.1.0/FORK.md +121 -0
- windyfly-0.1.0/GAP_ANALYSIS.md +70 -0
- windyfly-0.1.0/GATEWAY_AUDIT.md +81 -0
- windyfly-0.1.0/INTEGRATION_AUDIT.md +49 -0
- windyfly-0.1.0/PKG-INFO +14 -0
- windyfly-0.1.0/README.md +144 -0
- windyfly-0.1.0/RIBOSOME_BLUEPRINT.md +1311 -0
- windyfly-0.1.0/SOUL.md +23 -0
- windyfly-0.1.0/data/.gitkeep +0 -0
- windyfly-0.1.0/data/audio/its-alive.wav +0 -0
- windyfly-0.1.0/docs/API_REFERENCE.md +1093 -0
- windyfly-0.1.0/docs/BUILD-PROGRESS.md +63 -0
- windyfly-0.1.0/docs/ONBOARDING.md +92 -0
- windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART1.md +594 -0
- windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART2.md +366 -0
- windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART3.md +414 -0
- windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART4.md +390 -0
- windyfly-0.1.0/docs/WINDY_FLY_DNA_STRAND_PART5.md +320 -0
- windyfly-0.1.0/docs/architecture/synthesized_architecture.md +479 -0
- windyfly-0.1.0/docs/research/greenfield_agent_architecture.md +219 -0
- windyfly-0.1.0/docs/research/grok_plan_analysis.md +163 -0
- windyfly-0.1.0/docs/research/openclaw_hermes_merger_analysis.md +184 -0
- windyfly-0.1.0/gateway/.gitkeep +0 -0
- windyfly-0.1.0/gateway/bun.lock +21 -0
- windyfly-0.1.0/gateway/package.json +13 -0
- windyfly-0.1.0/gateway/public/index.html +1828 -0
- windyfly-0.1.0/gateway/public/setup.html +1050 -0
- windyfly-0.1.0/gateway/src/bridge.ts +183 -0
- windyfly-0.1.0/gateway/src/machines.ts +370 -0
- windyfly-0.1.0/gateway/src/providers.ts +722 -0
- windyfly-0.1.0/gateway/src/server.ts +1059 -0
- windyfly-0.1.0/gateway/src/websocket.ts +71 -0
- windyfly-0.1.0/gateway/tsconfig.json +20 -0
- windyfly-0.1.0/pyproject.toml +40 -0
- windyfly-0.1.0/remote/package.json +14 -0
- windyfly-0.1.0/remote/src/daemon.ts +490 -0
- windyfly-0.1.0/scripts/install.sh +215 -0
- windyfly-0.1.0/src/windyfly/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/__main__.py +5 -0
- windyfly-0.1.0/src/windyfly/agent/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/agent/context_header.py +104 -0
- windyfly-0.1.0/src/windyfly/agent/emotion_detector.py +87 -0
- windyfly-0.1.0/src/windyfly/agent/failure_detector.py +110 -0
- windyfly-0.1.0/src/windyfly/agent/intent_detector.py +141 -0
- windyfly-0.1.0/src/windyfly/agent/loop.py +472 -0
- windyfly-0.1.0/src/windyfly/agent/models.py +220 -0
- windyfly-0.1.0/src/windyfly/agent/oauth.py +152 -0
- windyfly-0.1.0/src/windyfly/agent/offline.py +196 -0
- windyfly-0.1.0/src/windyfly/agent/prompt.py +186 -0
- windyfly-0.1.0/src/windyfly/agent/providers.py +265 -0
- windyfly-0.1.0/src/windyfly/agent/self_assessment.py +132 -0
- windyfly-0.1.0/src/windyfly/agent/shape_shift.py +241 -0
- windyfly-0.1.0/src/windyfly/agent/sub_agents.py +165 -0
- windyfly-0.1.0/src/windyfly/birth_certificate.py +383 -0
- windyfly-0.1.0/src/windyfly/branding.py +45 -0
- windyfly-0.1.0/src/windyfly/bridge/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/bridge/uds_server.py +537 -0
- windyfly-0.1.0/src/windyfly/channels/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/channels/cli.py +85 -0
- windyfly-0.1.0/src/windyfly/channels/email.py +270 -0
- windyfly-0.1.0/src/windyfly/channels/matrix_bot.py +584 -0
- windyfly-0.1.0/src/windyfly/channels/sms.py +257 -0
- windyfly-0.1.0/src/windyfly/cli.py +506 -0
- windyfly-0.1.0/src/windyfly/cli_selftest.py +169 -0
- windyfly-0.1.0/src/windyfly/cli_status.py +259 -0
- windyfly-0.1.0/src/windyfly/commands.py +794 -0
- windyfly-0.1.0/src/windyfly/config.py +64 -0
- windyfly-0.1.0/src/windyfly/control_panel.py +465 -0
- windyfly-0.1.0/src/windyfly/dashboard/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/dashboard/data.py +233 -0
- windyfly-0.1.0/src/windyfly/eternitas/__init__.py +22 -0
- windyfly-0.1.0/src/windyfly/eternitas/client.py +145 -0
- windyfly-0.1.0/src/windyfly/eternitas/mock.py +196 -0
- windyfly-0.1.0/src/windyfly/eternitas/models.py +99 -0
- windyfly-0.1.0/src/windyfly/eternitas/provision.py +146 -0
- windyfly-0.1.0/src/windyfly/hatch_actions.py +73 -0
- windyfly-0.1.0/src/windyfly/hatch_orchestrator.py +404 -0
- windyfly-0.1.0/src/windyfly/hatching.py +270 -0
- windyfly-0.1.0/src/windyfly/integrations/__init__.py +6 -0
- windyfly-0.1.0/src/windyfly/integrations/contact_discovery.py +65 -0
- windyfly-0.1.0/src/windyfly/integrations/push_gateway.py +59 -0
- windyfly-0.1.0/src/windyfly/integrations/windy_clone.py +54 -0
- windyfly-0.1.0/src/windyfly/integrations/windy_cloud.py +109 -0
- windyfly-0.1.0/src/windyfly/integrations/windy_traveler.py +76 -0
- windyfly-0.1.0/src/windyfly/integrations/windy_word.py +94 -0
- windyfly-0.1.0/src/windyfly/mail_mock.py +131 -0
- windyfly-0.1.0/src/windyfly/mail_provision.py +88 -0
- windyfly-0.1.0/src/windyfly/mail_rate_limiter.py +185 -0
- windyfly-0.1.0/src/windyfly/main.py +184 -0
- windyfly-0.1.0/src/windyfly/matrix_provision.py +252 -0
- windyfly-0.1.0/src/windyfly/memory/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/memory/conflict_detector.py +125 -0
- windyfly-0.1.0/src/windyfly/memory/cost_ledger.py +97 -0
- windyfly-0.1.0/src/windyfly/memory/cost_tracker.py +76 -0
- windyfly-0.1.0/src/windyfly/memory/database.py +283 -0
- windyfly-0.1.0/src/windyfly/memory/decay.py +143 -0
- windyfly-0.1.0/src/windyfly/memory/episodes.py +116 -0
- windyfly-0.1.0/src/windyfly/memory/failures.py +142 -0
- windyfly-0.1.0/src/windyfly/memory/intents.py +168 -0
- windyfly-0.1.0/src/windyfly/memory/nodes.py +155 -0
- windyfly-0.1.0/src/windyfly/memory/skills.py +90 -0
- windyfly-0.1.0/src/windyfly/memory/soul.py +100 -0
- windyfly-0.1.0/src/windyfly/memory/write_queue.py +128 -0
- windyfly-0.1.0/src/windyfly/observability/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/observability/events.py +134 -0
- windyfly-0.1.0/src/windyfly/personality/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/personality/engine.py +159 -0
- windyfly-0.1.0/src/windyfly/personality/mode.py +27 -0
- windyfly-0.1.0/src/windyfly/personality/versioning.py +313 -0
- windyfly-0.1.0/src/windyfly/phone_provision.py +201 -0
- windyfly-0.1.0/src/windyfly/platform.py +273 -0
- windyfly-0.1.0/src/windyfly/quickstart.py +1016 -0
- windyfly-0.1.0/src/windyfly/setup_wizard.py +638 -0
- windyfly-0.1.0/src/windyfly/skills/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/skills/evaluator.py +133 -0
- windyfly-0.1.0/src/windyfly/skills/golden_tests.py +117 -0
- windyfly-0.1.0/src/windyfly/skills/manager.py +112 -0
- windyfly-0.1.0/src/windyfly/skills/sandbox.py +125 -0
- windyfly-0.1.0/src/windyfly/soul_import/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/soul_import/chatgpt.py +131 -0
- windyfly-0.1.0/src/windyfly/soul_import/hermes.py +132 -0
- windyfly-0.1.0/src/windyfly/soul_import/openclaw.py +123 -0
- windyfly-0.1.0/src/windyfly/soul_import/orchestrator.py +169 -0
- windyfly-0.1.0/src/windyfly/soul_import/preview.py +85 -0
- windyfly-0.1.0/src/windyfly/tools/__init__.py +0 -0
- windyfly-0.1.0/src/windyfly/tools/registry.py +93 -0
- windyfly-0.1.0/src/windyfly/tools/web_search.py +92 -0
- windyfly-0.1.0/src/windyfly/tools/windy_api.py +250 -0
- windyfly-0.1.0/tests/__init__.py +0 -0
- windyfly-0.1.0/tests/test_adaptive_mode.py +66 -0
- windyfly-0.1.0/tests/test_agent_loop.py +445 -0
- windyfly-0.1.0/tests/test_birth_certificate.py +155 -0
- windyfly-0.1.0/tests/test_branding.py +136 -0
- windyfly-0.1.0/tests/test_bridge_integration.py +237 -0
- windyfly-0.1.0/tests/test_channel_health.py +194 -0
- windyfly-0.1.0/tests/test_chaos.py +492 -0
- windyfly-0.1.0/tests/test_cli_commands.py +70 -0
- windyfly-0.1.0/tests/test_commands_new.py +199 -0
- windyfly-0.1.0/tests/test_context_header.py +105 -0
- windyfly-0.1.0/tests/test_contract_eternitas.py +220 -0
- windyfly-0.1.0/tests/test_contract_mail.py +176 -0
- windyfly-0.1.0/tests/test_contract_matrix.py +223 -0
- windyfly-0.1.0/tests/test_contract_pro_api.py +221 -0
- windyfly-0.1.0/tests/test_control_panel.py +205 -0
- windyfly-0.1.0/tests/test_cost_tracker.py +57 -0
- windyfly-0.1.0/tests/test_decay_immediate.py +63 -0
- windyfly-0.1.0/tests/test_edge_cases.py +282 -0
- windyfly-0.1.0/tests/test_email_channel.py +39 -0
- windyfly-0.1.0/tests/test_emotion.py +57 -0
- windyfly-0.1.0/tests/test_eternitas.py +219 -0
- windyfly-0.1.0/tests/test_failure_detector_precision.py +61 -0
- windyfly-0.1.0/tests/test_gap_closure.py +391 -0
- windyfly-0.1.0/tests/test_gateway_hardening.py +183 -0
- windyfly-0.1.0/tests/test_gateway_smoke.py +237 -0
- windyfly-0.1.0/tests/test_hardening_agent_loop.py +245 -0
- windyfly-0.1.0/tests/test_hardening_integrations.py +316 -0
- windyfly-0.1.0/tests/test_hardening_memory.py +297 -0
- windyfly-0.1.0/tests/test_hardening_personality.py +237 -0
- windyfly-0.1.0/tests/test_hardening_skills.py +211 -0
- windyfly-0.1.0/tests/test_hatch_actions.py +48 -0
- windyfly-0.1.0/tests/test_hatch_e2e.py +282 -0
- windyfly-0.1.0/tests/test_hatch_full.py +173 -0
- windyfly-0.1.0/tests/test_hatch_integration.py +331 -0
- windyfly-0.1.0/tests/test_hatch_orchestrator.py +114 -0
- windyfly-0.1.0/tests/test_hatching.py +85 -0
- windyfly-0.1.0/tests/test_integrations.py +104 -0
- windyfly-0.1.0/tests/test_intents.py +95 -0
- windyfly-0.1.0/tests/test_journal.py +30 -0
- windyfly-0.1.0/tests/test_live_gateway.py +460 -0
- windyfly-0.1.0/tests/test_mail_mock.py +58 -0
- windyfly-0.1.0/tests/test_mail_rate_limiter.py +124 -0
- windyfly-0.1.0/tests/test_matrix_bot.py +277 -0
- windyfly-0.1.0/tests/test_matrix_provision.py +91 -0
- windyfly-0.1.0/tests/test_memory.py +270 -0
- windyfly-0.1.0/tests/test_offline_queue_atomic.py +69 -0
- windyfly-0.1.0/tests/test_personality.py +95 -0
- windyfly-0.1.0/tests/test_phase4.py +254 -0
- windyfly-0.1.0/tests/test_phase5.py +260 -0
- windyfly-0.1.0/tests/test_phone_provision.py +64 -0
- windyfly-0.1.0/tests/test_platform.py +272 -0
- windyfly-0.1.0/tests/test_quickstart.py +209 -0
- windyfly-0.1.0/tests/test_relationship_moments.py +77 -0
- windyfly-0.1.0/tests/test_security.py +212 -0
- windyfly-0.1.0/tests/test_security_hardened.py +298 -0
- windyfly-0.1.0/tests/test_self_assessment.py +32 -0
- windyfly-0.1.0/tests/test_setup_consistency.py +234 -0
- windyfly-0.1.0/tests/test_shape_shift.py +122 -0
- windyfly-0.1.0/tests/test_skills_engine.py +137 -0
- windyfly-0.1.0/tests/test_sms_channel.py +58 -0
- windyfly-0.1.0/tests/test_soul_import.py +169 -0
- windyfly-0.1.0/tests/test_stress.py +301 -0
- windyfly-0.1.0/tests/test_stress_ecosystem.py +770 -0
- windyfly-0.1.0/tests/test_tools.py +280 -0
- windyfly-0.1.0/tests/test_ux_hardened.py +303 -0
- windyfly-0.1.0/tests/test_ux_quality.py +222 -0
- windyfly-0.1.0/tests/test_web_search.py +85 -0
- windyfly-0.1.0/uv.lock +1523 -0
- 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 |
|