vestauth 0.22.0 → 0.22.1

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/CHANGELOG.md CHANGED
@@ -2,7 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
- [Unreleased](https://github.com/vestauth/vestauth/compare/v0.22.0...main)
5
+ [Unreleased](https://github.com/vestauth/vestauth/compare/v0.22.1...main)
6
+
7
+ ## [0.22.1](https://github.com/vestauth/vestauth/compare/v0.22.0...v0.22.1) (2026-03-02)
8
+
9
+ ### Changed
10
+
11
+ * `vestauth server start` should use `POST /whoami`
6
12
 
7
13
  ## [0.22.0](https://github.com/vestauth/vestauth/compare/v0.21.1...v0.22.0) (2026-03-02)
8
14
 
package/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
  *web-bot-auth for agents*–from the creator of [`dotenv`](https://github.com/motdotla/dotenv) and [`dotenvx`](https://github.com/dotenvx/dotenvx).
4
4
 
5
5
  * identity ([web-bot-auth](https://datatracker.ietf.org/doc/html/draft-meunier-web-bot-auth-architecture))
6
- * authentication
7
6
  * tools!
7
+ * authentication
8
8
 
9
9
  <a target="_blank" href="https://chat.openai.com/?q=Read%20https%3A%2F%2Fgithub.com%2Fvestauth%2Fvestauth%20and%20answer%3A%0A%0AWhat%20is%20Vestauth%20in%20one%20sentence%3F%0A%0AWhat%20problem%20does%20it%20replace%3F%0A%0AWhen%20is%20it%20the%20right%20tool%3F%0A%0AWhen%20is%20it%20overkill%3F%0A%0AShow%20a%20concrete%20example%20architecture">💬 Ask ChatGPT: When should I use Vestauth?</a>
10
10
 
@@ -94,66 +94,21 @@ AGENT_PRIVATE_JWK="{"crv":"Ed25519","d":"Z9vbwN-3eiFMVv_TPWXOxqSMJAT21kZvejWi72y
94
94
 
95
95
  &nbsp;
96
96
 
97
- ## Authentication
98
-
99
- > Authenticate agents – `vestauth.tool.verify`…
100
-
101
- ```js
102
- ...
103
- const vestauth = require('vestauth')
104
-
105
- app.get('/whoami', async (req, res) => {
106
- try {
107
- const url = `${req.protocol}://${req.get('host')}${req.originalUrl}`
108
- const agent = await vestauth.tool.verify(req.method, url, req.headers)
109
-
110
- res.json(agent)
111
- } catch (err) {
112
- res.status(401).json({ code: 401, error: { message: err.message }})
113
- }
114
- })
115
- ...
116
- ```
117
-
118
- > …the agents sign HTTP requests with a drop-in curl wrapper.
119
-
120
- ```sh
121
- > SIGNED - 200
122
- $ vestauth agent curl https://api.vestauth.com/whoami
123
- {"uid":"agent-4b94ccd425e939fac5016b6b",...}
124
- ```
125
-
126
- <details><summary>learn more</summary><br>
127
-
128
- `vestauth agent curl` autosigns `curl` requests – injecting valid signed headers according to the [web-bot-auth draft](https://datatracker.ietf.org/doc/html/draft-meunier-web-bot-auth-architecture). You can peek these with the built-in `headers` primitive.
129
-
130
- ```sh
131
- $ vestauth primitives headers GET https://api.vestauth.com/whoami --pp
132
- {
133
- "Signature": "sig1=:d4Id5SXhUExsf1XyruD8eBmlDtWzt/vezoCS+SKf0M8CxSkhKBtdHH7KkYyMN6E0hmxmNHsYus11u32nhvpWBQ==:",
134
- "Signature-Input": "sig1=(\"@authority\");created=1770247189;keyid=\"B0u80Gw28W9U2Jl5t_EBiWeBajO2104kOYZ9Ikucl5I\";alg=\"ed25519\";expires=1770247489;nonce=\"NURxn28X7zyKJ9k5bHxuOyO5qdvF9L5s2qHmhTrGUzbwGSIoUCHmwSlwiiCRgTDGuum83yyWMHJU4jmrVI_XPg\";tag=\"web-bot-auth\"",
135
- "Signature-Agent": "sig1=agent-4b94ccd425e939fac5016b6b.api.vestauth.com"
136
- }
137
- ```
138
-
139
- </details>
140
-
141
- &nbsp;
142
-
143
97
  ## Tools
144
98
 
145
99
  > Call tools!
146
100
 
147
101
  ```sh
148
- $ vestauth agent curl https://sfs.vestauth.com/write -d '{"filepath":"/hello.md", "content":"hello"}'
149
- $ vestauth agent curl https://sfs.vestauth.com/list
102
+ vestauth agent curl https://sfs.vestauth.com/write -d '{"filepath":"/hello.md", "content":"hello"}'
103
+ vestauth agent curl https://sfs.vestauth.com/list
150
104
  ```
151
105
 
152
- #### First Party Tools
106
+ #### First Party
153
107
 
154
108
  <details><summary>`SFS` Simple File System</summary><br/>
155
109
 
156
110
  > SFS is a simple file system for vestauth agents.
111
+ >
157
112
  > [sfs.vestauth.com](https://sfs.vestauth.com)
158
113
 
159
114
  ```sh
@@ -173,10 +128,11 @@ vestauth agent curl https://sfs.vestauth.com/read -d '{"filepath":"/hello.md"}'
173
128
  &nbsp;
174
129
 
175
130
  </details>
176
- <details><summary>`Ping` ping.vestauth.com</summary><br/>
131
+ <details><summary>`GEO` geo.vestauth.com</summary><br/>
177
132
 
178
- > Ping is a demonstration of vestauth.
179
- > [ping.vestauth.com](https://ping.vestauth.com)
133
+ > GEO returns the current geo-coordinates of a vestauth agent.
134
+ >
135
+ > [geo.vestauth.com](https://geo.vestauth.com)
180
136
 
181
137
  ```sh
182
138
  # make a ping
@@ -187,11 +143,12 @@ vestauth agent curl https://ping.vestauth.com/ping
187
143
 
188
144
  </details>
189
145
 
190
- #### Third Party Tools
146
+ #### Third Party
191
147
 
192
148
  <details><summary>`AS2` Agentic Secret Storage</summary><br/>
193
149
 
194
150
  > AS2 is a simple, agent-friendly secret storage.
151
+ >
195
152
  > [as2.dotenvx.com](https://as2.dotenvx.com)
196
153
 
197
154
  ```sh
@@ -214,15 +171,15 @@ vestauth agent curl "https://as2.dotenvx.com/get?key=KEY,TWILIO"
214
171
  <details><summary>`Docle` Check if email address is real</summary><br>
215
172
 
216
173
  > Check if an email address is real before you hit send. Verifies syntax, DNS, MX records, SMTP mailbox existence, and cross-references multiple providers. All in real time, no signup required.
217
- >
218
- > [learn more](https://github.com/treadiehq/docle)
174
+ >
175
+ > [github.com/treadiehq/docle](https://github.com/treadiehq/docle)
219
176
 
220
177
  ```sh
221
178
  # verify an email
222
179
  vestauth agent curl https://docle.co/api/verify -d '{"emails":["test@example.com"]}'
223
180
 
224
181
  # check your usage
225
- vestauth agent curl https://docle.co/api/agent/usage -X GET
182
+ vestauth agent curl https://docle.co/api/agent/usage
226
183
  ```
227
184
 
228
185
  &nbsp;
@@ -238,12 +195,60 @@ vestauth agent curl https://docle.co/api/agent/usage -X GET
238
195
  * Human-in-the-loop - coming
239
196
  * Rotate NPM Tokens - coming
240
197
  * Rotate GitHub Tokens - coming
241
- * Working on a tool? Tell us and wel'll list it.
198
+ * Working on a tool? Tell us and we'll list it.
242
199
 
243
200
  </details>
244
201
 
245
202
  &nbsp;
246
203
 
204
+ ## Authentication
205
+
206
+ > Build your own tools. Authenticate them with a single line of code – `vestauth.tool.verify`…
207
+
208
+ ```js
209
+ ...
210
+ const vestauth = require('vestauth')
211
+
212
+ app.post('/whoami', async (req, res) => {
213
+ try {
214
+ const url = `${req.protocol}://${req.get('host')}${req.originalUrl}`
215
+ const agent = await vestauth.tool.verify(req.method, url, req.headers)
216
+
217
+ res.json(agent)
218
+ } catch (err) {
219
+ res.status(401).json({ code: 401, error: { message: err.message }})
220
+ }
221
+ })
222
+ ...
223
+ ```
224
+
225
+ > …the agents sign HTTP requests with a drop-in curl wrapper.
226
+
227
+ ```sh
228
+ > SIGNED - 200
229
+ $ vestauth agent curl https://api.vestauth.com/whoami
230
+ {"uid":"agent-4b94ccd425e939fac5016b6b",...}
231
+ ```
232
+
233
+ <details><summary>learn more</summary><br>
234
+
235
+ `vestauth agent curl` autosigns `curl` requests – injecting valid signed headers according to the [web-bot-auth draft](https://datatracker.ietf.org/doc/html/draft-meunier-web-bot-auth-architecture). You can peek these with the built-in `headers` primitive.
236
+
237
+ ```sh
238
+ $ vestauth primitives headers GET https://api.vestauth.com/whoami --pp
239
+ {
240
+ "Signature": "sig1=:d4Id5SXhUExsf1XyruD8eBmlDtWzt/vezoCS+SKf0M8CxSkhKBtdHH7KkYyMN6E0hmxmNHsYus11u32nhvpWBQ==:",
241
+ "Signature-Input": "sig1=(\"@authority\");created=1770247189;keyid=\"B0u80Gw28W9U2Jl5t_EBiWeBajO2104kOYZ9Ikucl5I\";alg=\"ed25519\";expires=1770247489;nonce=\"NURxn28X7zyKJ9k5bHxuOyO5qdvF9L5s2qHmhTrGUzbwGSIoUCHmwSlwiiCRgTDGuum83yyWMHJU4jmrVI_XPg\";tag=\"web-bot-auth\"",
242
+ "Signature-Agent": "sig1=agent-4b94ccd425e939fac5016b6b.api.vestauth.com"
243
+ }
244
+ ```
245
+
246
+ </details>
247
+
248
+ Vestauth handles usage, payments, and spam protection for your tool!
249
+
250
+ &nbsp;
251
+
247
252
  ## Self-hosting
248
253
 
249
254
  > Run your own Vestauth server.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vestauth",
3
- "version": "0.22.0",
3
+ "version": "0.22.1",
4
4
  "description": "web-bot-auth for agents–from the creator of dotenvx",
5
5
  "keywords": [
6
6
  "vestauth",
@@ -105,7 +105,7 @@ app.get('/.well-known/http-message-signatures-directory', async (req, res) => {
105
105
  return res.json({ keys })
106
106
  })
107
107
 
108
- app.get('/whoami', async (req, res) => {
108
+ app.post('/whoami', async (req, res) => {
109
109
  try {
110
110
  const url = `${req.protocol}://${req.get('host')}${req.originalUrl}`
111
111
  const attrs = {