@agentplat/mesh 0.3.0-alpha.4 → 0.3.0-beta.1
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 +10 -0
- package/dist/coordination-discovery-contracts.d.ts +3 -1
- package/dist/coordination-discovery-contracts.d.ts.map +1 -1
- package/dist/coordination-discovery-state.d.ts +3 -0
- package/dist/coordination-discovery-state.d.ts.map +1 -1
- package/dist/coordination-discovery-state.js +93 -8
- package/dist/coordination-discovery-state.js.map +1 -1
- package/dist/coordination-inbound.d.ts.map +1 -1
- package/dist/coordination-inbound.js +54 -3
- package/dist/coordination-inbound.js.map +1 -1
- package/dist/coordination-wire-version-contracts.d.ts +67 -0
- package/dist/coordination-wire-version-contracts.d.ts.map +1 -0
- package/dist/coordination-wire-version-contracts.js +2 -0
- package/dist/coordination-wire-version-contracts.js.map +1 -0
- package/dist/coordination-wire-version.d.ts +8 -0
- package/dist/coordination-wire-version.d.ts.map +1 -0
- package/dist/coordination-wire-version.js +285 -0
- package/dist/coordination-wire-version.js.map +1 -0
- package/dist/coordination.d.ts +3 -1
- package/dist/coordination.d.ts.map +1 -1
- package/dist/coordination.js +3 -1
- package/dist/coordination.js.map +1 -1
- package/dist/durability.d.ts +283 -0
- package/dist/durability.d.ts.map +1 -0
- package/dist/durability.js +749 -0
- package/dist/durability.js.map +1 -0
- package/dist/loopback.d.ts +3 -1
- package/dist/loopback.d.ts.map +1 -1
- package/dist/loopback.js +9 -7
- package/dist/loopback.js.map +1 -1
- package/fixtures/beta1/README.md +11 -0
- package/fixtures/beta1/durability/wrapper-v1.json +19 -0
- package/fixtures/beta1/durability/wrapper-v2.json +51 -0
- package/fixtures/beta1/manifest.json +147 -0
- package/fixtures/beta1/postgres/alpha5-dump-manifest.json +29 -0
- package/fixtures/beta1/postgres/migrations.json +25 -0
- package/fixtures/beta1/simulation/replay-trace-v1.json +60 -0
- package/fixtures/beta1/simulation/snapshot-v2.json +71 -0
- package/fixtures/beta1/states/allocation-v1.json +24 -0
- package/fixtures/beta1/states/allocation-v2.json +28 -0
- package/fixtures/beta1/states/allocation-v3.json +38 -0
- package/fixtures/beta1/states/allocation-v4.json +43 -0
- package/fixtures/beta1/states/allocation-v5.json +46 -0
- package/fixtures/beta1/states/allocation-v6.json +56 -0
- package/fixtures/beta1/states/coordination-v1.json +20 -0
- package/fixtures/beta1/states/core-peer.json +26 -0
- package/fixtures/beta1/states/discovery-v1.json +31 -0
- package/fixtures/beta1/states/discovery-v2.json +32 -0
- package/fixtures/beta1/states/inbound-v1.json +19 -0
- package/fixtures/beta1/states/objective-work-v1.json +28 -0
- package/fixtures/beta1/states/objective-work-v2.json +28 -0
- package/package.json +9 -4
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import type { MeshJsonValue, MeshProtocolOptions, SignedMeshEnvelope } from "@agentplat/mesh-protocol";
|
|
2
|
+
export declare const MESH_DURABILITY_SCHEMA_VERSION: 2;
|
|
3
|
+
export declare const MESH_PREVIOUS_DURABILITY_SCHEMA_VERSION: 1;
|
|
4
|
+
export type MeshDurabilitySchemaVersion = typeof MESH_PREVIOUS_DURABILITY_SCHEMA_VERSION | typeof MESH_DURABILITY_SCHEMA_VERSION;
|
|
5
|
+
export declare const MESH_DURABLE_ENVELOPE_FORMAT: "application/vnd.agentplat.mesh-envelope+json";
|
|
6
|
+
export declare const MESH_DURABLE_OPAQUE_SNAPSHOT_FORMAT: "application/json";
|
|
7
|
+
export declare const MESH_DURABLE_LEGACY_OPAQUE_SNAPSHOT_FORMAT: "application/json; profile=legacy-opaque";
|
|
8
|
+
export declare const MESH_DURABLE_JOURNAL_VERSION: 1;
|
|
9
|
+
export declare const MESH_DURABLE_GENESIS_DIGEST = "sha256:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
|
|
10
|
+
export interface MeshDurableScope {
|
|
11
|
+
readonly tenantId: string;
|
|
12
|
+
readonly meshId: string;
|
|
13
|
+
readonly peerId: string;
|
|
14
|
+
readonly instanceId: string;
|
|
15
|
+
}
|
|
16
|
+
export interface MeshDurableClaim {
|
|
17
|
+
readonly workerId: string;
|
|
18
|
+
readonly leaseToken: string;
|
|
19
|
+
readonly generation: number;
|
|
20
|
+
/** Exclusive RFC 3339 expiry evaluated by the repository clock. */
|
|
21
|
+
readonly expiresAt: string;
|
|
22
|
+
}
|
|
23
|
+
export type MeshDurableInboxStatus = "pending" | "processing" | "applied" | "rejected";
|
|
24
|
+
export interface MeshDurableInboxRecord {
|
|
25
|
+
readonly schemaVersion: MeshDurabilitySchemaVersion;
|
|
26
|
+
readonly scope: MeshDurableScope;
|
|
27
|
+
readonly messageId: string;
|
|
28
|
+
readonly envelope: SignedMeshEnvelope;
|
|
29
|
+
readonly envelopeDigest: string;
|
|
30
|
+
/** Present on schema-2 writes; legacy rows remain explicitly distinguishable. */
|
|
31
|
+
readonly envelopeFormat?: string;
|
|
32
|
+
readonly envelopeWireVersion?: number;
|
|
33
|
+
readonly envelopeBytes?: string;
|
|
34
|
+
readonly status: MeshDurableInboxStatus;
|
|
35
|
+
readonly attempts: number;
|
|
36
|
+
readonly receivedAt: string;
|
|
37
|
+
readonly availableAt: string;
|
|
38
|
+
readonly claim?: MeshDurableClaim;
|
|
39
|
+
readonly settledAt?: string;
|
|
40
|
+
readonly reasonCode?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface MeshDurablePeerSnapshot {
|
|
43
|
+
readonly schemaVersion: MeshDurabilitySchemaVersion;
|
|
44
|
+
readonly scope: MeshDurableScope;
|
|
45
|
+
readonly revision: number;
|
|
46
|
+
readonly state: MeshJsonValue;
|
|
47
|
+
readonly stateDigest: string;
|
|
48
|
+
readonly snapshotFormat?: string;
|
|
49
|
+
readonly snapshotSchemaVersion?: number;
|
|
50
|
+
readonly committedAt: string;
|
|
51
|
+
}
|
|
52
|
+
export interface MeshDurableJournalDraft {
|
|
53
|
+
readonly entryId: string;
|
|
54
|
+
readonly kind: string;
|
|
55
|
+
readonly reasonCode?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface MeshDurableJournalEntry extends MeshDurableJournalDraft {
|
|
58
|
+
readonly schemaVersion: MeshDurabilitySchemaVersion;
|
|
59
|
+
readonly journalVersion?: typeof MESH_DURABLE_JOURNAL_VERSION;
|
|
60
|
+
readonly scope: MeshDurableScope;
|
|
61
|
+
readonly sequence: number;
|
|
62
|
+
readonly previousDigest: string;
|
|
63
|
+
readonly digest: string;
|
|
64
|
+
readonly transitionId: string;
|
|
65
|
+
readonly inboxMessageId?: string;
|
|
66
|
+
readonly snapshotRevision: number;
|
|
67
|
+
readonly snapshotDigest: string;
|
|
68
|
+
readonly occurredAt: string;
|
|
69
|
+
}
|
|
70
|
+
export type MeshDurableOutboxStatus = "pending" | "delivering" | "delivered" | "rejected";
|
|
71
|
+
export interface MeshDurableOutboundDraft {
|
|
72
|
+
readonly effectId: string;
|
|
73
|
+
readonly envelope: SignedMeshEnvelope;
|
|
74
|
+
/** Required when a topic envelope is delivered to one selected peer. */
|
|
75
|
+
readonly targetPeerId?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface MeshDurableOutboxRecord extends MeshDurableOutboundDraft {
|
|
78
|
+
readonly schemaVersion: MeshDurabilitySchemaVersion;
|
|
79
|
+
readonly scope: MeshDurableScope;
|
|
80
|
+
readonly messageId: string;
|
|
81
|
+
readonly envelopeDigest: string;
|
|
82
|
+
readonly envelopeFormat?: string;
|
|
83
|
+
readonly envelopeWireVersion?: number;
|
|
84
|
+
readonly envelopeBytes?: string;
|
|
85
|
+
readonly status: MeshDurableOutboxStatus;
|
|
86
|
+
readonly attempts: number;
|
|
87
|
+
readonly availableAt: string;
|
|
88
|
+
readonly createdAt: string;
|
|
89
|
+
readonly claim?: MeshDurableClaim;
|
|
90
|
+
readonly settledAt?: string;
|
|
91
|
+
readonly reasonCode?: string;
|
|
92
|
+
}
|
|
93
|
+
export type MeshDurableReceiveResult = {
|
|
94
|
+
readonly accepted: true;
|
|
95
|
+
readonly duplicate: boolean;
|
|
96
|
+
readonly receivedAt: string;
|
|
97
|
+
readonly envelopeDigest: string;
|
|
98
|
+
} | {
|
|
99
|
+
readonly accepted: false;
|
|
100
|
+
readonly code: "capacity_exceeded" | "message_conflict";
|
|
101
|
+
};
|
|
102
|
+
export interface MeshDurableClaimOptions {
|
|
103
|
+
readonly scope: MeshDurableScope;
|
|
104
|
+
readonly workerId: string;
|
|
105
|
+
readonly limit: number;
|
|
106
|
+
readonly leaseDurationMs: number;
|
|
107
|
+
}
|
|
108
|
+
export interface MeshDurableCommitInboxInput {
|
|
109
|
+
readonly inbox: MeshDurableInboxRecord;
|
|
110
|
+
readonly expectedSnapshotRevision: number;
|
|
111
|
+
readonly transitionId: string;
|
|
112
|
+
readonly outcome: "applied" | "rejected";
|
|
113
|
+
readonly nextState?: MeshJsonValue;
|
|
114
|
+
/** Defaults to explicit opaque JSON schema 0 for source compatibility. */
|
|
115
|
+
readonly nextStateDescriptor?: MeshDurableSnapshotDescriptor;
|
|
116
|
+
readonly journal: readonly MeshDurableJournalDraft[];
|
|
117
|
+
readonly outbox: readonly MeshDurableOutboundDraft[];
|
|
118
|
+
readonly reasonCode?: string;
|
|
119
|
+
}
|
|
120
|
+
/** Caller-owned snapshot content identity, separate from wrapper/DB versions. */
|
|
121
|
+
export interface MeshDurableSnapshotDescriptor {
|
|
122
|
+
readonly format: string;
|
|
123
|
+
readonly schemaVersion: number;
|
|
124
|
+
}
|
|
125
|
+
/** Provider-neutral codec contract for typed snapshot content. */
|
|
126
|
+
export interface MeshDurableSnapshotCodec<T = unknown> {
|
|
127
|
+
readonly descriptor: MeshDurableSnapshotDescriptor;
|
|
128
|
+
/** Exact content schemas accepted by decode; defaults to the current one. */
|
|
129
|
+
readonly readableSchemaVersions?: readonly number[];
|
|
130
|
+
encode(value: T): MeshJsonValue;
|
|
131
|
+
decode(state: MeshJsonValue, schemaVersion?: number): T;
|
|
132
|
+
/** Deterministically migrates one readable legacy schema to the current one. */
|
|
133
|
+
migrate?(state: MeshJsonValue, fromSchemaVersion: number): MeshJsonValue;
|
|
134
|
+
}
|
|
135
|
+
export interface MeshDurableSnapshotEncoding {
|
|
136
|
+
readonly descriptor: MeshDurableSnapshotDescriptor;
|
|
137
|
+
readonly state: MeshJsonValue;
|
|
138
|
+
readonly stateDigest: string;
|
|
139
|
+
}
|
|
140
|
+
export interface MeshDurableSnapshotCodecRegistry {
|
|
141
|
+
readonly formats: readonly string[];
|
|
142
|
+
encode<T>(format: string, value: T): Promise<MeshDurableSnapshotEncoding>;
|
|
143
|
+
decode<T = unknown>(snapshot: MeshDurablePeerSnapshot): Promise<T>;
|
|
144
|
+
migrate(snapshot: MeshDurablePeerSnapshot): Promise<MeshDurableSnapshotEncoding>;
|
|
145
|
+
}
|
|
146
|
+
export type MeshDurableCommitResult = {
|
|
147
|
+
readonly committed: true;
|
|
148
|
+
readonly snapshot?: MeshDurablePeerSnapshot;
|
|
149
|
+
readonly journal: readonly MeshDurableJournalEntry[];
|
|
150
|
+
readonly outbox: readonly MeshDurableOutboxRecord[];
|
|
151
|
+
} | {
|
|
152
|
+
readonly committed: false;
|
|
153
|
+
readonly code: "claim_lost" | "outbox_conflict" | "revision_conflict" | "transition_conflict";
|
|
154
|
+
};
|
|
155
|
+
export interface MeshDurableAbandonInput {
|
|
156
|
+
readonly inbox: MeshDurableInboxRecord;
|
|
157
|
+
readonly retryAfterMs: number;
|
|
158
|
+
readonly reasonCode?: string;
|
|
159
|
+
}
|
|
160
|
+
export type MeshDurableOutboxSettlement = {
|
|
161
|
+
readonly disposition: "delivered" | "permanent_rejection";
|
|
162
|
+
readonly reasonCode?: string;
|
|
163
|
+
} | {
|
|
164
|
+
readonly disposition: "retryable";
|
|
165
|
+
readonly retryAfterMs: number;
|
|
166
|
+
readonly reasonCode?: string;
|
|
167
|
+
};
|
|
168
|
+
export interface MeshDurableSettleOutboxInput {
|
|
169
|
+
readonly outbox: MeshDurableOutboxRecord;
|
|
170
|
+
readonly settlement: MeshDurableOutboxSettlement;
|
|
171
|
+
}
|
|
172
|
+
export interface MeshDurableJournalQuery {
|
|
173
|
+
readonly scope: MeshDurableScope;
|
|
174
|
+
readonly afterSequence?: number;
|
|
175
|
+
readonly limit: number;
|
|
176
|
+
}
|
|
177
|
+
export interface MeshDurableRepository {
|
|
178
|
+
receive(input: {
|
|
179
|
+
readonly scope: MeshDurableScope;
|
|
180
|
+
readonly envelope: SignedMeshEnvelope;
|
|
181
|
+
}): Promise<MeshDurableReceiveResult>;
|
|
182
|
+
loadSnapshot(scope: MeshDurableScope): Promise<MeshDurablePeerSnapshot | undefined>;
|
|
183
|
+
claimInbox(options: MeshDurableClaimOptions): Promise<readonly MeshDurableInboxRecord[]>;
|
|
184
|
+
commitInboxTransition(input: MeshDurableCommitInboxInput): Promise<MeshDurableCommitResult>;
|
|
185
|
+
abandonInbox(input: MeshDurableAbandonInput): Promise<boolean>;
|
|
186
|
+
claimOutbox(options: MeshDurableClaimOptions): Promise<readonly MeshDurableOutboxRecord[]>;
|
|
187
|
+
settleOutbox(input: MeshDurableSettleOutboxInput): Promise<boolean>;
|
|
188
|
+
inspectJournal(query: MeshDurableJournalQuery): Promise<readonly MeshDurableJournalEntry[]>;
|
|
189
|
+
close?(): void | Promise<void>;
|
|
190
|
+
}
|
|
191
|
+
export interface MeshDurableInboxProcessorInput {
|
|
192
|
+
readonly scope: MeshDurableScope;
|
|
193
|
+
readonly inbox: MeshDurableInboxRecord;
|
|
194
|
+
readonly snapshot?: MeshDurablePeerSnapshot;
|
|
195
|
+
readonly signal?: AbortSignal;
|
|
196
|
+
}
|
|
197
|
+
export type MeshDurableInboxProcessorResult = {
|
|
198
|
+
readonly outcome: "applied";
|
|
199
|
+
readonly transitionId?: string;
|
|
200
|
+
readonly nextState: MeshJsonValue;
|
|
201
|
+
readonly journal?: readonly MeshDurableJournalDraft[];
|
|
202
|
+
readonly outbox?: readonly MeshDurableOutboundDraft[];
|
|
203
|
+
} | {
|
|
204
|
+
readonly outcome: "rejected";
|
|
205
|
+
readonly transitionId?: string;
|
|
206
|
+
readonly reasonCode: string;
|
|
207
|
+
readonly journal?: readonly MeshDurableJournalDraft[];
|
|
208
|
+
};
|
|
209
|
+
export type MeshDurableInboxProcessor = (input: MeshDurableInboxProcessorInput) => MeshDurableInboxProcessorResult | Promise<MeshDurableInboxProcessorResult>;
|
|
210
|
+
export type MeshDurableOutboxDeliver = (outbox: MeshDurableOutboxRecord, signal?: AbortSignal) => MeshDurableOutboxSettlement | Promise<MeshDurableOutboxSettlement>;
|
|
211
|
+
export interface MeshDurableWorkerDiagnostic {
|
|
212
|
+
readonly kind: "inbox.abandoned" | "inbox.commit_conflict" | "inbox.processor_failure" | "outbox.delivery_failure" | "outbox.settle_conflict";
|
|
213
|
+
readonly recordId: string;
|
|
214
|
+
readonly code?: string;
|
|
215
|
+
}
|
|
216
|
+
export interface MeshDurableWorkerOptions {
|
|
217
|
+
readonly repository: MeshDurableRepository;
|
|
218
|
+
readonly scope: MeshDurableScope;
|
|
219
|
+
readonly workerId: string;
|
|
220
|
+
readonly processInbox: MeshDurableInboxProcessor;
|
|
221
|
+
readonly deliverOutbox: MeshDurableOutboxDeliver;
|
|
222
|
+
readonly inboxBatchSize?: number;
|
|
223
|
+
readonly outboxBatchSize?: number;
|
|
224
|
+
readonly leaseDurationMs?: number;
|
|
225
|
+
readonly failureRetryAfterMs?: number;
|
|
226
|
+
readonly onDiagnostic?: (diagnostic: MeshDurableWorkerDiagnostic) => void;
|
|
227
|
+
}
|
|
228
|
+
export interface MeshDurableWorkerBatchResult {
|
|
229
|
+
readonly claimed: number;
|
|
230
|
+
readonly completed: number;
|
|
231
|
+
readonly conflicted: number;
|
|
232
|
+
readonly failed: number;
|
|
233
|
+
}
|
|
234
|
+
export interface MeshDurableWorkerRunResult {
|
|
235
|
+
readonly inbox: MeshDurableWorkerBatchResult;
|
|
236
|
+
readonly outbox: MeshDurableWorkerBatchResult;
|
|
237
|
+
}
|
|
238
|
+
export interface MeshDurableWorker {
|
|
239
|
+
runInboxBatch(signal?: AbortSignal): Promise<MeshDurableWorkerBatchResult>;
|
|
240
|
+
runOutboxBatch(signal?: AbortSignal): Promise<MeshDurableWorkerBatchResult>;
|
|
241
|
+
runOnce(signal?: AbortSignal): Promise<MeshDurableWorkerRunResult>;
|
|
242
|
+
start(options: {
|
|
243
|
+
readonly signal: AbortSignal;
|
|
244
|
+
readonly idleDelayMs?: number;
|
|
245
|
+
}): Promise<void>;
|
|
246
|
+
}
|
|
247
|
+
/** Creates an inert worker. Work starts only through an explicit run method. */
|
|
248
|
+
export declare function createMeshDurableWorker(options: MeshDurableWorkerOptions): MeshDurableWorker;
|
|
249
|
+
export declare function normalizeMeshDurableScope(scope: MeshDurableScope): MeshDurableScope;
|
|
250
|
+
/**
|
|
251
|
+
* Creates an immutable, exact-format snapshot codec registry. Codec selection
|
|
252
|
+
* never guesses from state shape and every decode verifies the stored digest.
|
|
253
|
+
*/
|
|
254
|
+
export declare function createMeshDurableSnapshotCodecRegistry(codecs: readonly MeshDurableSnapshotCodec[], options?: {
|
|
255
|
+
readonly protocolOptions?: MeshProtocolOptions;
|
|
256
|
+
readonly crypto?: Crypto;
|
|
257
|
+
}): MeshDurableSnapshotCodecRegistry;
|
|
258
|
+
export declare function computeMeshDurableValueDigest(value: MeshJsonValue, options?: {
|
|
259
|
+
readonly protocolOptions?: MeshProtocolOptions;
|
|
260
|
+
readonly crypto?: Crypto;
|
|
261
|
+
}): Promise<string>;
|
|
262
|
+
export declare function createMeshDurableJournalEntry(input: {
|
|
263
|
+
readonly scope: MeshDurableScope;
|
|
264
|
+
readonly sequence: number;
|
|
265
|
+
readonly previousDigest: string;
|
|
266
|
+
readonly transitionId: string;
|
|
267
|
+
readonly inboxMessageId?: string;
|
|
268
|
+
readonly snapshotRevision: number;
|
|
269
|
+
readonly snapshotDigest: string;
|
|
270
|
+
readonly draft: MeshDurableJournalDraft;
|
|
271
|
+
readonly occurredAt: string;
|
|
272
|
+
readonly crypto?: Crypto;
|
|
273
|
+
readonly schemaVersion?: MeshDurabilitySchemaVersion;
|
|
274
|
+
}): Promise<MeshDurableJournalEntry>;
|
|
275
|
+
export declare function verifyMeshDurableJournal(input: {
|
|
276
|
+
readonly entries: readonly MeshDurableJournalEntry[];
|
|
277
|
+
readonly anchorDigest?: string;
|
|
278
|
+
readonly anchorSequence?: number;
|
|
279
|
+
readonly expectedHeadDigest?: string;
|
|
280
|
+
readonly expectedHeadSequence?: number;
|
|
281
|
+
readonly crypto?: Crypto;
|
|
282
|
+
}): Promise<boolean>;
|
|
283
|
+
//# sourceMappingURL=durability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durability.d.ts","sourceRoot":"","sources":["../src/durability.ts"],"names":[],"mappings":"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"}
|