wispy-ai 0.7.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +284 -269
- package/bin/chatterbox-tts.py +75 -0
- package/bin/run-chatterbox.py +71 -0
- package/dist/agents/tool-executor.d.ts +43 -0
- package/dist/agents/tool-executor.d.ts.map +1 -1
- package/dist/agents/tool-executor.js +1489 -18
- package/dist/agents/tool-executor.js.map +1 -1
- package/dist/ai/gemini.d.ts +8 -0
- package/dist/ai/gemini.d.ts.map +1 -1
- package/dist/ai/gemini.js +38 -2
- package/dist/ai/gemini.js.map +1 -1
- package/dist/ai/grounding.d.ts +63 -0
- package/dist/ai/grounding.d.ts.map +1 -0
- package/dist/ai/grounding.js +176 -0
- package/dist/ai/grounding.js.map +1 -0
- package/dist/ai/prompts.d.ts.map +1 -1
- package/dist/ai/prompts.js +254 -1
- package/dist/ai/prompts.js.map +1 -1
- package/dist/ai/tools.d.ts.map +1 -1
- package/dist/ai/tools.js +374 -7
- package/dist/ai/tools.js.map +1 -1
- package/dist/api/keys.d.ts +74 -0
- package/dist/api/keys.d.ts.map +1 -0
- package/dist/api/keys.js +173 -0
- package/dist/api/keys.js.map +1 -0
- package/dist/api/router.d.ts +34 -0
- package/dist/api/router.d.ts.map +1 -0
- package/dist/api/router.js +574 -0
- package/dist/api/router.js.map +1 -0
- package/dist/channels/telegram/adapter.d.ts.map +1 -1
- package/dist/channels/telegram/adapter.js +963 -53
- package/dist/channels/telegram/adapter.js.map +1 -1
- package/dist/cli/integration-wizard.d.ts +63 -0
- package/dist/cli/integration-wizard.d.ts.map +1 -0
- package/dist/cli/integration-wizard.js +558 -0
- package/dist/cli/integration-wizard.js.map +1 -0
- package/dist/cli/postinstall.js +1 -1
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/cli/program.js +179 -28
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/repl.d.ts +1 -1
- package/dist/cli/repl.js +1 -1
- package/dist/cli/setup/wizard.d.ts.map +1 -1
- package/dist/cli/setup/wizard.js +111 -0
- package/dist/cli/setup/wizard.js.map +1 -1
- package/dist/cli/skill-manager.d.ts +70 -0
- package/dist/cli/skill-manager.d.ts.map +1 -0
- package/dist/cli/skill-manager.js +375 -0
- package/dist/cli/skill-manager.js.map +1 -0
- package/dist/cli/ui/banner.js +1 -1
- package/dist/cli/voice/tts.d.ts.map +1 -1
- package/dist/cli/voice/tts.js +15 -1
- package/dist/cli/voice/tts.js.map +1 -1
- package/dist/config/config.js +3 -3
- package/dist/config/config.js.map +1 -1
- package/dist/config/schema.d.ts +8 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +27 -2
- package/dist/core/agent.js.map +1 -1
- package/dist/core/context-isolator.d.ts +91 -0
- package/dist/core/context-isolator.d.ts.map +1 -0
- package/dist/core/context-isolator.js +295 -0
- package/dist/core/context-isolator.js.map +1 -0
- package/dist/core/multimodal-engine.d.ts +74 -0
- package/dist/core/multimodal-engine.d.ts.map +1 -0
- package/dist/core/multimodal-engine.js +289 -0
- package/dist/core/multimodal-engine.js.map +1 -0
- package/dist/core/thinking.d.ts +4 -0
- package/dist/core/thinking.d.ts.map +1 -1
- package/dist/core/thinking.js +63 -11
- package/dist/core/thinking.js.map +1 -1
- package/dist/documents/latex.d.ts +210 -0
- package/dist/documents/latex.d.ts.map +1 -0
- package/dist/documents/latex.js +585 -0
- package/dist/documents/latex.js.map +1 -0
- package/dist/documents/telegram-delivery.d.ts +60 -0
- package/dist/documents/telegram-delivery.d.ts.map +1 -0
- package/dist/documents/telegram-delivery.js +183 -0
- package/dist/documents/telegram-delivery.js.map +1 -0
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +17 -6
- package/dist/gateway/server.js.map +1 -1
- package/dist/marathon/durable-executor.d.ts +16 -0
- package/dist/marathon/durable-executor.d.ts.map +1 -1
- package/dist/marathon/durable-executor.js +201 -15
- package/dist/marathon/durable-executor.js.map +1 -1
- package/dist/marathon/executor.d.ts +7 -1
- package/dist/marathon/executor.d.ts.map +1 -1
- package/dist/marathon/executor.js +50 -3
- package/dist/marathon/executor.js.map +1 -1
- package/dist/marathon/service.d.ts +4 -0
- package/dist/marathon/service.d.ts.map +1 -1
- package/dist/marathon/service.js +14 -2
- package/dist/marathon/service.js.map +1 -1
- package/dist/marathon/telegram-visuals.d.ts +127 -0
- package/dist/marathon/telegram-visuals.d.ts.map +1 -0
- package/dist/marathon/telegram-visuals.js +671 -0
- package/dist/marathon/telegram-visuals.js.map +1 -0
- package/dist/marathon/types.d.ts +1 -1
- package/dist/marathon/types.d.ts.map +1 -1
- package/dist/trust/progress-notifier.d.ts +103 -0
- package/dist/trust/progress-notifier.d.ts.map +1 -0
- package/dist/trust/progress-notifier.js +322 -0
- package/dist/trust/progress-notifier.js.map +1 -0
- package/dist/voice/realistic-tts.d.ts +88 -0
- package/dist/voice/realistic-tts.d.ts.map +1 -0
- package/dist/voice/realistic-tts.js +445 -0
- package/dist/voice/realistic-tts.js.map +1 -0
- package/package.json +8 -2
- package/wispy/memory/2026-02-04.md +28 -0
- package/wispy/memory/2026-02-05.md +48 -0
- package/wispy/memory/2026-02-06.md +16 -0
- package/wispy/memory/heartbeat-state.json +1 -1
- package/wispy/skills/a2a/SKILL.md +20 -0
- package/wispy/skills/autonomous-webapp/PROMPTS.md +296 -0
- package/wispy/skills/autonomous-webapp/SKILL.md +221 -0
- package/wispy/skills/browser/SKILL.md +32 -0
- package/wispy/skills/chainlink/SKILL.md +18 -0
- package/wispy/skills/codegen/SKILL.md +28 -0
- package/wispy/skills/content/SKILL.md +20 -0
- package/wispy/skills/cron/SKILL.md +22 -0
- package/wispy/skills/documents/SKILL.md +29 -0
- package/wispy/skills/images/SKILL.md +22 -0
- package/wispy/skills/latex-documents.md +127 -0
- package/wispy/skills/research/SKILL.md +26 -0
- package/wispy/skills/twitter/SKILL.md +22 -0
- package/wispy/skills/voice/SKILL.md +21 -0
- package/wispy/skills/web3/SKILL.md +30 -0
package/README.md
CHANGED
|
@@ -1,193 +1,226 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
>
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/banner.png" alt="Wispy Banner" width="100%" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">Wispy</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Autonomous AI Agent Infrastructure — Think for Days, Pay for Services, Prove Identity On-Chain</strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/wispy-ai"><img src="https://img.shields.io/npm/v/wispy-ai?style=flat-square&color=31ccff" alt="npm version" /></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/wispy-ai"><img src="https://img.shields.io/npm/dm/wispy-ai?style=flat-square&color=31ccff" alt="npm downloads" /></a>
|
|
14
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License" /></a>
|
|
15
|
+
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen?style=flat-square" alt="Node.js" /></a>
|
|
16
|
+
<a href="https://www.typescriptlang.org"><img src="https://img.shields.io/badge/TypeScript-5.7-blue?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript" /></a>
|
|
17
|
+
<a href="https://github.com/brn-mwai/wispy"><img src="https://img.shields.io/github/stars/brn-mwai/wispy?style=flat-square&color=yellow" alt="GitHub Stars" /></a>
|
|
18
|
+
<a href="https://github.com/brn-mwai/wispy/issues"><img src="https://img.shields.io/github/issues/brn-mwai/wispy?style=flat-square" alt="Issues" /></a>
|
|
19
|
+
<a href="https://github.com/brn-mwai/wispy/actions"><img src="https://img.shields.io/github/actions/workflow/status/brn-mwai/wispy/ci.yml?style=flat-square&label=build" alt="Build" /></a>
|
|
20
|
+
<a href="https://wispy.cc"><img src="https://img.shields.io/badge/docs-wispy.cc-31ccff?style=flat-square" alt="Docs" /></a>
|
|
21
|
+
<a href="https://sepolia.basescan.org/address/0x158B236CC840FD3039a3Cf5D72AEfBF2550045C7"><img src="https://img.shields.io/badge/Base-Sepolia-blue?style=flat-square&logo=ethereum" alt="Base Sepolia" /></a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<p align="center">
|
|
25
|
+
<a href="https://wispy.cc">Website</a> ·
|
|
26
|
+
<a href="https://wispy.cc/developers">API Docs</a> ·
|
|
27
|
+
<a href="https://www.npmjs.com/package/wispy-ai">npm</a> ·
|
|
28
|
+
<a href="https://github.com/brn-mwai/wispy/issues">Issues</a> ·
|
|
29
|
+
<a href="#quickstart">Quickstart</a>
|
|
30
|
+
</p>
|
|
10
31
|
|
|
11
32
|
---
|
|
12
33
|
|
|
13
|
-
## What
|
|
34
|
+
## What is Wispy?
|
|
14
35
|
|
|
15
|
-
**Wispy
|
|
36
|
+
**Wispy is an autonomous AI agent platform** that goes beyond simple chatbots. It can run multi-day tasks independently, make payments for premium APIs, prove its identity on-chain, and communicate with other AI agents — all from a single CLI or API.
|
|
16
37
|
|
|
17
|
-
|
|
18
|
-
|----------|-----------------|
|
|
19
|
-
| **Gemini 2.5 Pro** | Multi-day reasoning with 24K token thinking budget |
|
|
20
|
-
| **x402 Payments** | Automatic USDC payments for premium APIs |
|
|
21
|
-
| **ERC-8004 Identity** | On-chain verifiable agent registration |
|
|
22
|
-
| **A2A Protocol** | Agent-to-agent discovery and communication |
|
|
38
|
+
Think of it as an AI engineer that can:
|
|
23
39
|
|
|
24
|
-
|
|
40
|
+
- **Plan and execute complex projects** over hours or days (Marathon Mode)
|
|
41
|
+
- **Pay for services** automatically using USDC via the x402 protocol
|
|
42
|
+
- **Verify its identity** on-chain with ERC-8004 registrations
|
|
43
|
+
- **Talk to other agents** using Google's A2A protocol
|
|
44
|
+
- **Operate across channels** — CLI, Telegram, WhatsApp, REST API, WebSocket
|
|
45
|
+
|
|
46
|
+
Wispy is powered by **Google Gemini 2.5 Pro** with configurable thinking budgets up to 24K tokens, giving it deep reasoning capabilities for complex multi-step tasks.
|
|
25
47
|
|
|
26
48
|
---
|
|
27
49
|
|
|
28
|
-
##
|
|
50
|
+
## Quickstart
|
|
29
51
|
|
|
30
|
-
|
|
31
|
-
- Agent Registry: [`0x158B236CC840FD3039a3Cf5D72AEfBF2550045C7`](https://sepolia.basescan.org/address/0x158B236CC840FD3039a3Cf5D72AEfBF2550045C7)
|
|
52
|
+
### Install
|
|
32
53
|
|
|
33
|
-
**Try It:**
|
|
34
54
|
```bash
|
|
35
|
-
npm
|
|
36
|
-
wispy setup
|
|
37
|
-
wispy agent "Research the DePIN market and produce a report"
|
|
55
|
+
npm install -g wispy-ai
|
|
38
56
|
```
|
|
39
57
|
|
|
40
|
-
|
|
58
|
+
<details>
|
|
59
|
+
<summary><strong>Other installation methods</strong></summary>
|
|
41
60
|
|
|
42
|
-
|
|
61
|
+
**pnpm:**
|
|
62
|
+
```bash
|
|
63
|
+
pnpm add -g wispy-ai
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Homebrew (macOS/Linux):**
|
|
67
|
+
```bash
|
|
68
|
+
brew tap brn-mwai/wispy && brew install wispy
|
|
69
|
+
```
|
|
43
70
|
|
|
71
|
+
**Shell script (macOS/Linux):**
|
|
72
|
+
```bash
|
|
73
|
+
curl -fsSL https://wispy.cc/install.sh | bash
|
|
44
74
|
```
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
50
|
-
│ │ Gemini │ │ x402 │ │ ERC-8004 │ │
|
|
51
|
-
│ │ 2.5 Pro │ │ Payments │ │ Identity │ │
|
|
52
|
-
│ │ + Thinking │ │ (USDC/Base) │ │ (On-Chain) │ │
|
|
53
|
-
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
|
|
54
|
-
│ │ │ │ │
|
|
55
|
-
│ └───────────────────┼───────────────────┘ │
|
|
56
|
-
│ │ │
|
|
57
|
-
│ ┌────────▼────────┐ │
|
|
58
|
-
│ │ MARATHON AGENT │ │
|
|
59
|
-
│ │ Multi-Day │ │
|
|
60
|
-
│ │ Autonomous │ │
|
|
61
|
-
│ │ Execution │ │
|
|
62
|
-
│ └────────┬────────┘ │
|
|
63
|
-
│ │ │
|
|
64
|
-
│ ┌───────────────────┼───────────────────┐ │
|
|
65
|
-
│ │ │ │ │
|
|
66
|
-
│ ┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐ │
|
|
67
|
-
│ │ A2A │ │ Trust │ │ Tools │ │
|
|
68
|
-
│ │ Protocol │ │ Controller │ │ (27+) │ │
|
|
69
|
-
│ │ (Google) │ │ (Approvals) │ │ │ │
|
|
70
|
-
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
71
|
-
│ │
|
|
72
|
-
│ Channels: Telegram | WhatsApp | Discord | Slack | REST | WebSocket │
|
|
73
|
-
│ │
|
|
74
|
-
└─────────────────────────────────────────────────────────────────────────────┘
|
|
75
|
+
|
|
76
|
+
**PowerShell (Windows):**
|
|
77
|
+
```powershell
|
|
78
|
+
irm https://wispy.cc/install.ps1 | iex
|
|
75
79
|
```
|
|
76
80
|
|
|
77
|
-
|
|
81
|
+
**CMD (Windows):**
|
|
82
|
+
```cmd
|
|
83
|
+
curl -o install.bat https://wispy.cc/install.bat && install.bat
|
|
84
|
+
```
|
|
78
85
|
|
|
79
|
-
|
|
86
|
+
</details>
|
|
80
87
|
|
|
81
|
-
###
|
|
88
|
+
### Setup
|
|
82
89
|
|
|
83
90
|
```bash
|
|
84
|
-
wispy
|
|
91
|
+
wispy setup
|
|
85
92
|
```
|
|
86
93
|
|
|
87
|
-
|
|
88
|
-
- **Milestone Execution**: Autonomous step-by-step completion
|
|
89
|
-
- **Self-Recovery**: Fails? It analyzes and tries a different approach
|
|
90
|
-
- **Checkpointing**: Pause anytime, resume where you left off
|
|
91
|
-
- **Real-time Updates**: Telegram/WhatsApp notifications on progress
|
|
94
|
+
This interactive wizard will configure your AI credentials (Gemini API key or Vertex AI), channels, and optional blockchain integrations.
|
|
92
95
|
|
|
93
|
-
###
|
|
96
|
+
### Run
|
|
94
97
|
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
```bash
|
|
99
|
+
# Interactive chat
|
|
100
|
+
wispy chat
|
|
101
|
+
|
|
102
|
+
# Start the full gateway (API + channels + A2A)
|
|
103
|
+
wispy gateway
|
|
98
104
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
// 2. Requests Trust Controller approval
|
|
102
|
-
// 3. Pays with USDC on Base
|
|
103
|
-
// 4. Continues execution
|
|
105
|
+
# Run a marathon (multi-day autonomous task)
|
|
106
|
+
wispy marathon "Build a full-stack SaaS dashboard with Next.js"
|
|
104
107
|
|
|
105
|
-
|
|
108
|
+
# Execute a single agent task
|
|
109
|
+
wispy agent "Research the DePIN market and produce a detailed report"
|
|
106
110
|
```
|
|
107
111
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
|
|
119
|
-
"name": "Wispy Agent",
|
|
120
|
-
"x402Support": true,
|
|
121
|
-
"registrations": [{
|
|
122
|
-
"agentId": "1",
|
|
123
|
-
"agentRegistry": "0x158B236CC840FD3039a3Cf5D72AEfBF2550045C7"
|
|
124
|
-
}],
|
|
125
|
-
"supportedTrust": ["reputation"]
|
|
126
|
-
}
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Features
|
|
115
|
+
|
|
116
|
+
### Marathon Mode — Multi-Day Autonomous Execution
|
|
117
|
+
|
|
118
|
+
Wispy's Marathon Mode plans complex tasks into milestones, then executes them autonomously over hours or days. It checkpoints progress, self-recovers from failures, and sends real-time updates via Telegram or WhatsApp.
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
wispy marathon "Build and deploy a REST API with auth, tests, and docs"
|
|
127
122
|
```
|
|
128
123
|
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
-
|
|
132
|
-
-
|
|
124
|
+
- Deep planning with Gemini 2.5 Pro (up to 24K token thinking budget)
|
|
125
|
+
- Autonomous milestone-by-milestone execution
|
|
126
|
+
- Self-recovery — analyzes failures and retries with different approaches
|
|
127
|
+
- Checkpointing — pause anytime, resume exactly where you left off
|
|
128
|
+
- Real-time notifications on progress via Telegram/WhatsApp
|
|
133
129
|
|
|
134
|
-
###
|
|
130
|
+
### x402 Payments — Agents That Pay for Services
|
|
135
131
|
|
|
136
|
-
|
|
137
|
-
// Discover another agent
|
|
138
|
-
const card = await a2a.discover("https://other-agent.com");
|
|
132
|
+
Wispy handles HTTP 402 Payment Required responses automatically. When it encounters a premium API, it checks spending limits, requests approval through the Trust Controller, and pays with USDC on Base.
|
|
139
133
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
});
|
|
134
|
+
- Automatic HTTP 402 handling with USDC on Base network
|
|
135
|
+
- Configurable spending limits per task
|
|
136
|
+
- Trust Controller approval workflows
|
|
137
|
+
- Full transaction logging and audit trail
|
|
145
138
|
|
|
146
|
-
|
|
147
|
-
const result = await task.waitForCompletion();
|
|
148
|
-
```
|
|
139
|
+
### ERC-8004 Identity — Verifiable Agent Registration
|
|
149
140
|
|
|
150
|
-
-
|
|
151
|
-
- Agent card discovery
|
|
152
|
-
- Task delegation
|
|
153
|
-
- Secure message signing
|
|
141
|
+
Register your agent on-chain using the ERC-8004 standard. This gives Wispy a verifiable, decentralized identity that other agents and services can trust.
|
|
154
142
|
|
|
155
|
-
|
|
143
|
+
- On-chain registration on Base Sepolia
|
|
144
|
+
- Reputation tracking system
|
|
145
|
+
- Serves `/.well-known/agent.json` for discovery
|
|
146
|
+
- Validation framework for trust verification
|
|
156
147
|
|
|
157
|
-
|
|
148
|
+
### A2A Protocol — Agent-to-Agent Communication
|
|
158
149
|
|
|
159
|
-
|
|
150
|
+
Wispy implements Google's Agent-to-Agent protocol for discovering, delegating tasks to, and receiving results from other AI agents.
|
|
160
151
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
152
|
+
- Agent card publishing and discovery
|
|
153
|
+
- Task delegation with structured messaging
|
|
154
|
+
- Secure Ed25519 message signing
|
|
155
|
+
- Compatible with the broader A2A ecosystem
|
|
164
156
|
|
|
165
|
-
###
|
|
157
|
+
### 27+ Built-in Tools
|
|
166
158
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
159
|
+
| Category | Tools |
|
|
160
|
+
|----------|-------|
|
|
161
|
+
| **Code** | File operations, shell execution, project scaffolding |
|
|
162
|
+
| **Web** | HTTP requests, web scraping, browser automation (Playwright) |
|
|
163
|
+
| **Data** | PDF/DOCX/Excel generation, CSV parsing, chart creation |
|
|
164
|
+
| **Media** | Image generation (Imagen 3), image editing, voice TTS |
|
|
165
|
+
| **Blockchain** | Wallet management, contract interaction, ENS resolution |
|
|
166
|
+
| **Memory** | Vector embeddings, semantic search, conversation history |
|
|
167
|
+
| **System** | Cron scheduling, reminders, MCP server integration |
|
|
170
168
|
|
|
171
|
-
|
|
172
|
-
1. Create Vertex AI configuration
|
|
173
|
-
2. Generate blockchain wallet
|
|
174
|
-
3. Configure x402 payments
|
|
175
|
-
4. Set up A2A protocol
|
|
169
|
+
### Multi-Channel Support
|
|
176
170
|
|
|
177
|
-
|
|
171
|
+
| Channel | Description |
|
|
172
|
+
|---------|-------------|
|
|
173
|
+
| **CLI** | Interactive REPL with rich formatting and voice mode |
|
|
174
|
+
| **Telegram** | Full bot with inline responses and thinking indicators |
|
|
175
|
+
| **WhatsApp** | Business API integration with media support |
|
|
176
|
+
| **REST API** | Public API with key management for third-party integrations |
|
|
177
|
+
| **WebSocket** | Real-time streaming for web applications |
|
|
178
|
+
| **A2A** | Agent-to-agent protocol server on port 4002 |
|
|
179
|
+
|
|
180
|
+
### Public REST API
|
|
181
|
+
|
|
182
|
+
Wispy exposes a full REST API so you can integrate it into your own products. Manage API keys, set scopes and rate limits, and interact with all Wispy features programmatically.
|
|
178
183
|
|
|
179
184
|
```bash
|
|
180
|
-
#
|
|
181
|
-
wispy chat
|
|
185
|
+
# Create an API key
|
|
186
|
+
wispy api create "My App" --scopes chat,marathon
|
|
182
187
|
|
|
183
|
-
#
|
|
184
|
-
|
|
188
|
+
# Use it
|
|
189
|
+
curl -H "Authorization: Bearer wsk_..." https://your-wispy-instance/api/v1/chat \
|
|
190
|
+
-d '{"message": "Hello"}'
|
|
191
|
+
```
|
|
185
192
|
|
|
186
|
-
|
|
187
|
-
wispy gateway
|
|
193
|
+
See the full API documentation at [wispy.cc/developers](https://wispy.cc/developers).
|
|
188
194
|
|
|
189
|
-
|
|
190
|
-
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Architecture
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
┌────────────────────────────────────────────────────────────────────┐
|
|
201
|
+
│ WISPY PLATFORM │
|
|
202
|
+
├────────────────────────────────────────────────────────────────────┤
|
|
203
|
+
│ │
|
|
204
|
+
│ Channels Core Engine Protocols │
|
|
205
|
+
│ ┌──────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
206
|
+
│ │ CLI │ │ Gemini 2.5 │ │ x402 │ │
|
|
207
|
+
│ │ Telegram │────▶│ Pro Agent │────▶│ Payments │ │
|
|
208
|
+
│ │ WhatsApp │ │ + Marathon │ │ (USDC/Base) │ │
|
|
209
|
+
│ │ REST API │ │ Mode │ ├──────────────┤ │
|
|
210
|
+
│ │ WebSocket│ └──────┬───────┘ │ ERC-8004 │ │
|
|
211
|
+
│ └──────────┘ │ │ Identity │ │
|
|
212
|
+
│ │ ├──────────────┤ │
|
|
213
|
+
│ Services │ │ A2A Protocol │ │
|
|
214
|
+
│ ┌──────────┐ ┌──────▼───────┐ │ (Google) │ │
|
|
215
|
+
│ │ Memory │ │ 27+ Tools │ └──────────────┘ │
|
|
216
|
+
│ │ Cron │ │ + MCP │ │
|
|
217
|
+
│ │ Skills │ │ Servers │ Security │
|
|
218
|
+
│ │ Browser │ └──────────────┘ ┌──────────────┐ │
|
|
219
|
+
│ │ Voice │ │ Trust Ctrl │ │
|
|
220
|
+
│ └──────────┘ │ Device Auth │ │
|
|
221
|
+
│ │ Rate Limits │ │
|
|
222
|
+
│ └──────────────┘ │
|
|
223
|
+
└────────────────────────────────────────────────────────────────────┘
|
|
191
224
|
```
|
|
192
225
|
|
|
193
226
|
---
|
|
@@ -197,50 +230,27 @@ wispy agent "Research and summarize the latest AI papers"
|
|
|
197
230
|
### Option 1: Gemini API Key (Simplest)
|
|
198
231
|
|
|
199
232
|
```env
|
|
200
|
-
# .env or .env.local
|
|
201
233
|
GEMINI_API_KEY=your-api-key
|
|
202
234
|
```
|
|
203
235
|
|
|
204
|
-
Get your
|
|
236
|
+
Get your key at [Google AI Studio](https://aistudio.google.com/apikey).
|
|
205
237
|
|
|
206
|
-
### Option 2: Vertex AI (
|
|
238
|
+
### Option 2: Vertex AI (Production)
|
|
207
239
|
|
|
208
240
|
```env
|
|
209
|
-
# .env.local
|
|
210
241
|
GOOGLE_CLOUD_PROJECT=your-project-id
|
|
211
|
-
GOOGLE_CLOUD_LOCATION=us-central1
|
|
242
|
+
GOOGLE_CLOUD_LOCATION=us-central1
|
|
212
243
|
```
|
|
213
244
|
|
|
214
245
|
Then authenticate:
|
|
215
|
-
```bash
|
|
216
|
-
gcloud auth application-default login
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
Or use a service account:
|
|
220
|
-
```env
|
|
221
|
-
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
|
|
222
|
-
```
|
|
223
246
|
|
|
224
|
-
Enable Vertex AI in the CLI:
|
|
225
247
|
```bash
|
|
226
|
-
|
|
227
|
-
/vertex enable your-project-id
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### Payments & Channels
|
|
231
|
-
|
|
232
|
-
```env
|
|
233
|
-
# x402 Payments (Coinbase CDP)
|
|
234
|
-
CDP_API_KEY_ID=your-key-id
|
|
235
|
-
CDP_API_KEY_SECRET=your-key-secret
|
|
236
|
-
|
|
237
|
-
# Optional: Channels
|
|
238
|
-
TELEGRAM_BOT_TOKEN=your-token
|
|
248
|
+
gcloud auth application-default login
|
|
239
249
|
```
|
|
240
250
|
|
|
241
251
|
### Full Configuration
|
|
242
252
|
|
|
243
|
-
|
|
253
|
+
Wispy uses `~/.wispy/config.yaml`:
|
|
244
254
|
|
|
245
255
|
```yaml
|
|
246
256
|
agent:
|
|
@@ -248,8 +258,6 @@ agent:
|
|
|
248
258
|
id: wispy-agent-001
|
|
249
259
|
|
|
250
260
|
gemini:
|
|
251
|
-
# Option 1: API Key (set GEMINI_API_KEY env var)
|
|
252
|
-
# Option 2: Vertex AI
|
|
253
261
|
vertexai:
|
|
254
262
|
enabled: true
|
|
255
263
|
project: your-gcp-project
|
|
@@ -261,160 +269,167 @@ gemini:
|
|
|
261
269
|
embedding: text-embedding-004
|
|
262
270
|
|
|
263
271
|
marathon:
|
|
264
|
-
thinkingLevel: ultra
|
|
265
|
-
checkpointInterval: 5
|
|
266
|
-
|
|
267
|
-
x402:
|
|
268
|
-
enabled: true
|
|
269
|
-
maxSpendPerTask: 10.00 # USDC
|
|
270
|
-
requireApproval: true
|
|
271
|
-
|
|
272
|
-
erc8004:
|
|
273
|
-
network: base-sepolia
|
|
274
|
-
autoRegister: true
|
|
272
|
+
thinkingLevel: ultra # Thinking budget: low | medium | high | ultra
|
|
273
|
+
checkpointInterval: 5
|
|
275
274
|
|
|
276
|
-
|
|
275
|
+
wallet:
|
|
277
276
|
enabled: true
|
|
278
|
-
|
|
277
|
+
chain: base-sepolia
|
|
279
278
|
|
|
280
279
|
channels:
|
|
281
280
|
telegram:
|
|
282
281
|
enabled: true
|
|
282
|
+
whatsapp:
|
|
283
|
+
enabled: true
|
|
283
284
|
rest:
|
|
284
285
|
enabled: true
|
|
285
|
-
port:
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
---
|
|
286
|
+
port: 4001
|
|
287
|
+
web:
|
|
288
|
+
port: 4000
|
|
289
289
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
290
|
+
security:
|
|
291
|
+
autonomousMode: false # Auto-approve file/code operations
|
|
292
|
+
actionGuard:
|
|
293
|
+
enabled: true
|
|
293
294
|
|
|
294
|
-
|
|
295
|
+
memory:
|
|
296
|
+
heartbeatIntervalMinutes: 30
|
|
297
|
+
```
|
|
295
298
|
|
|
296
|
-
|
|
297
|
-
- Thought continuity across sessions
|
|
298
|
-
- Self-verification and recovery
|
|
299
|
-
- Real-time monitoring dashboard
|
|
299
|
+
---
|
|
300
300
|
|
|
301
|
-
|
|
301
|
+
## Security
|
|
302
302
|
|
|
303
|
-
|
|
303
|
+
Wispy is built with security as a first-class concern:
|
|
304
304
|
|
|
305
|
-
-
|
|
306
|
-
-
|
|
307
|
-
-
|
|
308
|
-
-
|
|
305
|
+
- **Device Identity** — Ed25519 keypair generated per device for authentication
|
|
306
|
+
- **Encrypted Storage** — AES-256-GCM encryption for credentials and sensitive data
|
|
307
|
+
- **Trust Controller** — Approval workflows for sensitive operations (file writes, payments, shell commands)
|
|
308
|
+
- **Action Guard** — Configurable rules for what the agent can and cannot do autonomously
|
|
309
|
+
- **API Key System** — Scoped keys with rate limiting, expiry, and usage tracking
|
|
310
|
+
- **Secret Scanner** — Automatic detection and redaction of API keys in outputs
|
|
311
|
+
- **Loop Detection** — Prevents infinite tool execution loops
|
|
312
|
+
- **Session Isolation** — Separate contexts for different users and channels
|
|
309
313
|
|
|
310
|
-
|
|
314
|
+
---
|
|
311
315
|
|
|
312
|
-
|
|
316
|
+
## CLI Reference
|
|
313
317
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
+
```
|
|
319
|
+
wispy chat Interactive chat session
|
|
320
|
+
wispy gateway Start full gateway (API + channels + A2A)
|
|
321
|
+
wispy marathon <goal> Start autonomous multi-day task execution
|
|
322
|
+
wispy agent <task> Execute a single agent task
|
|
323
|
+
wispy setup Interactive configuration wizard
|
|
324
|
+
wispy doctor Diagnose configuration issues
|
|
325
|
+
wispy skill <name> Run a specific skill
|
|
326
|
+
wispy api create Create an API key
|
|
327
|
+
wispy api list List API keys
|
|
328
|
+
wispy api revoke <id> Revoke an API key
|
|
329
|
+
wispy voice Enter voice mode
|
|
330
|
+
wispy history View conversation history
|
|
331
|
+
```
|
|
318
332
|
|
|
319
333
|
---
|
|
320
334
|
|
|
321
335
|
## Technical Specs
|
|
322
336
|
|
|
323
|
-
| Component |
|
|
324
|
-
|
|
325
|
-
| AI
|
|
326
|
-
| Thinking Budget | 128
|
|
327
|
-
|
|
|
328
|
-
|
|
|
329
|
-
|
|
|
330
|
-
|
|
|
331
|
-
|
|
|
337
|
+
| Component | Details |
|
|
338
|
+
|-----------|---------|
|
|
339
|
+
| **AI Engine** | Google Gemini 2.5 Pro / Flash via Vertex AI or API key |
|
|
340
|
+
| **Thinking Budget** | 128 — 24,576 tokens (configurable) |
|
|
341
|
+
| **Runtime** | Node.js 20+, TypeScript 5.7, ESM |
|
|
342
|
+
| **Blockchain** | Base Sepolia (chainId: 84532) |
|
|
343
|
+
| **Payments** | USDC via x402 protocol (Coinbase CDP) |
|
|
344
|
+
| **Identity** | ERC-8004 on-chain agent registration |
|
|
345
|
+
| **Agent Comms** | A2A Protocol (Google) |
|
|
346
|
+
| **Tools** | 27+ built-in + MCP server support |
|
|
347
|
+
| **Channels** | CLI, Telegram, WhatsApp, REST API, WebSocket, A2A |
|
|
348
|
+
| **Memory** | SQLite + vector embeddings (text-embedding-004) |
|
|
349
|
+
| **Browser** | Playwright-based headless automation |
|
|
332
350
|
|
|
333
351
|
---
|
|
334
352
|
|
|
335
|
-
## API
|
|
353
|
+
## API Usage
|
|
336
354
|
|
|
337
|
-
###
|
|
355
|
+
### Chat
|
|
338
356
|
|
|
339
357
|
```typescript
|
|
340
|
-
import {
|
|
358
|
+
import { Agent } from 'wispy-ai';
|
|
341
359
|
|
|
342
|
-
const
|
|
343
|
-
goal: "Build a SaaS landing page",
|
|
344
|
-
thinkingLevel: "ultra",
|
|
345
|
-
checkpointDir: "./.wispy/checkpoints"
|
|
346
|
-
});
|
|
360
|
+
const agent = new Agent({ config, runtimeDir, soulDir });
|
|
347
361
|
|
|
348
|
-
|
|
349
|
-
|
|
362
|
+
for await (const chunk of agent.chatStream("Build a landing page", "user-1", "api")) {
|
|
363
|
+
process.stdout.write(chunk.content);
|
|
364
|
+
}
|
|
350
365
|
```
|
|
351
366
|
|
|
352
|
-
###
|
|
367
|
+
### Marathon
|
|
353
368
|
|
|
354
369
|
```typescript
|
|
355
|
-
|
|
370
|
+
const marathon = agent.startMarathon("Build a full-stack app with auth and tests");
|
|
356
371
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
maxPayment: "1.00", // USDC
|
|
360
|
-
trustController: myController
|
|
361
|
-
});
|
|
372
|
+
marathon.on('milestone', (m) => console.log(`Completed: ${m.name}`));
|
|
373
|
+
marathon.on('complete', (result) => console.log('Done!', result));
|
|
362
374
|
```
|
|
363
375
|
|
|
364
|
-
###
|
|
365
|
-
|
|
366
|
-
```typescript
|
|
367
|
-
import { ERC8004Client } from 'wispy-ai';
|
|
376
|
+
### REST API
|
|
368
377
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
378
|
+
```bash
|
|
379
|
+
# Create API key
|
|
380
|
+
wispy api create "My Integration" --scopes chat,chat:stream,marathon
|
|
381
|
+
|
|
382
|
+
# Chat
|
|
383
|
+
curl -X POST https://localhost:4001/api/v1/chat \
|
|
384
|
+
-H "Authorization: Bearer wsk_..." \
|
|
385
|
+
-H "Content-Type: application/json" \
|
|
386
|
+
-d '{"message": "Hello, Wispy"}'
|
|
387
|
+
|
|
388
|
+
# Stream (SSE)
|
|
389
|
+
curl -N https://localhost:4001/api/v1/chat/stream \
|
|
390
|
+
-H "Authorization: Bearer wsk_..." \
|
|
391
|
+
-H "Content-Type: application/json" \
|
|
392
|
+
-d '{"message": "Explain quantum computing"}'
|
|
372
393
|
```
|
|
373
394
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
```typescript
|
|
377
|
-
import { A2AClient, createAgentCard } from 'wispy-ai';
|
|
378
|
-
|
|
379
|
-
// Create your agent card
|
|
380
|
-
const myCard = createAgentCard({
|
|
381
|
-
name: "My Agent",
|
|
382
|
-
skills: [{ id: "research", name: "Research" }]
|
|
383
|
-
});
|
|
384
|
-
|
|
385
|
-
// Discover and interact with other agents
|
|
386
|
-
const client = new A2AClient("https://other-agent.com");
|
|
387
|
-
const theirCard = await client.discover();
|
|
388
|
-
const result = await client.sendTask({ message: "Help me research..." });
|
|
389
|
-
```
|
|
395
|
+
Full API docs: [wispy.cc/developers](https://wispy.cc/developers)
|
|
390
396
|
|
|
391
397
|
---
|
|
392
398
|
|
|
393
|
-
##
|
|
399
|
+
## Deployed Contracts
|
|
394
400
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
- **Trust Controller**: Approval workflows for sensitive actions
|
|
399
|
-
- **Rate Limiting**: Prevent abuse
|
|
400
|
-
- **Loop Detection**: Prevents infinite action loops
|
|
401
|
+
| Contract | Address | Network |
|
|
402
|
+
|----------|---------|---------|
|
|
403
|
+
| Agent Registry | [`0x158B236CC840FD3039a3Cf5D72AEfBF2550045C7`](https://sepolia.basescan.org/address/0x158B236CC840FD3039a3Cf5D72AEfBF2550045C7) | Base Sepolia |
|
|
401
404
|
|
|
402
405
|
---
|
|
403
406
|
|
|
404
|
-
##
|
|
407
|
+
## Contributing
|
|
408
|
+
|
|
409
|
+
Contributions are welcome! Please open an issue or pull request on [GitHub](https://github.com/brn-mwai/wispy).
|
|
405
410
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
411
|
+
```bash
|
|
412
|
+
git clone https://github.com/brn-mwai/wispy.git
|
|
413
|
+
cd wispy
|
|
414
|
+
npm install
|
|
415
|
+
npm run build
|
|
416
|
+
npm run dev
|
|
417
|
+
```
|
|
409
418
|
|
|
410
419
|
---
|
|
411
420
|
|
|
412
421
|
## License
|
|
413
422
|
|
|
414
|
-
MIT
|
|
423
|
+
[MIT](LICENSE)
|
|
415
424
|
|
|
416
425
|
---
|
|
417
426
|
|
|
418
|
-
|
|
427
|
+
<p align="center">
|
|
428
|
+
<strong>Wispy</strong> is built by <a href="https://hausorlabs.com">Hausor Labs Team (HL Team)</a>
|
|
429
|
+
</p>
|
|
419
430
|
|
|
420
|
-
|
|
431
|
+
<p align="center">
|
|
432
|
+
<a href="https://wispy.cc">wispy.cc</a> ·
|
|
433
|
+
<a href="https://www.npmjs.com/package/wispy-ai">npm</a> ·
|
|
434
|
+
<a href="https://github.com/brn-mwai/wispy">GitHub</a>
|
|
435
|
+
</p>
|