@lapxo/head 0.1.7 → 0.2.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 +39 -14
- package/TARGET.bound +110 -20
- package/dist/src/ahead/read.d.ts +2 -2
- package/dist/src/ahead/read.js +2 -4
- package/dist/src/core/answer.d.ts +2 -0
- package/dist/src/core/package.js +3 -1
- package/dist/src/doors/head.js +8 -3
- package/dist/src/flows/device.d.ts +3 -0
- package/dist/src/flows/device.js +2 -2
- package/dist/src/flows/plan.d.ts +2 -0
- package/dist/src/flows/plan.js +15 -1
- package/dist/src/links/birth.d.ts +6 -0
- package/dist/src/links/birth.js +48 -0
- package/dist/src/links/inspect.d.ts +1 -1
- package/dist/src/links/inspect.js +23 -12
- package/dist/src/links/link.d.ts +2 -2
- package/dist/src/links/link.js +7 -10
- package/dist/src/ports/bound.d.ts +0 -1
- package/dist/src/ports/bound.js +14 -15
- package/dist/src/ports/host.d.ts +18 -0
- package/dist/src/ports/host.js +58 -9
- package/dist/src/sources/connect.js +3 -2
- package/dist/src/tools/card.js +3 -2
- package/dist/src/use/named.js +3 -3
- package/dist/src/verbs/ask.js +1 -1
- package/dist/src/verbs/card.js +2 -2
- package/package.json +2 -2
- package/dist/src/ports/reading.d.ts +0 -8
- package/dist/src/ports/reading.js +0 -14
package/README.md
CHANGED
|
@@ -1,26 +1,51 @@
|
|
|
1
1
|
# head
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Ask your APIs through an assistant. Keep who answered, what was read, and what you allowed.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
head is an MCP server. Give it an API document, approve the connection, and ask a question. It reads operations the document declares, returns typed fields when a schema is available, and keeps signed receipts of its reads. Without a usable schema, the answer is named as untyped.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```text
|
|
8
|
+
You: Connect this API as forecast.
|
|
9
|
+
[give its OpenAPI document; approve the connection]
|
|
10
|
+
You: What is the forecast in Lima?
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
forecast: temperature 21, sky clear
|
|
13
|
+
receipt: sha256:…
|
|
14
|
+
```
|
|
10
15
|
|
|
11
|
-
|
|
16
|
+
This is an illustrative fixture, not a live forecast. [Run the local example](docs/first-minute.md) without an account or a real secret.
|
|
12
17
|
|
|
13
|
-
##
|
|
18
|
+
## Start
|
|
14
19
|
|
|
15
|
-
|
|
16
|
-
- **By command:** `npx -y @lapxo/head@0.1.7 run`, for an assistant that starts its servers by command.
|
|
20
|
+
For an assistant that starts MCP servers by command:
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
```sh
|
|
23
|
+
npx -y @lapxo/head@0.2.0 run
|
|
24
|
+
```
|
|
19
25
|
|
|
20
|
-
|
|
26
|
+
The pin above names this release; the executable examples in this tree use the checkout. A client can also open a desktop extension from [releases](https://github.com/Lapxo/head/releases); check the artifact digests supplied with the release. Starting head alone prints help; `head run` starts the MCP server.
|
|
21
27
|
|
|
22
|
-
|
|
28
|
+
macOS is the supported desktop environment. Node 22.18 or later is required. Linux, Windows and unattended cloud execution are not validated as supported environments here. A successful mock or CI job does not establish working system-keychain and browser integration.
|
|
23
29
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
## What you do
|
|
31
|
+
|
|
32
|
+
- **Connect** a document, optionally with an overlay. head pins the compiled description by digest. With no place yet, the first approved connection creates `~/place`.
|
|
33
|
+
- **Ask** for one operation or compare the same question across sources. Receipts keep the source and time. A missing answer stays owed; an empty answer is not a missing answer.
|
|
34
|
+
- **Act** within the place's permissions and consent rules. A suggested next step is not authorization. Writes do not become allowed because a model asked for them.
|
|
35
|
+
- **Share and inspect** public material. A reference identifies content; a separate holder location says where to obtain it. Inspection checks the selected contract and grants nothing. [Try sharing and verification](docs/sharing.md).
|
|
36
|
+
|
|
37
|
+
Your place keeps its declarations as text. `birth.bound` separates your local declarations from head's profile. Keep it private unless you have reviewed what you are sharing: it is not the portable public `birth.topos` artifact.
|
|
38
|
+
|
|
39
|
+
## Two names are not two independent sources
|
|
40
|
+
|
|
41
|
+
If `mirror` shares `forecast`'s declared lineage, agreement is shown as `●○`. Both sources and their receipts remain visible. `●●` does not prove independence; it only reports what the declared lineage and source identity establish. Disagreement keeps each source's value instead of choosing a winner.
|
|
42
|
+
|
|
43
|
+
[Run the lineage example](docs/lineage.md), including withdrawal of the lineage declaration without erasing earlier receipts.
|
|
44
|
+
|
|
45
|
+
## Boundaries you can check
|
|
46
|
+
|
|
47
|
+
Signing keys stay behind a short-lived signer port in the supported flow. Tokens go to the declared transport, not into model arguments. A compromised process running as your user is outside that code boundary: it can invoke the keychain itself.
|
|
48
|
+
|
|
49
|
+
A digest is not network permission or proof that an answer is true. Received bytes install no authority. Configuration preflight does not replace API permission, access or secret-consent checks. See the [threat model and reporting policy](SECURITY.md), and [connect an API](docs/connect-any-api.md) for access options.
|
|
50
|
+
|
|
51
|
+
The three public MCP tools are `ask`, `connect` and `do`. Examples reuse the existing client and fixtures; they add no provider-specific behavior to head.
|