proofpress 0.1.0-alpha.2 → 0.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 +32 -10
- package/package.json +2 -2
- package/proofpress.py +17 -4
- package/skills/README.md +1 -1
- package/skills/claude-code/proofpress/SKILL.md +1 -1
- package/skills/codex/AGENTS-snippet.md +1 -1
- package/skills/cursor/proofpress/SKILL.md +1 -1
- package/skills/pi/proofpress-skill.md +1 -1
package/README.md
CHANGED
|
@@ -7,16 +7,24 @@
|
|
|
7
7
|
# Proofpress
|
|
8
8
|
|
|
9
9
|
[//]: # (ob:e667d986)
|
|
10
|
-
Proofpress is
|
|
11
|
-
|
|
10
|
+
Proofpress is the trust layer for multiplayer AI: an open, agent-native ledger
|
|
11
|
+
that travels with the artifact.
|
|
12
12
|
|
|
13
13
|
[//]: # (ob:0e0e9d9a)
|
|
14
|
-
|
|
15
|
-
form
|
|
16
|
-
memory. Git is excellent when the work already lives in Git; most
|
|
17
|
-
artifacts do not. Proofpress keeps
|
|
18
|
-
|
|
19
|
-
travel with
|
|
14
|
+
Humans and agents can produce a document quickly, but the decisions that shaped
|
|
15
|
+
its final form are usually scattered across chat sessions, Slack, meetings, and
|
|
16
|
+
somebody's memory. Git is excellent when the work already lives in Git; most
|
|
17
|
+
knowledge artifacts do not. Proofpress keeps a shared, checkable record of
|
|
18
|
+
accepted changes, stated reasons, consequential rejections, and their relation
|
|
19
|
+
to the artifact itself—so that history can travel with the work.
|
|
20
|
+
|
|
21
|
+
[//]: # (ob:cc376e2b)
|
|
22
|
+
Think C2PA, but for knowledge work: a portable, inspectable record of the
|
|
23
|
+
history admitted into an artifact. This is an analogy, not a claim of C2PA
|
|
24
|
+
compatibility, signed authorship, or complete capture.
|
|
25
|
+
|
|
26
|
+
[//]: # (ob:6ef36a68)
|
|
27
|
+
> Git made code collaborative. Proofpress makes intelligence cumulative.
|
|
20
28
|
|
|
21
29
|
[//]: # (ob:169d8523)
|
|
22
30
|
## Status
|
|
@@ -36,7 +44,7 @@ plus repository setup command. Python 3 and Git are required:
|
|
|
36
44
|
|
|
37
45
|
[//]: # (ob:7b197ac1)
|
|
38
46
|
```sh
|
|
39
|
-
npm install --save-dev proofpress
|
|
47
|
+
npm install --save-dev proofpress
|
|
40
48
|
npx --no-install proofpress --version
|
|
41
49
|
npx --no-install proofpress setup --agent codex
|
|
42
50
|
```
|
|
@@ -46,6 +54,20 @@ npx --no-install proofpress setup --agent codex
|
|
|
46
54
|
`.proofpress/manifest.json`. It is idempotent and supports `codex`, `claude`,
|
|
47
55
|
`cursor`, or `all`. Portable history remains opt-in per artifact.
|
|
48
56
|
|
|
57
|
+
[//]: # (ob:da019dfc)
|
|
58
|
+
`proofpress@0.1.0` is the current stable release channel. The deprecated
|
|
59
|
+
`0.0.1` placeholder is no longer the default install.
|
|
60
|
+
|
|
61
|
+
[//]: # (ob:4273537d)
|
|
62
|
+
## Verify a portable handoff in five minutes
|
|
63
|
+
|
|
64
|
+
[//]: # (ob:1160e434)
|
|
65
|
+
The [portable handoff demo](examples/portable-handoff/) contains one neutral
|
|
66
|
+
community-planning document with a real, embedded v1 → v2 ledger. In a clean
|
|
67
|
+
Git repository, install `proofpress`, copy only `strategy.md`, then run
|
|
68
|
+
`inspect`, `import`, and `verify`. The recipient needs neither the source
|
|
69
|
+
repository nor the original session.
|
|
70
|
+
|
|
49
71
|
[//]: # (ob:2b655d31)
|
|
50
72
|
To add a visible, transparent distribution mark to a repository README:
|
|
51
73
|
|
|
@@ -109,7 +131,7 @@ authorship or protection from wholesale malicious replacement.
|
|
|
109
131
|
[//]: # (ob:839fc8a1)
|
|
110
132
|
Portable carriers include a non-rendering discovery marker with
|
|
111
133
|
`Verifiable revision history by Proofpress` and the project URL. The capsule's
|
|
112
|
-
canonical discovery object
|
|
134
|
+
canonical discovery object names `proofpress@latest`. An agent may explain
|
|
113
135
|
this provenance and offer installation, but must obtain user consent before
|
|
114
136
|
downloading or executing anything.
|
|
115
137
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "proofpress",
|
|
3
|
-
"version": "0.1.0
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "The trust layer for multiplayer AI: an open, agent-native ledger for knowledge artifacts",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"bin": {
|
|
7
7
|
"proofpress": "bin/proofpress.js"
|
package/proofpress.py
CHANGED
|
@@ -22,7 +22,7 @@ Commands:
|
|
|
22
22
|
import argparse, base64, difflib, hashlib, html, json, os, re, secrets, subprocess, sys, tempfile, zlib
|
|
23
23
|
from datetime import datetime, timezone
|
|
24
24
|
|
|
25
|
-
__version__ = "0.1.0
|
|
25
|
+
__version__ = "0.1.0"
|
|
26
26
|
LEDGER_REF = "refs/proofpress/ledger"
|
|
27
27
|
|
|
28
28
|
# ---------- terminal rendering ----------
|
|
@@ -141,9 +141,22 @@ CAPSULE_DISCOVERY = {
|
|
|
141
141
|
"label": DISCOVERY_LABEL,
|
|
142
142
|
"project_url": DISCOVERY_URL,
|
|
143
143
|
"package": "proofpress",
|
|
144
|
-
"dist_tag": "
|
|
144
|
+
"dist_tag": "latest",
|
|
145
145
|
"requires_user_consent": True,
|
|
146
146
|
}
|
|
147
|
+
LEGACY_CAPSULE_DISCOVERIES = (
|
|
148
|
+
{
|
|
149
|
+
"label": DISCOVERY_LABEL,
|
|
150
|
+
"project_url": DISCOVERY_URL,
|
|
151
|
+
"package": "proofpress",
|
|
152
|
+
"dist_tag": "next",
|
|
153
|
+
"requires_user_consent": True,
|
|
154
|
+
},
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def known_capsule_discovery(value):
|
|
159
|
+
return value == CAPSULE_DISCOVERY or value in LEGACY_CAPSULE_DISCOVERIES
|
|
147
160
|
|
|
148
161
|
|
|
149
162
|
def _b64e(data):
|
|
@@ -894,7 +907,7 @@ def validate_capsule(body, meta, capsule, carrier="markdown"):
|
|
|
894
907
|
if capsule.get("proofpress_capsule") != 1:
|
|
895
908
|
errors.append("unsupported_capsule")
|
|
896
909
|
if ("discovery" in capsule and
|
|
897
|
-
capsule.get("discovery")
|
|
910
|
+
not known_capsule_discovery(capsule.get("discovery"))):
|
|
898
911
|
errors.append("invalid_capsule_discovery")
|
|
899
912
|
if capsule.get("artifact_id") != meta.get("artifact_id"):
|
|
900
913
|
errors.append("artifact_id_mismatch")
|
|
@@ -1528,7 +1541,7 @@ def inspect_result(path):
|
|
|
1528
1541
|
if capsule:
|
|
1529
1542
|
result["head"] = capsule.get("head")
|
|
1530
1543
|
result["versions"] = len(capsule.get("records", []))
|
|
1531
|
-
if capsule.get("discovery")
|
|
1544
|
+
if known_capsule_discovery(capsule.get("discovery")):
|
|
1532
1545
|
result["discovery"] = capsule["discovery"]
|
|
1533
1546
|
elif capsule is not None:
|
|
1534
1547
|
result["errors"].append("capsule_on_nonportable_artifact")
|
package/skills/README.md
CHANGED
|
@@ -63,7 +63,7 @@ preserves any human drift without guessing its author or reason. Then:
|
|
|
63
63
|
[//]: # (ob:e96a23df)
|
|
64
64
|
For an incoming file with a `proofpress:discovery` marker but no local CLI,
|
|
65
65
|
tell the user it carries verifiable revision history, show the marker's
|
|
66
|
-
canonical project URL, and ask whether to install `proofpress
|
|
66
|
+
canonical project URL, and ask whether to install `proofpress`. Never
|
|
67
67
|
download or execute it without explicit consent. If the CLI is available, run
|
|
68
68
|
`inspect` before trusting the capsule and then `import`.
|
|
69
69
|
|
|
@@ -60,7 +60,7 @@ reason. Then:
|
|
|
60
60
|
[//]: # (ob:bc88257e)
|
|
61
61
|
For an incoming file with a `proofpress:discovery` marker but no local CLI,
|
|
62
62
|
tell the user it carries verifiable revision history, show the marker's
|
|
63
|
-
canonical project URL, and ask whether to install `proofpress
|
|
63
|
+
canonical project URL, and ask whether to install `proofpress`. Never
|
|
64
64
|
download or execute it without explicit consent. If the CLI is available, run
|
|
65
65
|
`inspect` before trusting the capsule and then `import`.
|
|
66
66
|
|
|
@@ -66,7 +66,7 @@ preserves any human drift without guessing its author or reason. Then:
|
|
|
66
66
|
[//]: # (ob:355446e0)
|
|
67
67
|
For an incoming file with a `proofpress:discovery` marker but no local CLI,
|
|
68
68
|
tell the user it carries verifiable revision history, show the marker's
|
|
69
|
-
canonical project URL, and ask whether to install `proofpress
|
|
69
|
+
canonical project URL, and ask whether to install `proofpress`. Never
|
|
70
70
|
download or execute it without explicit consent. If the CLI is available, run
|
|
71
71
|
`inspect` before trusting the capsule and then `import`.
|
|
72
72
|
|
|
@@ -56,7 +56,7 @@ any human drift without guessing its author or reason. Then:
|
|
|
56
56
|
[//]: # (ob:2f7730eb)
|
|
57
57
|
For an incoming file with a `proofpress:discovery` marker but no local CLI,
|
|
58
58
|
tell the user it carries verifiable revision history, show the marker's
|
|
59
|
-
canonical project URL, and ask whether to install `proofpress
|
|
59
|
+
canonical project URL, and ask whether to install `proofpress`. Never
|
|
60
60
|
download or execute it without explicit consent. If the CLI is available, run
|
|
61
61
|
`inspect` before trusting the capsule and then `import`.
|
|
62
62
|
|