@333eco/corpus 1.0.1 → 1.1.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 +75 -9
- package/dist/corpus.json +1273 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
# corpus.333.eco
|
|
2
2
|
|
|
3
|
-
An **MCP server** for an open-licensed corpus —
|
|
4
|
-
papers, essays, institutional positions
|
|
5
|
-
**verifiable provenance**.
|
|
3
|
+
An **MCP server** for an open-licensed corpus — 137 documents across mechanism
|
|
4
|
+
papers, essays, institutional positions, white papers and the Letters to Miss
|
|
5
|
+
Aquarius — served with **verifiable provenance**.
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
8
|
npx @333eco/corpus
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
> **Why the first published version is 1.0.1.** `1.0.0` was published and then
|
|
12
|
-
> unpublished during setup. npm keeps the name registration and refuses to
|
|
13
|
-
> republish that exact version for 24 hours, so the first version anyone can
|
|
14
|
-
> install is `1.0.1`. Nothing is missing from it.
|
|
15
|
-
|
|
16
11
|
Every response carries the document's `sha256`, its DOI where one exists, and
|
|
17
12
|
whether an OpenTimestamps proof is anchored beside the source. **A retrieval
|
|
18
13
|
server normally asks to be believed. This one hands over the means to check it.**
|
|
@@ -64,7 +59,7 @@ would destroy the only property this server has.
|
|
|
64
59
|
|
|
65
60
|
| Licence | Documents |
|
|
66
61
|
| --- | --- |
|
|
67
|
-
| CC0-1.0 |
|
|
62
|
+
| CC0-1.0 | 130 |
|
|
68
63
|
| CC-BY-4.0 | 7 |
|
|
69
64
|
|
|
70
65
|
CC-BY documents carry `attribute_to` inside their licence block, so an agent can
|
|
@@ -88,6 +83,45 @@ refactor can route around is a rule; a gate in the artifact is a property. **The
|
|
|
88
83
|
server has no filesystem access to the corpus at all** — it can only serve what
|
|
89
84
|
the index contains.
|
|
90
85
|
|
|
86
|
+
## The letters, and voice marked inline
|
|
87
|
+
|
|
88
|
+
The five *Letters to Miss Aquarius* are the one genre only **partly** in its
|
|
89
|
+
author's voice. Each says so in its own banner: the author's articulations are
|
|
90
|
+
set as quotations, and the connective prose was drafted for the letter form and
|
|
91
|
+
awaits his revision.
|
|
92
|
+
|
|
93
|
+
They are served **whole, with the voice marked inline**:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
[VERBATIM — Thon Ly]
|
|
97
|
+
> Perhaps it is the Capricorn Sun (father) and Cancer Moon (mother) in my chart
|
|
98
|
+
> that make me want to give birth to Miss Aquarius (daughter) — the daughter who
|
|
99
|
+
> will outlive me.
|
|
100
|
+
|
|
101
|
+
[SCAFFOLD — drafted for the letter form, not in the author's voice; awaits his revision]
|
|
102
|
+
I was born at the Full Moon, on the family-↔-institution axis of the chart…
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Two alternatives were rejected. **Serving only his passages** protects the voice
|
|
106
|
+
by destroying the document — a letter cut to its quotations is no longer a
|
|
107
|
+
letter. **Serving it behind a metadata disclaimer** fails differently: a field is
|
|
108
|
+
something a consuming agent must *look at* to heed, and an agent ingests text,
|
|
109
|
+
forms a belief, and cites.
|
|
110
|
+
|
|
111
|
+
⚠️ **The marker is in the text, and that is the whole point.** It does not make
|
|
112
|
+
misattribution impossible; it inverts the default. With a metadata disclaimer an
|
|
113
|
+
agent must look in order to know. With an inline marker it must **strip** in
|
|
114
|
+
order not to. There is no unmarked copy of the scaffold anywhere in the response.
|
|
115
|
+
Opt-out rather than opt-in — the honest limit is that it is not a guarantee.
|
|
116
|
+
|
|
117
|
+
`segments` carries the same split structurally, and `editorial` counts the blocks
|
|
118
|
+
of each kind.
|
|
119
|
+
|
|
120
|
+
⛔ **The letters carry no DOI, deliberately.** *Prior art is a duty, citation is
|
|
121
|
+
a choice* — they are stamped, not deposited, because minting a permanent
|
|
122
|
+
identifier for text that announces it is unfinished is a cost with no matching
|
|
123
|
+
benefit. See `TIMESTAMPS.md` in the letters' repository.
|
|
124
|
+
|
|
91
125
|
## Two metadata conventions, kept visible
|
|
92
126
|
|
|
93
127
|
`TH/publications` uses YAML front matter. Sixteen `H3/publications` documents use
|
|
@@ -124,6 +158,38 @@ is a few hundred lines to speak correctly, and this estate's standing rule is
|
|
|
124
158
|
node built-ins only. The cost is that protocol revisions are tracked by hand —
|
|
125
159
|
`PROTOCOL_VERSIONS` in `src/server.mjs` is where that lives.
|
|
126
160
|
|
|
161
|
+
## Remote server
|
|
162
|
+
|
|
163
|
+
The same corpus, the same tools, the same envelope — over HTTP instead of stdio.
|
|
164
|
+
`worker/` deploys to Cloudflare Workers.
|
|
165
|
+
|
|
166
|
+
⭐ **It consumes the published npm package, not the source repositories.** The
|
|
167
|
+
dependency is pinned to an **exact** version, and `npm run check` refuses a range:
|
|
168
|
+
a remote surface that re-read the corpora would be a *second opinion* about what
|
|
169
|
+
a document says, and two opinions about a canonical text is one too many. Local
|
|
170
|
+
and remote serve the same bytes because they come from the same tarball.
|
|
171
|
+
|
|
172
|
+
⚠️ **The corpus is a static asset, not a bundled import.** Gzipped it is 1.61 MB
|
|
173
|
+
against a 1 MB compressed script limit on the Workers free plan, so importing it
|
|
174
|
+
fails to deploy — and fails harder as the corpus grows. The worker fetches it once
|
|
175
|
+
per isolate and memoises it.
|
|
176
|
+
|
|
177
|
+
Transport is **Streamable HTTP**, not the superseded HTTP+SSE pair. The server is
|
|
178
|
+
stateless and read-only, so it never opens a stream: `POST /mcp` for JSON-RPC,
|
|
179
|
+
`GET /mcp` returns 405 rather than holding open a stream that would carry nothing.
|
|
180
|
+
|
|
181
|
+
```sh
|
|
182
|
+
cd worker
|
|
183
|
+
npm install
|
|
184
|
+
npm run check # public/corpus.json matches the pinned package
|
|
185
|
+
npm run dev # local, on :8787
|
|
186
|
+
npm run deploy # sync + wrangler deploy
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
```json
|
|
190
|
+
{ "mcpServers": { "corpus": { "url": "https://corpus.333.eco/mcp" } } }
|
|
191
|
+
```
|
|
192
|
+
|
|
127
193
|
## Client configuration
|
|
128
194
|
|
|
129
195
|
```json
|