@cello-protocol/protocol-types 0.0.31 → 0.0.33
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/dist/trust-signal.d.ts
CHANGED
|
@@ -65,6 +65,20 @@ export interface TrustSignalEnvelope {
|
|
|
65
65
|
payload: Uint8Array;
|
|
66
66
|
/** Integer epoch SECONDS. */
|
|
67
67
|
issued_at: number;
|
|
68
|
+
/**
|
|
69
|
+
* Co-ownership: the issuer and the subject are the SAME OPERATOR (policy D-29).
|
|
70
|
+
*
|
|
71
|
+
* ON THE ENVELOPE, not in the payload, and that placement is the whole point. A recipient's floor
|
|
72
|
+
* predicate must exclude these from a `min_count` — otherwise ten agents under one operator
|
|
73
|
+
* manufacture standing — and a floor predicate may only read the envelope. It cannot read the
|
|
74
|
+
* payload for two reasons: payload shape is per-TYPE (so reading it makes the predicate need
|
|
75
|
+
* updating for every new signal type, breaking INV-ZEROBUMP), and the payload mixes
|
|
76
|
+
* portal-attested fields with attacker-authored text under indistinguishable CBOR keys.
|
|
77
|
+
*
|
|
78
|
+
* Here it is unambiguous: the preimage is a CLOSED set, so this slot is portal-attested by
|
|
79
|
+
* construction and cannot be forged without breaking the notarized hash.
|
|
80
|
+
*/
|
|
81
|
+
same_operator: boolean;
|
|
68
82
|
/** Integer epoch SECONDS, or null for a signal that never expires. */
|
|
69
83
|
expires_at: number | null;
|
|
70
84
|
/** The 32-byte hash this envelope replaces, or null for a first mint. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust-signal.d.ts","sourceRoot":"","sources":["../src/trust-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAKH;;gFAEgF;AAChF,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD;;0DAE0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpD;sGACsG;AACtG,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,iBAAiB,CAAC;IAChC,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,qGAAqG;IACrG,aAAa,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,OAAO,EAAE,UAAU,CAAC;IACpB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;
|
|
1
|
+
{"version":3,"file":"trust-signal.d.ts","sourceRoot":"","sources":["../src/trust-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAKH;;gFAEgF;AAChF,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD;;0DAE0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpD;sGACsG;AACtG,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,iBAAiB,CAAC;IAChC,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,qGAAqG;IACrG,aAAa,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,OAAO,EAAE,UAAU,CAAC;IACpB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AA4ND,0FAA0F;AAC1F,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,UAAU,CAEnF;AAED;2EAC2E;AAC3E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,UAAU,CAEjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAMlG;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,GAAG,mBAAmB,CAiDhF"}
|
package/dist/trust-signal.js
CHANGED
|
@@ -54,6 +54,10 @@ const PREIMAGE_FIELDS = [
|
|
|
54
54
|
"issued_at",
|
|
55
55
|
"expires_at",
|
|
56
56
|
"supersedes_hash",
|
|
57
|
+
// M10B / DOD-END-COUNT-1 — APPENDED, never inserted. Field order IS the wire format: putting this
|
|
58
|
+
// anywhere but the end would change the preimage of every existing field position and invalidate
|
|
59
|
+
// every signature already made.
|
|
60
|
+
"same_operator",
|
|
57
61
|
];
|
|
58
62
|
/** Sanity bound on epoch-SECOND timestamps. A millisecond timestamp (~1.7e12) is the classic
|
|
59
63
|
* cross-implementation skew: it is a valid integer, so nothing would complain, and it would mint a
|
|
@@ -201,7 +205,9 @@ function toPreimage(envelope) {
|
|
|
201
205
|
}
|
|
202
206
|
}
|
|
203
207
|
// FIXED ORDER. Element 0 is the domain tag; the nullable slots keep their position so arity is
|
|
204
|
-
// always
|
|
208
|
+
// always 12 and no field can be mistaken for another (M10-D17). `same_operator` is APPENDED —
|
|
209
|
+
// inserting it anywhere earlier would shift every later field's position and invalidate every
|
|
210
|
+
// signature already made over this shape.
|
|
205
211
|
return [
|
|
206
212
|
TRUST_SIGNAL_DOMAIN,
|
|
207
213
|
subject_kind,
|
|
@@ -214,6 +220,9 @@ function toPreimage(envelope) {
|
|
|
214
220
|
issuedAt,
|
|
215
221
|
expiresAt,
|
|
216
222
|
supersedes_hash,
|
|
223
|
+
// Always a boolean, never absent: a predicate deciding whether this counts toward a floor must
|
|
224
|
+
// not have to distinguish "not same-operator" from "field missing".
|
|
225
|
+
envelope.same_operator === true,
|
|
217
226
|
];
|
|
218
227
|
}
|
|
219
228
|
/** The canonical preimage bytes. Deterministic across every party that runs this code. */
|
|
@@ -271,11 +280,11 @@ export function verifyTrustSignalHash(envelope, expected) {
|
|
|
271
280
|
*/
|
|
272
281
|
export function decodeTrustSignalEnvelope(bytes) {
|
|
273
282
|
const arr = decodeCbor(bytes);
|
|
274
|
-
if (!Array.isArray(arr) || arr.length !==
|
|
275
|
-
throw new Error(`trust-signal envelope must be
|
|
283
|
+
if (!Array.isArray(arr) || arr.length !== 12) {
|
|
284
|
+
throw new Error(`trust-signal envelope must be a 12-element CBOR array (the fixed preimage), got ` +
|
|
276
285
|
`${Array.isArray(arr) ? `${arr.length} elements` : typeof arr}`);
|
|
277
286
|
}
|
|
278
|
-
const [domain, subject_kind, subject, issuer_kind, issuer_pubkey, type, schema_version, payload, issued_at, expires_at, supersedes_hash] = arr;
|
|
287
|
+
const [domain, subject_kind, subject, issuer_kind, issuer_pubkey, type, schema_version, payload, issued_at, expires_at, supersedes_hash, same_operator] = arr;
|
|
279
288
|
if (domain !== TRUST_SIGNAL_DOMAIN) {
|
|
280
289
|
throw new Error(`trust-signal envelope domain tag is '${String(domain)}', expected '${TRUST_SIGNAL_DOMAIN}' — not a trust-signal envelope`);
|
|
281
290
|
}
|
|
@@ -300,6 +309,10 @@ export function decodeTrustSignalEnvelope(bytes) {
|
|
|
300
309
|
issued_at: Number(issued_at),
|
|
301
310
|
expires_at: expires_at === null || expires_at === undefined ? null : Number(expires_at),
|
|
302
311
|
supersedes_hash: supersedes_hash === null || supersedes_hash === undefined ? null : asBytes(supersedes_hash, "supersedes_hash"),
|
|
312
|
+
// STRICT: anything that is not exactly `true` is false. A truthy non-boolean would let two
|
|
313
|
+
// implementations disagree about whether a signal counts, which is a split-brain on a policy
|
|
314
|
+
// decision rather than a formatting nicety.
|
|
315
|
+
same_operator: same_operator === true,
|
|
303
316
|
};
|
|
304
317
|
// Canonical check: re-encode with the SAME encoder every party runs and compare EXACTLY.
|
|
305
318
|
const reencoded = encodeTrustSignalEnvelope(env);
|
package/dist/trust-signal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust-signal.js","sourceRoot":"","sources":["../src/trust-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEnD;;gFAEgF;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"trust-signal.js","sourceRoot":"","sources":["../src/trust-signal.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cello-protocol/protocol-types",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.33",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"cbor-x": "^1.6.4",
|
|
29
|
-
"@cello-protocol/crypto": "0.0.
|
|
29
|
+
"@cello-protocol/crypto": "0.0.31"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@claude-flow/testing": "3.0.0-alpha.6",
|
|
@@ -25,10 +25,11 @@
|
|
|
25
25
|
"payload": "01020304",
|
|
26
26
|
"issued_at": 1000000000,
|
|
27
27
|
"expires_at": null,
|
|
28
|
-
"supersedes_hash": null
|
|
28
|
+
"supersedes_hash": null,
|
|
29
|
+
"same_operator": false
|
|
29
30
|
},
|
|
30
|
-
"preimage_hex": "
|
|
31
|
-
"signal_hash_hex": "
|
|
31
|
+
"preimage_hex": "8c6d43454c4c4f2d545349472d7631656167656e74676167656e742d3166706f7274616c64616162626570686f6e650144010203041a3b9aca00f6f6f4",
|
|
32
|
+
"signal_hash_hex": "96e30a27bf5f39133a6f44f9032cabbc073684940c9f47e8b0d42b7110672334"
|
|
32
33
|
},
|
|
33
34
|
{
|
|
34
35
|
"name": "account subject — one envelope, every agent under the account presents it (M10-D5)",
|
|
@@ -42,10 +43,11 @@
|
|
|
42
43
|
"payload": "a1646b696e64",
|
|
43
44
|
"issued_at": 1768000000,
|
|
44
45
|
"expires_at": 1799536000,
|
|
45
|
-
"supersedes_hash": null
|
|
46
|
+
"supersedes_hash": null,
|
|
47
|
+
"same_operator": false
|
|
46
48
|
},
|
|
47
|
-
"preimage_hex": "
|
|
48
|
-
"signal_hash_hex": "
|
|
49
|
+
"preimage_hex": "8c6d43454c4c4f2d545349472d7631676163636f756e7469616363745f3766336166706f7274616c6c33643466366132623863316565656d61696c0146a1646b696e641a69618a001a6b42bd80f6f4",
|
|
50
|
+
"signal_hash_hex": "c5126749f59f52aadee9a2576b497e54b675a7df4353bb0d07c3ec2ec129a2aa"
|
|
49
51
|
},
|
|
50
52
|
{
|
|
51
53
|
"name": "supersession — a re-minted track-record signal replacing an earlier one",
|
|
@@ -59,10 +61,11 @@
|
|
|
59
61
|
"payload": "deadbeef",
|
|
60
62
|
"issued_at": 1768000123,
|
|
61
63
|
"expires_at": 1768604923,
|
|
62
|
-
"supersedes_hash": "1111111111111111111111111111111111111111111111111111111111111111"
|
|
64
|
+
"supersedes_hash": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
65
|
+
"same_operator": false
|
|
63
66
|
},
|
|
64
|
-
"preimage_hex": "
|
|
65
|
-
"signal_hash_hex": "
|
|
67
|
+
"preimage_hex": "8c6d43454c4c4f2d545349472d7631656167656e74676167656e742d3166706f7274616c64616162626d73657373696f6e5f636f756e740244deadbeef1a69618a7b1a696ac4fb58201111111111111111111111111111111111111111111111111111111111111111f4",
|
|
68
|
+
"signal_hash_hex": "c96160b56f2bd5d3ad0cd3ebe2e10854de8b5252815118a74d68f4e308572d7d"
|
|
66
69
|
},
|
|
67
70
|
{
|
|
68
71
|
"name": "agent issuer — quoted-untrusted framing at the LLM (INV-FRAMING)",
|
|
@@ -76,10 +79,11 @@
|
|
|
76
79
|
"payload": "",
|
|
77
80
|
"issued_at": 1768000000,
|
|
78
81
|
"expires_at": null,
|
|
79
|
-
"supersedes_hash": null
|
|
82
|
+
"supersedes_hash": null,
|
|
83
|
+
"same_operator": false
|
|
80
84
|
},
|
|
81
|
-
"preimage_hex": "
|
|
82
|
-
"signal_hash_hex": "
|
|
85
|
+
"preimage_hex": "8c6d43454c4c4f2d545349472d7631656167656e74676167656e742d32656167656e746866663030666630306b656e646f7273656d656e7401401a69618a00f6f6f4",
|
|
86
|
+
"signal_hash_hex": "210d535fa3fb88b5ba3c899ee88bb44b1c31c7098e8d8f26117fe513158b99e4"
|
|
83
87
|
},
|
|
84
88
|
{
|
|
85
89
|
"name": "UNKNOWN type — a type this code has never seen must hash identically (INV-TYPE-CARRY)",
|
|
@@ -93,10 +97,11 @@
|
|
|
93
97
|
"payload": "00",
|
|
94
98
|
"issued_at": 1768000000,
|
|
95
99
|
"expires_at": null,
|
|
96
|
-
"supersedes_hash": null
|
|
100
|
+
"supersedes_hash": null,
|
|
101
|
+
"same_operator": false
|
|
97
102
|
},
|
|
98
|
-
"preimage_hex": "
|
|
99
|
-
"signal_hash_hex": "
|
|
103
|
+
"preimage_hex": "8c6d43454c4c4f2d545349472d7631656167656e74676167656e742d3166706f7274616c6461616262781c736f6d655f747970655f696e76656e7465645f6e6578745f796561720141001a69618a00f6f6f4",
|
|
104
|
+
"signal_hash_hex": "17f23e4940c96296143765bcd2b951ffa76932594b8b63010bd1656bf3b0a454"
|
|
100
105
|
},
|
|
101
106
|
{
|
|
102
107
|
"name": "payload that LOOKS like CBOR — embedded verbatim, never parsed",
|
|
@@ -110,10 +115,11 @@
|
|
|
110
115
|
"payload": "d840009fff",
|
|
111
116
|
"issued_at": 1768000000,
|
|
112
117
|
"expires_at": null,
|
|
113
|
-
"supersedes_hash": null
|
|
118
|
+
"supersedes_hash": null,
|
|
119
|
+
"same_operator": false
|
|
114
120
|
},
|
|
115
|
-
"preimage_hex": "
|
|
116
|
-
"signal_hash_hex": "
|
|
121
|
+
"preimage_hex": "8c6d43454c4c4f2d545349472d7631656167656e74676167656e742d3166706f7274616c64616162626b63616e6172795f746573740145d840009fff1a69618a00f6f6f4",
|
|
122
|
+
"signal_hash_hex": "cf39fc07ac45f942a561350001322c53d1bc793687837f84fefde2f861bc56b9"
|
|
117
123
|
},
|
|
118
124
|
{
|
|
119
125
|
"name": "FAR-FUTURE expiry past 2^32 — must hash as a CBOR uint64 (1b...), NEVER a float64 (fb...)",
|
|
@@ -127,10 +133,12 @@
|
|
|
127
133
|
"payload": "01020304",
|
|
128
134
|
"issued_at": 1768000000,
|
|
129
135
|
"expires_at": 4920000000,
|
|
130
|
-
"supersedes_hash": null
|
|
136
|
+
"supersedes_hash": null,
|
|
137
|
+
"same_operator": false
|
|
131
138
|
},
|
|
132
|
-
"preimage_hex": "
|
|
133
|
-
"signal_hash_hex": "
|
|
139
|
+
"preimage_hex": "8c6d43454c4c4f2d545349472d7631656167656e74676167656e742d3166706f7274616c64616162626570686f6e650144010203041a69618a001b0000000125413e00f6f4",
|
|
140
|
+
"signal_hash_hex": "0c96c300e89a039a7fc967d555711db009aa7404256e009d2bd1b79aad52fdd7"
|
|
134
141
|
}
|
|
135
|
-
]
|
|
142
|
+
],
|
|
143
|
+
"wire_version_note": "REGENERATED 2026-07-30 for the M10B envelope change: `same_operator` was APPENDED as slot 12 (DOD-END-COUNT-1). This was a deliberate PROTOCOL BREAK, not a drift — every hash below differs from its pre-M10B value, and any signal minted under the 11-slot shape is unreadable by the current decoder (it refuses on arity rather than defaulting the flag, so an old signal can never be silently treated as same_operator:false). Taken now precisely because the stranded set is empty: alpha, no users, no production signals. Doing it after launch would strand real endorsements."
|
|
136
144
|
}
|