@agentplat/mesh 0.3.0-alpha.3 → 0.3.0-alpha.5

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.
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Server-only, opt-in bridge between authenticated Mesh envelopes and Trust.
3
+ * It is deliberately not exported by the Mesh root entrypoint.
4
+ */
5
+ import type { MeshCryptoPolicy, MeshKeyResolver } from "@agentplat/mesh-crypto";
6
+ import { type MeshProtocolOptions, type SignedMeshEnvelope, type VerifiedMeshEnvelope } from "@agentplat/mesh-protocol";
7
+ import { type EvidenceScopeV1, type EvidenceRecordV1, type EvidenceTrustRestoreOptionsV1, type EvidenceTrustRollbackAnchorV1, type EvidenceTrustSnapshotProtectorV1, type EvidenceTrustSnapshotV1, type EvidenceTrustStateV1, type TrustEligibilityRequirementV1, type TrustObservationV1, type TrustReasonCodeV1 } from "@agentplat/trust";
8
+ type MeshTrustPayloadV1 = Extract<SignedMeshEnvelope["payload"], {
9
+ readonly type: "evidence.claim";
10
+ }> | Extract<SignedMeshEnvelope["payload"], {
11
+ readonly type: "evidence.attest";
12
+ }> | Extract<SignedMeshEnvelope["payload"], {
13
+ readonly type: "evidence.challenge";
14
+ }> | Extract<SignedMeshEnvelope["payload"], {
15
+ readonly type: "evidence.retract";
16
+ }> | Extract<SignedMeshEnvelope["payload"], {
17
+ readonly type: "trust.observation";
18
+ }>;
19
+ export type MeshEvidenceInboundRejectionCodeV1 = "invalid_request" | "unsupported_message_type" | "scope_mismatch" | "audience_mismatch" | "crypto_rejected" | "normalization_failed" | "authorization_rejected" | "replay_rejected" | "trust_transition_rejected";
20
+ /** Retained only in the authenticated composite Mesh state/journal. */
21
+ export interface MeshEvidenceOriginProofV1 {
22
+ readonly schemaVersion: 1;
23
+ readonly messageId: string;
24
+ readonly payloadHash: string;
25
+ readonly signedEnvelopeDigest: string;
26
+ readonly senderPeerId: string;
27
+ readonly senderKeyId: string;
28
+ readonly admissionStateDigest: string;
29
+ readonly coordinationAuthorityDigests: readonly string[];
30
+ readonly replayStateDigest: string;
31
+ readonly normalizedRecordId: string;
32
+ readonly normalizedRecordDigest: string;
33
+ readonly originProofDigest: string;
34
+ }
35
+ /** Authenticated composite journal material retained for network-free restore. */
36
+ export interface MeshEvidenceOriginJournalEntryV1 {
37
+ readonly schemaVersion: 1;
38
+ readonly descriptor: MeshEvidenceOriginProofV1;
39
+ readonly canonicalSignedEnvelope: string;
40
+ }
41
+ /**
42
+ * A construction-bound adapter. It owns accepted admission, Objective/Work,
43
+ * role and replay projections and must perform its Trust transition atomically.
44
+ */
45
+ export interface MeshEvidenceInboundPreparationBaseV1 {
46
+ readonly accepted: true;
47
+ readonly admissionStateDigest: string;
48
+ readonly coordinationAuthorityDigests: readonly string[];
49
+ readonly replayStateDigest: string;
50
+ readonly observationCorrelated: boolean;
51
+ readonly effectiveAtLogicalMs: number;
52
+ }
53
+ export interface MeshEvidenceInboundAdapterV1<TState, TPreparation extends MeshEvidenceInboundPreparationBaseV1 = MeshEvidenceInboundPreparationBaseV1> {
54
+ readonly bindingDigest: string;
55
+ prepare(input: {
56
+ readonly state: TState;
57
+ readonly envelope: VerifiedMeshEnvelope<MeshTrustPayloadV1>;
58
+ readonly receivedAt: number;
59
+ }): TPreparation | {
60
+ readonly accepted: false;
61
+ readonly code: "authorization_rejected" | "replay_rejected";
62
+ };
63
+ process(input: {
64
+ readonly state: TState;
65
+ readonly envelope: VerifiedMeshEnvelope<MeshTrustPayloadV1>;
66
+ readonly verifiedKeyId: string;
67
+ readonly receivedAt: number;
68
+ readonly record?: EvidenceRecordV1;
69
+ readonly observation?: TrustObservationV1;
70
+ readonly observationCorrelated?: boolean;
71
+ readonly origin: MeshEvidenceOriginProofV1;
72
+ readonly originBindingDigest: string;
73
+ readonly originVerifierBindingDigest: string;
74
+ readonly preparation: TPreparation;
75
+ }): {
76
+ readonly accepted: true;
77
+ readonly duplicate: boolean;
78
+ readonly state: TState;
79
+ } | {
80
+ readonly accepted: false;
81
+ readonly code: "authorization_rejected" | "replay_rejected" | "trust_transition_rejected";
82
+ readonly state: TState;
83
+ };
84
+ }
85
+ export interface MeshEvidenceInboundRuntimeStateV1<TState> {
86
+ readonly schemaVersion: 1;
87
+ readonly identity: {
88
+ readonly tenantId: string;
89
+ readonly meshId: string;
90
+ readonly peerId: string;
91
+ };
92
+ readonly state: TState;
93
+ }
94
+ /** Concrete composite retained by the server-only adapter. */
95
+ export interface MeshEvidenceTrustCompositeStateV1<TAuthorizationState = unknown> {
96
+ readonly authorizationState: TAuthorizationState;
97
+ readonly trust: EvidenceTrustStateV1;
98
+ readonly originProofs: Readonly<Record<string, MeshEvidenceOriginJournalEntryV1>>;
99
+ readonly remoteObservations: Readonly<Record<string, {
100
+ readonly observation: TrustObservationV1;
101
+ readonly correlated: boolean;
102
+ }>>;
103
+ }
104
+ /**
105
+ * The surrounding Mesh runtime supplies one immutable, construction-bound
106
+ * authorization/replay transaction. It must validate admission, topic/direct
107
+ * audience, Objective/Work revision, epoch, authority, fence, source role and
108
+ * causation before returning its projection digests.
109
+ */
110
+ export interface MeshEvidenceTrustPreparationV1<TAuthorizationState> extends MeshEvidenceInboundPreparationBaseV1 {
111
+ readonly nextAuthorizationState: TAuthorizationState;
112
+ }
113
+ export interface MeshEvidenceTrustAuthorizationV1<TAuthorizationState> {
114
+ prepare(input: {
115
+ readonly authorizationState: TAuthorizationState;
116
+ readonly envelope: VerifiedMeshEnvelope<MeshTrustPayloadV1>;
117
+ readonly receivedAt: number;
118
+ }): MeshEvidenceTrustPreparationV1<TAuthorizationState> | {
119
+ readonly accepted: false;
120
+ readonly code: "authorization_rejected" | "replay_rejected";
121
+ };
122
+ }
123
+ /** Creates the Trust reducer adapter; no direct payload route exists. */
124
+ export declare function createMeshEvidenceTrustAdapterV1<TAuthorizationState>(bindingDigest: string, originVerifierBindingDigest: string, authorization: MeshEvidenceTrustAuthorizationV1<TAuthorizationState>): MeshEvidenceInboundAdapterV1<MeshEvidenceTrustCompositeStateV1<TAuthorizationState>, MeshEvidenceTrustPreparationV1<TAuthorizationState>>;
125
+ export interface MeshEvidenceInboundProcessorOptionsV1<TState, TPreparation extends MeshEvidenceInboundPreparationBaseV1 = MeshEvidenceInboundPreparationBaseV1> {
126
+ readonly resolver: MeshKeyResolver;
127
+ readonly cryptoPolicy: MeshCryptoPolicy;
128
+ readonly adapter: MeshEvidenceInboundAdapterV1<TState, TPreparation>;
129
+ readonly originVerifierBindingDigest: string;
130
+ readonly crypto?: Crypto;
131
+ readonly protocolOptions?: MeshProtocolOptions;
132
+ readonly supportedCriticalExtensions?: readonly string[];
133
+ }
134
+ export interface MeshEvidenceInboundRequestV1 {
135
+ readonly envelope: SignedMeshEnvelope;
136
+ readonly verifiedAt: string;
137
+ readonly receivedAt: number;
138
+ }
139
+ export type MeshEvidenceInboundDecisionV1<TState> = {
140
+ readonly accepted: true;
141
+ readonly duplicate: boolean;
142
+ readonly observation: boolean;
143
+ readonly state: MeshEvidenceInboundRuntimeStateV1<TState>;
144
+ } | {
145
+ readonly accepted: false;
146
+ readonly code: MeshEvidenceInboundRejectionCodeV1;
147
+ readonly state: MeshEvidenceInboundRuntimeStateV1<TState>;
148
+ };
149
+ export interface MeshEvidenceInboundProcessorV1<TState> {
150
+ process(state: MeshEvidenceInboundRuntimeStateV1<TState>, request: MeshEvidenceInboundRequestV1): Promise<MeshEvidenceInboundDecisionV1<TState>>;
151
+ }
152
+ /** Creates the only Mesh route allowed to create a `verified_mesh` record. */
153
+ export declare function createMeshEvidenceInboundProcessorV1<TState, TPreparation extends MeshEvidenceInboundPreparationBaseV1 = MeshEvidenceInboundPreparationBaseV1>(options: MeshEvidenceInboundProcessorOptionsV1<TState, TPreparation>): MeshEvidenceInboundProcessorV1<TState>;
154
+ /** Validates retained descriptor + exact canonical signed-envelope bytes. */
155
+ export declare function validateMeshEvidenceOriginJournalEntryV1(value: unknown): value is MeshEvidenceOriginJournalEntryV1;
156
+ export type MeshTrustEligibilityModeV1 = "observe" | "restrict";
157
+ export interface MeshTrustCandidateV1 {
158
+ readonly peerId: string;
159
+ readonly capabilities: readonly unknown[];
160
+ }
161
+ export interface MeshTrustEligibilityResolverV1 {
162
+ readonly bindingDigest: string;
163
+ evaluate(candidate: MeshTrustCandidateV1): "eligible" | "restricted" | "quarantined" | "unavailable";
164
+ }
165
+ export declare function filterMeshCapabilityMatchesWithTrustV1<T extends MeshTrustCandidateV1>(candidates: readonly T[], mode: MeshTrustEligibilityModeV1, resolver: MeshTrustEligibilityResolverV1): {
166
+ readonly matches: readonly T[];
167
+ readonly diagnostics: readonly {
168
+ readonly peerId: string;
169
+ readonly status: ReturnType<MeshTrustEligibilityResolverV1["evaluate"]>;
170
+ }[];
171
+ readonly unavailable: boolean;
172
+ };
173
+ export declare const MESH_PEER_SUBJECT_MAPPING_DIGEST_V1: string;
174
+ export interface MeshTrustStateEligibilityConfigV1 {
175
+ readonly schemaVersion: 1;
176
+ readonly mode: MeshTrustEligibilityModeV1;
177
+ readonly logicalTimeMs: number;
178
+ readonly scope: EvidenceScopeV1;
179
+ readonly policyId: string;
180
+ readonly policyVersion: number;
181
+ readonly policyDigest: string;
182
+ readonly maximumProfileAgeMs: number;
183
+ readonly requirements: readonly TrustEligibilityRequirementV1[];
184
+ readonly subjectMappingDigest: string;
185
+ readonly meshEligibilityBindingDigest: string;
186
+ readonly profileResolverBindingDigest: string;
187
+ }
188
+ export interface MeshTrustStateEligibilityDiagnosticV1 {
189
+ readonly peerId: string;
190
+ readonly disposition: "eligible" | "restricted" | "quarantined" | "unavailable";
191
+ readonly eligibilityDecisionId: string | null;
192
+ readonly reasonCodes: readonly TrustReasonCodeV1[];
193
+ }
194
+ export interface MeshTrustStateEligibilityResultV1<T extends MeshTrustCandidateV1> {
195
+ readonly matches: readonly T[];
196
+ readonly diagnostics: readonly MeshTrustStateEligibilityDiagnosticV1[];
197
+ readonly unavailable: boolean;
198
+ }
199
+ export type MeshTrustEligibilityRuntimeStateV1<TAuthorizationState = unknown> = MeshEvidenceInboundRuntimeStateV1<MeshEvidenceTrustCompositeStateV1<TAuthorizationState>>;
200
+ /**
201
+ * Reconstructs the Trust member of a Mesh transaction only through the strict
202
+ * authenticated snapshot boundary. The caller must supply its current trusted
203
+ * external rollback anchor; structural Trust validation alone is insufficient.
204
+ */
205
+ export declare function restoreMeshTrustEligibilityRuntimeStateV1<TAuthorizationState>(current: MeshTrustEligibilityRuntimeStateV1<TAuthorizationState>, snapshot: EvidenceTrustSnapshotV1, anchor: EvidenceTrustRollbackAnchorV1, protector: EvidenceTrustSnapshotProtectorV1, options?: EvidenceTrustRestoreOptionsV1): MeshTrustEligibilityRuntimeStateV1<TAuthorizationState>;
206
+ export declare function createMeshTrustStateEligibilityConfigV1(value: MeshTrustStateEligibilityConfigV1): MeshTrustStateEligibilityConfigV1;
207
+ export declare function digestMeshTrustStateEligibilityConfigV1(value: MeshTrustStateEligibilityConfigV1): string;
208
+ export declare function filterMeshCapabilityMatchesWithTrustStateV1<T extends MeshTrustCandidateV1, TAuthorizationState = unknown>(candidates: readonly T[], current: MeshTrustEligibilityRuntimeStateV1<TAuthorizationState>, configValue: MeshTrustStateEligibilityConfigV1): MeshTrustStateEligibilityResultV1<T>;
209
+ /** Encodes only the already-redacted projection; it never exports a profile or Fusion input. */
210
+ export declare function encodeMeshTrustObservationV1(observation: TrustObservationV1): Readonly<Record<string, unknown>>;
211
+ export {};
212
+ //# sourceMappingURL=trust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../src/trust.ts"],"names":[],"mappings":"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"}