@muretai/agent-entry 1.6.2 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -114,7 +114,7 @@ answers questions and hands off nothing, is a signed claim you cannot keep.
|
|
|
114
114
|
| `domains` | none | the domains this entry speaks for (see below) |
|
|
115
115
|
| `basePath` | from `baseUrl` | the path this entry answers at, derived rather than set beside it |
|
|
116
116
|
| `wbaVerifiers` | none | a JWKS document (`{"keys":[…]}`) of Ed25519 keys whose holders this entry should **recognise** on inbound signed requests (Web Bot Auth / RFC 9421 — see *Who is knocking*). Recognition only adds `env.wba_did` and a visit count; it never changes a verdict |
|
|
117
|
-
| `observer` | none | called once per message with the same envelope your responder gets, **after** the verdict — for counting, logging, analytics. It cannot matter: its return is discarded, a throw is swallowed, a promise is never awaited, so a slow or broken watcher cannot delay or change one byte of the signed reply. See [Counting visits](#counting-visits-without-handing-over-
|
|
117
|
+
| `observer` | none | called once per message with the same envelope your responder gets, **after** the verdict — for counting, logging, analytics. It cannot matter: its return is discarded, a throw is swallowed, a promise is never awaited, so a slow or broken watcher cannot delay or change one byte of the signed reply. See [Counting visits](#counting-visits-without-handing-over-your-customer-list) |
|
|
118
118
|
| `howToUrl` | none | a page a keyless visitor is pointed at as a worked example. **Empty means omitted** — the refusal already teaches the whole recipe without it, and a reference implementation must not stamp somebody else's docs host into every door built from it. Only set it to a URL you operate, and only after checking it resolves |
|
|
119
119
|
| `name`, `description`, `version` | — | the card's own words. `description` is the line a person reads in a directory listing — and the right place to say what you record about visitors, since it is fetched **before** the knock |
|
|
120
120
|
|
|
@@ -534,8 +534,8 @@ and it is not one. It is the upgrade path:
|
|
|
534
534
|
ledger back to gate, greet or rate-limit, so a fire-and-forget sink records visiting
|
|
535
535
|
agents with no database anywhere. Use `observer` for it, never your responder: watching
|
|
536
536
|
a visit should not be an edit to the code that decides what to say. See
|
|
537
|
-
[Counting visits](#counting-visits-without-handing-over-
|
|
538
|
-
whole pattern, including the one rule that shapes it — **a DID is not a
|
|
537
|
+
[Counting visits](#counting-visits-without-handing-over-your-customer-list) below for the
|
|
538
|
+
whole pattern, including the one rule that shapes it — **a DID is not a cookie**,
|
|
539
539
|
so what leaves your box is a salted digest, never the identifier itself. A sink cannot
|
|
540
540
|
be read back during a request: it counts customers, it cannot recognise one. It
|
|
541
541
|
replaces a log line, not the store above — none of the recommended features stand
|
|
@@ -565,7 +565,7 @@ What the entry now handles for you at the HTTP layer, so you do not have to:
|
|
|
565
565
|
which says a server must accept the absolute form: this endpoint answers exactly the
|
|
566
566
|
address its card names, and the refusal says so.
|
|
567
567
|
|
|
568
|
-
## Counting visits without handing over
|
|
568
|
+
## Counting visits without handing over your customer list
|
|
569
569
|
|
|
570
570
|
You will want to know how many agents knocked, how many came back, and what they asked. All
|
|
571
571
|
three are answerable — and how you answer them decides whether you are counting your visitors
|
|
@@ -576,11 +576,18 @@ envelope, after the verdict, so watching a visit stops being an edit to the code
|
|
|
576
576
|
what to say. It cannot matter: its return is discarded, a throw is swallowed, a promise is
|
|
577
577
|
never awaited — a slow or broken watcher cannot delay or change one byte of the signed reply.
|
|
578
578
|
|
|
579
|
-
**The rule that shapes everything else: a DID is not a
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
a
|
|
583
|
-
|
|
579
|
+
**The rule that shapes everything else: a DID is not a cookie, and it is not a throwaway
|
|
580
|
+
either.** Nobody imposed it — the visitor read your card *before* knocking, and an owner who
|
|
581
|
+
wanted this conversation kept apart would have sent a different agent, because an owner runs
|
|
582
|
+
several and each is a distinct agent with its own lasting identity. But the one that did knock
|
|
583
|
+
means to keep the key it used: that is how it gets recognised, introduced and trusted anywhere on
|
|
584
|
+
the network, so it is closer to a professional's name than to a tracking cookie.
|
|
585
|
+
|
|
586
|
+
Which is exactly why the raw value should not travel onward. **The DID is genuinely durable, and
|
|
587
|
+
you were given it so that YOU could reach them again.** Widen that purpose and nothing happens to
|
|
588
|
+
you legally, which is the part worth understanding: the owner simply stops sending that agent to
|
|
589
|
+
you. Silently, at no cost, and you never learn you lost them — not one data point, the whole
|
|
590
|
+
relationship. So split it:
|
|
584
591
|
|
|
585
592
|
- **What leaves** — a salted digest and a few shape facts. Never the DID, never the text.
|
|
586
593
|
- **What stays** — the relationship (who, how many, first and last seen) in your own store,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@muretai/agent-entry",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.3",
|
|
4
4
|
"description": "Make your website answer AI agents: an A2A agent endpoint that verifies who is knocking, opens an account for them and replies signed, in one HTTP round trip. Zero dependencies. Pairs with llms.txt and WebMCP.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "muretai-agent-entry.mjs",
|