@real-life/trust-protocol 0.3.2 → 0.5.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.
Files changed (277) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/README.md +209 -78
  3. package/dist/ack.d.ts +84 -0
  4. package/dist/ack.d.ts.map +1 -0
  5. package/dist/ack.js +114 -0
  6. package/dist/ack.js.map +1 -0
  7. package/dist/adapters/vti-mediator.d.ts +169 -0
  8. package/dist/adapters/vti-mediator.d.ts.map +1 -0
  9. package/dist/adapters/vti-mediator.js +659 -0
  10. package/dist/adapters/vti-mediator.js.map +1 -0
  11. package/dist/anchor.d.ts +226 -0
  12. package/dist/anchor.d.ts.map +1 -0
  13. package/dist/anchor.js +347 -0
  14. package/dist/anchor.js.map +1 -0
  15. package/dist/{holder.d.ts → carrier-holder.d.ts} +1 -1
  16. package/dist/carrier-holder.d.ts.map +1 -0
  17. package/dist/{holder.js → carrier-holder.js} +5 -4
  18. package/dist/carrier-holder.js.map +1 -0
  19. package/dist/carrier-identity.js +4 -4
  20. package/dist/carrier-identity.js.map +1 -1
  21. package/dist/carrier.d.ts.map +1 -1
  22. package/dist/carrier.js +4 -3
  23. package/dist/carrier.js.map +1 -1
  24. package/dist/ceremony.d.ts +3 -2
  25. package/dist/ceremony.d.ts.map +1 -1
  26. package/dist/ceremony.js +16 -26
  27. package/dist/ceremony.js.map +1 -1
  28. package/dist/codec.d.ts +54 -0
  29. package/dist/codec.d.ts.map +1 -0
  30. package/dist/codec.js +494 -0
  31. package/dist/codec.js.map +1 -0
  32. package/dist/continuity.d.ts +67 -0
  33. package/dist/continuity.d.ts.map +1 -0
  34. package/dist/continuity.js +110 -0
  35. package/dist/continuity.js.map +1 -0
  36. package/dist/core.d.ts +4 -0
  37. package/dist/core.d.ts.map +1 -1
  38. package/dist/core.js.map +1 -1
  39. package/dist/crypto.d.ts +23 -7
  40. package/dist/crypto.d.ts.map +1 -1
  41. package/dist/crypto.js +54 -20
  42. package/dist/crypto.js.map +1 -1
  43. package/dist/delivery.d.ts +31 -3
  44. package/dist/delivery.d.ts.map +1 -1
  45. package/dist/delivery.js +75 -28
  46. package/dist/delivery.js.map +1 -1
  47. package/dist/encounter/ceremony.d.ts +37 -0
  48. package/dist/encounter/ceremony.d.ts.map +1 -0
  49. package/dist/encounter/ceremony.js +662 -0
  50. package/dist/encounter/ceremony.js.map +1 -0
  51. package/dist/encounter.d.ts +91 -1
  52. package/dist/encounter.d.ts.map +1 -1
  53. package/dist/encounter.js +191 -12
  54. package/dist/encounter.js.map +1 -1
  55. package/dist/engine.d.ts +303 -0
  56. package/dist/engine.d.ts.map +1 -0
  57. package/dist/engine.js +1509 -0
  58. package/dist/engine.js.map +1 -0
  59. package/dist/entropy.d.ts +28 -0
  60. package/dist/entropy.d.ts.map +1 -0
  61. package/dist/entropy.js +96 -0
  62. package/dist/entropy.js.map +1 -0
  63. package/dist/events.d.ts +198 -0
  64. package/dist/events.d.ts.map +1 -0
  65. package/dist/events.js +2 -0
  66. package/dist/events.js.map +1 -0
  67. package/dist/fixtures.d.ts +30 -0
  68. package/dist/fixtures.d.ts.map +1 -0
  69. package/dist/fixtures.js +155 -0
  70. package/dist/fixtures.js.map +1 -0
  71. package/dist/forge.d.ts +47 -0
  72. package/dist/forge.d.ts.map +1 -0
  73. package/dist/forge.js +20 -0
  74. package/dist/forge.js.map +1 -0
  75. package/dist/group-star.d.ts +251 -0
  76. package/dist/group-star.d.ts.map +1 -0
  77. package/dist/group-star.js +348 -0
  78. package/dist/group-star.js.map +1 -0
  79. package/dist/holder-api.d.ts +165 -0
  80. package/dist/holder-api.d.ts.map +1 -0
  81. package/dist/holder-api.js +142 -0
  82. package/dist/holder-api.js.map +1 -0
  83. package/dist/holder-state-v1.d.ts +801 -0
  84. package/dist/holder-state-v1.d.ts.map +1 -0
  85. package/dist/holder-state-v1.js +2 -0
  86. package/dist/holder-state-v1.js.map +1 -0
  87. package/dist/holder-state-v2.d.ts +858 -0
  88. package/dist/holder-state-v2.d.ts.map +1 -0
  89. package/dist/holder-state-v2.js +2 -0
  90. package/dist/holder-state-v2.js.map +1 -0
  91. package/dist/identity-state.d.ts +43 -0
  92. package/dist/identity-state.d.ts.map +1 -0
  93. package/dist/identity-state.js +345 -0
  94. package/dist/identity-state.js.map +1 -0
  95. package/dist/identity.d.ts +24 -2
  96. package/dist/identity.d.ts.map +1 -1
  97. package/dist/identity.js +70 -11
  98. package/dist/identity.js.map +1 -1
  99. package/dist/index.d.ts +27 -1
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +81 -29
  102. package/dist/index.js.map +1 -1
  103. package/dist/internal.d.ts +37 -0
  104. package/dist/internal.d.ts.map +1 -0
  105. package/dist/internal.js +22 -0
  106. package/dist/internal.js.map +1 -0
  107. package/dist/introduction/holder.d.ts +18 -0
  108. package/dist/introduction/holder.d.ts.map +1 -0
  109. package/dist/introduction/holder.js +764 -0
  110. package/dist/introduction/holder.js.map +1 -0
  111. package/dist/introduction.d.ts +101 -0
  112. package/dist/introduction.d.ts.map +1 -0
  113. package/dist/introduction.js +132 -0
  114. package/dist/introduction.js.map +1 -0
  115. package/dist/invariants.d.ts +43 -0
  116. package/dist/invariants.d.ts.map +1 -0
  117. package/dist/invariants.js +953 -0
  118. package/dist/invariants.js.map +1 -0
  119. package/dist/keys-seed.d.ts +7 -0
  120. package/dist/keys-seed.d.ts.map +1 -0
  121. package/dist/keys-seed.js +133 -0
  122. package/dist/keys-seed.js.map +1 -0
  123. package/dist/log-memory.d.ts +12 -0
  124. package/dist/log-memory.d.ts.map +1 -0
  125. package/dist/log-memory.js +101 -0
  126. package/dist/log-memory.js.map +1 -0
  127. package/dist/membership/holder.d.ts +33 -0
  128. package/dist/membership/holder.d.ts.map +1 -0
  129. package/dist/membership/holder.js +929 -0
  130. package/dist/membership/holder.js.map +1 -0
  131. package/dist/membership.d.ts +123 -0
  132. package/dist/membership.d.ts.map +1 -0
  133. package/dist/membership.js +180 -0
  134. package/dist/membership.js.map +1 -0
  135. package/dist/message/holder.d.ts +49 -0
  136. package/dist/message/holder.d.ts.map +1 -0
  137. package/dist/message/holder.js +290 -0
  138. package/dist/message/holder.js.map +1 -0
  139. package/dist/message.d.ts +43 -0
  140. package/dist/message.d.ts.map +1 -0
  141. package/dist/message.js +51 -0
  142. package/dist/message.js.map +1 -0
  143. package/dist/ports.d.ts +237 -0
  144. package/dist/ports.d.ts.map +1 -0
  145. package/dist/ports.js +2 -0
  146. package/dist/ports.js.map +1 -0
  147. package/dist/profile.d.ts +56 -0
  148. package/dist/profile.d.ts.map +1 -0
  149. package/dist/profile.js +193 -0
  150. package/dist/profile.js.map +1 -0
  151. package/dist/prompts.d.ts +14 -0
  152. package/dist/prompts.d.ts.map +1 -0
  153. package/dist/prompts.js +69 -0
  154. package/dist/prompts.js.map +1 -0
  155. package/dist/receive.d.ts +134 -0
  156. package/dist/receive.d.ts.map +1 -0
  157. package/dist/receive.js +317 -0
  158. package/dist/receive.js.map +1 -0
  159. package/dist/results.d.ts +173 -0
  160. package/dist/results.d.ts.map +1 -0
  161. package/dist/results.js +21 -0
  162. package/dist/results.js.map +1 -0
  163. package/dist/schemas.d.ts.map +1 -1
  164. package/dist/schemas.js +45 -38
  165. package/dist/schemas.js.map +1 -1
  166. package/dist/sha256.d.ts +3 -0
  167. package/dist/sha256.d.ts.map +1 -0
  168. package/dist/sha256.js +69 -0
  169. package/dist/sha256.js.map +1 -0
  170. package/dist/star.d.ts +31 -0
  171. package/dist/star.d.ts.map +1 -0
  172. package/dist/star.js +56 -0
  173. package/dist/star.js.map +1 -0
  174. package/dist/state-builder.d.ts +42 -0
  175. package/dist/state-builder.d.ts.map +1 -0
  176. package/dist/state-builder.js +100 -0
  177. package/dist/state-builder.js.map +1 -0
  178. package/dist/state.d.ts +914 -0
  179. package/dist/state.d.ts.map +1 -0
  180. package/dist/state.js +37 -0
  181. package/dist/state.js.map +1 -0
  182. package/dist/store-contract.d.ts +11 -0
  183. package/dist/store-contract.d.ts.map +1 -0
  184. package/dist/store-contract.js +189 -0
  185. package/dist/store-contract.js.map +1 -0
  186. package/dist/store-memory.d.ts +8 -0
  187. package/dist/store-memory.d.ts.map +1 -0
  188. package/dist/store-memory.js +17 -0
  189. package/dist/store-memory.js.map +1 -0
  190. package/dist/testing.d.ts +22 -0
  191. package/dist/testing.d.ts.map +1 -0
  192. package/dist/testing.js +21 -0
  193. package/dist/testing.js.map +1 -0
  194. package/dist/trust/continuity.d.ts +71 -0
  195. package/dist/trust/continuity.d.ts.map +1 -0
  196. package/dist/trust/continuity.js +1222 -0
  197. package/dist/trust/continuity.js.map +1 -0
  198. package/dist/trust/duties.d.ts +67 -0
  199. package/dist/trust/duties.d.ts.map +1 -0
  200. package/dist/trust/duties.js +179 -0
  201. package/dist/trust/duties.js.map +1 -0
  202. package/dist/trust/entries.d.ts +139 -0
  203. package/dist/trust/entries.d.ts.map +1 -0
  204. package/dist/trust/entries.js +795 -0
  205. package/dist/trust/entries.js.map +1 -0
  206. package/dist/trust/group-star.d.ts +43 -0
  207. package/dist/trust/group-star.d.ts.map +1 -0
  208. package/dist/trust/group-star.js +188 -0
  209. package/dist/trust/group-star.js.map +1 -0
  210. package/dist/trust/mapping.d.ts +56 -0
  211. package/dist/trust/mapping.d.ts.map +1 -0
  212. package/dist/trust/mapping.js +584 -0
  213. package/dist/trust/mapping.js.map +1 -0
  214. package/dist/trust/profile.d.ts +25 -0
  215. package/dist/trust/profile.d.ts.map +1 -0
  216. package/dist/trust/profile.js +249 -0
  217. package/dist/trust/profile.js.map +1 -0
  218. package/dist/trust/star.d.ts +208 -0
  219. package/dist/trust/star.d.ts.map +1 -0
  220. package/dist/trust/star.js +588 -0
  221. package/dist/trust/star.js.map +1 -0
  222. package/dist/trust/state.d.ts +83 -0
  223. package/dist/trust/state.d.ts.map +1 -0
  224. package/dist/trust/state.js +154 -0
  225. package/dist/trust/state.js.map +1 -0
  226. package/dist/util-freeze.d.ts +3 -0
  227. package/dist/util-freeze.d.ts.map +1 -0
  228. package/dist/util-freeze.js +11 -0
  229. package/dist/util-freeze.js.map +1 -0
  230. package/dist/views.d.ts +179 -0
  231. package/dist/views.d.ts.map +1 -0
  232. package/dist/views.js +286 -0
  233. package/dist/views.js.map +1 -0
  234. package/dist/visibility.d.ts +5 -5
  235. package/dist/visibility.d.ts.map +1 -1
  236. package/dist/visibility.js +22 -28
  237. package/dist/visibility.js.map +1 -1
  238. package/dist/wire.d.ts +218 -83
  239. package/dist/wire.d.ts.map +1 -1
  240. package/dist/wire.js.map +1 -1
  241. package/package.json +60 -10
  242. package/schemas/holder-state-v1.schema.json +3880 -0
  243. package/schemas/holder-state-v2.schema.json +4123 -0
  244. package/dist/holder.d.ts.map +0 -1
  245. package/dist/holder.js.map +0 -1
  246. package/dist/probe/acks.d.ts +0 -27
  247. package/dist/probe/acks.d.ts.map +0 -1
  248. package/dist/probe/acks.js +0 -152
  249. package/dist/probe/acks.js.map +0 -1
  250. package/dist/probe/continuity.d.ts +0 -20
  251. package/dist/probe/continuity.d.ts.map +0 -1
  252. package/dist/probe/continuity.js +0 -805
  253. package/dist/probe/continuity.js.map +0 -1
  254. package/dist/probe/deps.d.ts +0 -61
  255. package/dist/probe/deps.d.ts.map +0 -1
  256. package/dist/probe/deps.js +0 -54
  257. package/dist/probe/deps.js.map +0 -1
  258. package/dist/probe/encounter.d.ts +0 -26
  259. package/dist/probe/encounter.d.ts.map +0 -1
  260. package/dist/probe/encounter.js +0 -938
  261. package/dist/probe/encounter.js.map +0 -1
  262. package/dist/probe/introduce.d.ts +0 -62
  263. package/dist/probe/introduce.d.ts.map +0 -1
  264. package/dist/probe/introduce.js +0 -306
  265. package/dist/probe/introduce.js.map +0 -1
  266. package/dist/probe/membership.d.ts +0 -96
  267. package/dist/probe/membership.d.ts.map +0 -1
  268. package/dist/probe/membership.js +0 -467
  269. package/dist/probe/membership.js.map +0 -1
  270. package/dist/probe/trust.d.ts +0 -156
  271. package/dist/probe/trust.d.ts.map +0 -1
  272. package/dist/probe/trust.js +0 -1233
  273. package/dist/probe/trust.js.map +0 -1
  274. package/dist/probe.d.ts +0 -7
  275. package/dist/probe.d.ts.map +0 -1
  276. package/dist/probe.js +0 -42
  277. package/dist/probe.js.map +0 -1
@@ -0,0 +1,208 @@
1
+ import type { Json } from '../core.js';
2
+ import type { AckHandler, OutboundDraft, PrepareCtx, SweepHandler, TaskHandler } from '../engine.js';
3
+ import type { Assembly, Contact, Dec, HolderState, Relationship, SeqIn, SeqOut, StarPair, TrustClass, Tuple } from '../state.js';
4
+ /** The registered task type that carries star@2 (Delivery §4.4, 5640). */
5
+ export declare const STAR_TYPE = "https://real-life.org/trust-tasks/star/0.2";
6
+ /** The receiver's resource limit (5365): the highest seq an open assembly
7
+ * takes, per artifact. */
8
+ export declare const ASSEMBLY_LIMIT: Readonly<{
9
+ star: 1024;
10
+ groupStar: 64;
11
+ probe: 64;
12
+ }>;
13
+ /** One reconciled, chunked artifact on a tuple: its scopes and how it
14
+ * builds and completes. V is a view element, A what a completed
15
+ * delivery leaves behind on the receiver. */
16
+ export interface Artifact<V, A> {
17
+ kind: 'star' | 'groupStar';
18
+ type: string;
19
+ cls: TrustClass;
20
+ /** the rule a malformed chunk fails */
21
+ malformedRef: string;
22
+ out(t: Readonly<Tuple>): SeqOut<V>;
23
+ withOut(t: Readonly<Tuple>, o: SeqOut<V>): Tuple;
24
+ inn(t: Readonly<Tuple>): SeqIn<A>;
25
+ withIn(t: Readonly<Tuple>, i: SeqIn<A>): Tuple;
26
+ /** the reconciliation view toward contact `c` on relationship `rel` (sync) */
27
+ view(state: Readonly<HolderState>, c: Readonly<Contact>, rel: Readonly<Relationship>): V[];
28
+ /** the view depends on state.contacts alone, the same toward every
29
+ * recipient: computed once per contacts record */
30
+ uniform: boolean;
31
+ /** the chunks of one production */
32
+ build(ctx: PrepareCtx, p: {
33
+ shared: Uint8Array;
34
+ own: string;
35
+ tuple: Readonly<Tuple>;
36
+ salt: Dec;
37
+ view: V[];
38
+ }): Promise<Json[] | null>;
39
+ chunkOk(chunk: unknown): boolean;
40
+ macOk(ctx: PrepareCtx, p: {
41
+ shared: Uint8Array;
42
+ from: string;
43
+ own: string;
44
+ salt: Dec;
45
+ chunk: Json;
46
+ }): Promise<boolean>;
47
+ /** the entries a chunk body carries, in order */
48
+ entries(body: Json): Json[];
49
+ /** the completed delivery: its union validated and evaluated */
50
+ complete(ctx: PrepareCtx, p: {
51
+ shared: Uint8Array;
52
+ from: string;
53
+ own: string;
54
+ salt: Dec;
55
+ union: Json[];
56
+ rel: Readonly<Relationship>;
57
+ tuple: Readonly<Tuple>;
58
+ }): Promise<{
59
+ ok: true;
60
+ accepted: A;
61
+ memory?: Record<string, Json>;
62
+ } | {
63
+ ok: false;
64
+ ref: string;
65
+ }>;
66
+ }
67
+ /** One live recipient: a contact and the active-head tuple of one of its
68
+ * live relationships (2820). */
69
+ export interface Recipient {
70
+ contact: Contact;
71
+ rel: Relationship;
72
+ tuple: Tuple;
73
+ }
74
+ /** Every contact's live relationships, by contact id, then relationship
75
+ * order; a relationship behind two entries under the one its
76
+ * verifications go to (2146), once. */
77
+ export declare function recipients(state: Readonly<HolderState>): Recipient[];
78
+ /** The digest of a view: SHA-256 over its JCS form. Views are compared by
79
+ * it (the baseline's snapshotDigest, an inflight entry's viewDigest),
80
+ * never re-serialized per comparison. */
81
+ export declare const viewDigest: (view: readonly unknown[]) => string;
82
+ /** Whether an in-flight delivery can still complete: every chunk acked,
83
+ * or still in the outbox and not failed (an ack refers to an outbox item). */
84
+ export declare const canComplete: (state: Readonly<HolderState>, f: Readonly<{
85
+ digests: string[];
86
+ acked: string[];
87
+ }>) => boolean;
88
+ /** Every tuple's in-flight deliveries of both artifacts pruned to those
89
+ * whose outbox items are not all gone; tick's retention (the same state
90
+ * object where nothing is pruned). */
91
+ export declare function retainInflight(state: Readonly<HolderState>): HolderState;
92
+ /** Whether the artifact is owed now on this recipient (5690–5720, 5830):
93
+ * the class on, the scope able to issue, the view diverging from the
94
+ * baseline (absent: by definition) and not already in flight. */
95
+ export declare function owed<V, A>(art: Artifact<V, A>, state: Readonly<HolderState>, r: Recipient, digest: string): boolean;
96
+ /** The sweep's pending keys: one per owed recipient and view. */
97
+ export declare function pendingOf<V, A>(art: Artifact<V, A>, state: Readonly<HolderState>): string[];
98
+ /** A production prepared against a snapshot. */
99
+ interface Production<V> {
100
+ relId: string;
101
+ tuple: string;
102
+ contactId: string;
103
+ baseSalt: Dec;
104
+ salt: Dec;
105
+ view: V[];
106
+ viewDigest: string;
107
+ outbound: OutboundDraft[];
108
+ }
109
+ /** A key agreement on the tuple's own rkid with the counterpart key, or null. */
110
+ export declare function pairShared(ctx: PrepareCtx, t: Readonly<Tuple>, peerKeyAgreement?: string): Promise<Uint8Array | null>;
111
+ /** Seal one chunk as its own document of the salt's thread (Delivery §4.4). */
112
+ export declare function chunkDocument(ctx: PrepareCtx, type: string, issuer: string, t: Readonly<Tuple>, contactId: string, threadId: string, chunk: Json): Promise<OutboundDraft>;
113
+ /** The reconciliation sweep of one artifact (5.4, 5730). */
114
+ export declare function sweepOf<V, A>(art: Artifact<V, A>): SweepHandler<Production<V>[]>;
115
+ /** Completion of a salt by the verified acks of all its chunks (5660),
116
+ * then the baseline automaton (5670). */
117
+ export declare function ackOf<V, A>(art: Artifact<V, A>): AckHandler;
118
+ /** What one authenticated chunk does to its tuple's open assembly of one
119
+ * artifact (5.2a; the probe under 6790 with `probe` as the salt). */
120
+ export type AssemblyStep = {
121
+ kind: 'repeat';
122
+ } | {
123
+ kind: 'reject';
124
+ ref: string;
125
+ } | {
126
+ kind: 'limit';
127
+ } | {
128
+ kind: 'hold';
129
+ assembly: Assembly;
130
+ } | {
131
+ kind: 'complete';
132
+ chunks: Record<string, Json>;
133
+ last: bigint;
134
+ };
135
+ /**
136
+ * The assembly rules after the salt checks and the MAC (5250–5290, 5330,
137
+ * 5365): a higher salt displaces the open assembly; a seq above `limit`
138
+ * is the resource limit; the same digest again a repeat; another thread,
139
+ * a repeated seq of other bytes, a second last or a seq beyond last
140
+ * reject the delivery; otherwise the chunk is held, or completes the
141
+ * assembly with every seq up to last present.
142
+ */
143
+ export declare function assemblyStep(open: Assembly | null, salt: Dec, body: {
144
+ seq: Dec;
145
+ last: boolean;
146
+ } & Record<string, Json>, threadId: string, digest: string, limit: number): AssemblyStep;
147
+ /** The held bodies of a complete assembly, in seq order. */
148
+ export declare const assembledBodies: (chunks: Record<string, Json>, last: bigint) => Array<Record<string, Json>>;
149
+ /** What stage 8 decided for one chunk. */
150
+ type ChunkPlan<A> = {
151
+ kind: 'hold';
152
+ relId: string;
153
+ tuple: string;
154
+ assembly: Assembly;
155
+ } | {
156
+ kind: 'repeat';
157
+ } | {
158
+ kind: 'discard';
159
+ relId: string;
160
+ tuple: string;
161
+ salt: Dec;
162
+ reason: 'resource-limit' | 'rejected';
163
+ ref: string;
164
+ } | {
165
+ kind: 'complete';
166
+ relId: string;
167
+ tuple: string;
168
+ salt: Dec;
169
+ accepted: A;
170
+ memory?: Record<string, Json>;
171
+ contactId: string;
172
+ };
173
+ /** The task handler of one artifact (5.2a). */
174
+ export declare function taskOf<V, A>(art: Artifact<V, A>, limit: number): TaskHandler<Json, ChunkPlan<A>>;
175
+ /** A tuple with its open assemblies dropped, as its deactivation leaves
176
+ * it (5360): for chaining and departure (PR 4c). */
177
+ export declare const discardAssemblies: (t: Readonly<Tuple>) => Tuple;
178
+ /** The reconciliation view of 5610/5620: (member, anchor head) of every
179
+ * admitted entry, member = the entry id, sorted by member. */
180
+ export declare function starView(state: Readonly<HolderState>): StarPair[];
181
+ /** Blinded values of `anchors` under the key of every accepted star, by
182
+ * `<relId>|<tuple>`, with the salt they were blinded for: the async half
183
+ * of a re-match (6160), prepared where anchors are about to be held. */
184
+ export type StarBlinds = Record<string, {
185
+ salt: Dec;
186
+ blinds: string[];
187
+ }>;
188
+ export declare function starBlinds(ctx: PrepareCtx, anchors: readonly string[]): Promise<StarBlinds>;
189
+ /**
190
+ * The sync half (6160, 6390): `contactId` now holds the anchors `blinds`
191
+ * were prepared for; every accepted star (other than the contact's own)
192
+ * whose stored union carries one of them lists the contact among its
193
+ * matches. Run in the transition that makes the holder hold them (the
194
+ * anchor mapping's acceptance: a new entry, an advanced head, a new link).
195
+ */
196
+ export declare function rematchStars(state: Readonly<HolderState>, contactId: string, blinds: StarBlinds): HolderState;
197
+ /** Every anchor the holder holds for a contact (6160, 6390): the entry's
198
+ * head, each relationship's held head, both ends of every held link. */
199
+ export declare function heldAnchors(state: Readonly<HolderState>, c: Readonly<Contact>): string[];
200
+ type StarAccepted = NonNullable<SeqIn<{
201
+ salt: Dec;
202
+ blinded: string[];
203
+ matches: string[];
204
+ }>['accepted']>;
205
+ /** The star as an artifact (5.1–5.4). */
206
+ export declare const STAR: Artifact<StarPair, StarAccepted>;
207
+ export {};
208
+ //# sourceMappingURL=star.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"star.d.ts","sourceRoot":"","sources":["../../src/trust/star.ts"],"names":[],"mappings":"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"}