@agentplat/mesh-postgres 0.3.0-beta.2 → 0.3.0-beta.4

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 CHANGED
@@ -33,6 +33,33 @@ resumable batches. `getRollbackReadiness` reports whether retained Beta rows
33
33
  can be read by the preceding Alpha reader, including v1 envelopes, typed snapshots and
34
34
  schema-2 journal entries that cannot be represented by that reader.
35
35
 
36
+ Migration 3 is also additive. It adds an opt-in planning/recovery stream whose
37
+ scope binds the exact tenant, policy domain, mission intent revision and digest,
38
+ selection-policy digest, peer and peer instance. The stream stores a strictly
39
+ validated `PlanningReducerSnapshotV1`, closed recovery high-waters and one
40
+ hash-chained event per compare-and-swap commit.
41
+
42
+ `PostgresPlanningRecoveryDurableRepositoryV1` never treats a planning record as
43
+ execution authority. Assignment epochs must advance exactly once and rotate the
44
+ fencing token; replay, revocation, budget, logical-time, plan and fragment
45
+ high-waters cannot decrease. A snapshot may initialize an empty stream, while a
46
+ non-empty stream accepts only its identical snapshot through `restore()`; later
47
+ state must arrive through verified commits so the local journal cannot acquire
48
+ an unverifiable gap or fork.
49
+
50
+ Construct recovery state with `createPlanningRecoveryStateV1`, bind it to a real
51
+ planning snapshot with `createPlanningRecoveryDurableStateV1`, and then call
52
+ `initialize`, `commit`, `read` or `inspectEvents`. The in-memory implementation
53
+ uses the same validation and is intended for conformance tests, not as durable
54
+ storage.
55
+
56
+ Migration 4 adds causal outbox dependencies. A transition may publish an
57
+ ordered effect chain by setting `dependsOnEffectId` to an earlier effect in the
58
+ same atomic commit or to a retained effect from an earlier commit in the same
59
+ durable peer scope. PostgreSQL rejects missing or cross-scope predecessors and
60
+ will not claim the dependent effect until the predecessor is durably settled
61
+ as delivered.
62
+
36
63
  The pool remains caller-owned. `repository.close()` intentionally does not call
37
64
  `pool.end()`.
38
65
 
@@ -45,8 +72,10 @@ outbox insert and inbox settlement commit atomically.
45
72
 
46
73
  Outbox delivery is at least once. A worker may retry after the receiver has
47
74
  already committed, so receivers must use the durable message key and Mesh replay
48
- boundary. Database claims schedule work; they do not create Objective, lease,
49
- assignment or action authority.
75
+ boundary. Permanently rejecting a predecessor atomically rejects its dependent
76
+ chain with `dependency_rejected`; dependents are never delivered out of order
77
+ or left as apparently claimable backlog. Database claims schedule work; they do
78
+ not create Objective, lease, assignment or action authority.
50
79
 
51
80
  Every loaded envelope is passed through the strict protocol parser, every
52
81
  snapshot digest is recomputed, and every inspected journal entry is recomputed
package/dist/index.d.ts CHANGED
@@ -2,5 +2,6 @@ export { PostgresMeshDurableRepository, type PostgresMeshDurableRepositoryOption
2
2
  export { getMigrationStatus, getCompatibilityStatus, getRollbackReadiness, migrationDirectory, rollbackConfirmation, rollbackMigrations, runMigrations, type MeshPostgresMigrationOptions, type MeshPostgresCompatibilityStatus, type MeshPostgresRollbackReadiness, } from "./migrations.js";
3
3
  export { checkPostgresPool, createPostgresPool } from "@agentplat/postgres";
4
4
  export { backfillLegacySnapshots, type MeshPostgresSnapshotBackfillOptions, type MeshPostgresSnapshotBackfillResult, } from "./snapshot-backfill.js";
5
+ export { InMemoryPlanningRecoveryDurableRepositoryV1, PLANNING_RECOVERY_DURABILITY_GENESIS_DIGEST, PLANNING_RECOVERY_DURABILITY_SCHEMA_VERSION, PostgresPlanningRecoveryDurableRepositoryV1, createPlanningRecoveryDurableEventV1, createPlanningRecoveryStateV1, createPlanningRecoveryDurableStateV1, validatePlanningRecoveryStateV1, validatePlanningRecoveryDurableStateV1, verifyPlanningRecoveryDurableJournalV1, type PlanningRecoveryDurableCommitInputV1, type PlanningRecoveryDurableCommitResultV1, type PlanningRecoveryDurableEventDraftV1, type PlanningRecoveryDurableEventV1, type PlanningRecoveryDurableRepositoryV1, type PlanningRecoveryDurableRestoreResultV1, type PlanningRecoveryDurableScopeV1, type PlanningRecoveryDurableSnapshotV1, type PlanningRecoveryDurableStateInputV1, type PlanningRecoveryDurableStateV1, type PlanningRecoveryDurableHighWatersV1, type PlanningRecoveryStateV1, type PostgresPlanningRecoveryDurableRepositoryOptionsV1, } from "./planning-recovery.js";
5
6
  export type { PostgresHealthOptions, PostgresPoolHealth, PostgresPoolOptions, } from "@agentplat/postgres";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,KAAK,oCAAoC,GAC1C,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,GACnC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,uBAAuB,EACvB,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,GACxC,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,KAAK,oCAAoC,GAC1C,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,GACnC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,uBAAuB,EACvB,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,GACxC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,2CAA2C,EAC3C,2CAA2C,EAC3C,2CAA2C,EAC3C,2CAA2C,EAC3C,oCAAoC,EACpC,6BAA6B,EAC7B,oCAAoC,EACpC,+BAA+B,EAC/B,sCAAsC,EACtC,sCAAsC,EACtC,KAAK,oCAAoC,EACzC,KAAK,qCAAqC,EAC1C,KAAK,mCAAmC,EACxC,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,EACxC,KAAK,sCAAsC,EAC3C,KAAK,8BAA8B,EACnC,KAAK,iCAAiC,EACtC,KAAK,mCAAmC,EACxC,KAAK,8BAA8B,EACnC,KAAK,mCAAmC,EACxC,KAAK,uBAAuB,EAC5B,KAAK,kDAAkD,GACxD,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -2,4 +2,5 @@ export { PostgresMeshDurableRepository, } from "./repository.js";
2
2
  export { getMigrationStatus, getCompatibilityStatus, getRollbackReadiness, migrationDirectory, rollbackConfirmation, rollbackMigrations, runMigrations, } from "./migrations.js";
3
3
  export { checkPostgresPool, createPostgresPool } from "@agentplat/postgres";
4
4
  export { backfillLegacySnapshots, } from "./snapshot-backfill.js";
5
+ export { InMemoryPlanningRecoveryDurableRepositoryV1, PLANNING_RECOVERY_DURABILITY_GENESIS_DIGEST, PLANNING_RECOVERY_DURABILITY_SCHEMA_VERSION, PostgresPlanningRecoveryDurableRepositoryV1, createPlanningRecoveryDurableEventV1, createPlanningRecoveryStateV1, createPlanningRecoveryDurableStateV1, validatePlanningRecoveryStateV1, validatePlanningRecoveryDurableStateV1, verifyPlanningRecoveryDurableJournalV1, } from "./planning-recovery.js";
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,GAE9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,GAId,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,uBAAuB,GAGxB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,GAE9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,GAId,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,uBAAuB,GAGxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,2CAA2C,EAC3C,2CAA2C,EAC3C,2CAA2C,EAC3C,2CAA2C,EAC3C,oCAAoC,EACpC,6BAA6B,EAC7B,oCAAoC,EACpC,+BAA+B,EAC/B,sCAAsC,EACtC,sCAAsC,GAcvC,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAQ/B,eAAO,MAAM,kBAAkB,QAE9B,CAAC;AAEF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAuED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;CAChD;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC;AAED,uEAAuE;AACvE,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,+BAA+B,CAAC,CA6B1C;AAED,uEAAuE;AACvE,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,6BAA6B,CAAC,CA8CxC;AAUD,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,uBAAuB,CAAC,CAOlC;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,uBAAuB,CAAC,CAMlC;AAED,wBAAgB,oBAAoB,CAClC,MAAM,SAAwB,EAC9B,OAAO,SAAI,GACV,MAAM,CAER;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,4BAA4B,GAAG;IACtC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C,GACA,OAAO,CAAC,uBAAuB,CAAC,CA0BlC"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAU/B,eAAO,MAAM,kBAAkB,QAE9B,CAAC;AAEF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AA0HD,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;CAChD;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC;AAED,uEAAuE;AACvE,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,+BAA+B,CAAC,CA6B1C;AAED,uEAAuE;AACvE,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,6BAA6B,CAAC,CA8CxC;AAUD,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,uBAAuB,CAAC,CAOlC;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,uBAAuB,CAAC,CAMlC;AAED,wBAAgB,oBAAoB,CAClC,MAAM,SAAwB,EAC9B,OAAO,SAAI,GACV,MAAM,CAER;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,4BAA4B,GAAG;IACtC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C,GACA,OAAO,CAAC,uBAAuB,CAAC,CA4BlC"}
@@ -5,6 +5,8 @@ const applicationId = "@agentplat/mesh-postgres";
5
5
  const migrationNames = [
6
6
  "001_mesh_durability",
7
7
  "002_mesh_compatibility_metadata",
8
+ "003_planning_recovery_durability",
9
+ "004_mesh_outbox_dependencies",
8
10
  ];
9
11
  export const migrationDirectory = fileURLToPath(new URL("../migrations/", import.meta.url));
10
12
  async function migrations() {
@@ -65,6 +67,57 @@ async function migrations() {
65
67
  )) AS present
66
68
  `,
67
69
  },
70
+ {
71
+ version: 3,
72
+ name: migrationNames[2],
73
+ up: sources[4],
74
+ down: sources[5],
75
+ destructiveDown: true,
76
+ adoptIf: `
77
+ SELECT
78
+ to_regclass('__AGENTPLAT_SCHEMA__.mesh_planning_recovery_states') IS NOT NULL
79
+ AND to_regclass('__AGENTPLAT_SCHEMA__.mesh_planning_recovery_events') IS NOT NULL
80
+ AS present
81
+ `,
82
+ },
83
+ {
84
+ version: 4,
85
+ name: migrationNames[3],
86
+ up: sources[6],
87
+ down: sources[7],
88
+ destructiveDown: true,
89
+ adoptIf: `
90
+ SELECT
91
+ EXISTS (
92
+ SELECT 1
93
+ FROM information_schema.columns
94
+ WHERE table_schema = '__AGENTPLAT_SCHEMA__'
95
+ AND table_name = 'mesh_outbox'
96
+ AND column_name = 'depends_on_effect_id'
97
+ AND data_type = 'text'
98
+ AND is_nullable = 'YES'
99
+ )
100
+ AND EXISTS (
101
+ SELECT 1
102
+ FROM information_schema.table_constraints
103
+ WHERE table_schema = '__AGENTPLAT_SCHEMA__'
104
+ AND table_name = 'mesh_outbox'
105
+ AND constraint_name = 'mesh_outbox_dependency_not_self_check'
106
+ AND constraint_type = 'CHECK'
107
+ )
108
+ AND EXISTS (
109
+ SELECT 1
110
+ FROM information_schema.table_constraints
111
+ WHERE table_schema = '__AGENTPLAT_SCHEMA__'
112
+ AND table_name = 'mesh_outbox'
113
+ AND constraint_name = 'mesh_outbox_dependency_scope_fkey'
114
+ AND constraint_type = 'FOREIGN KEY'
115
+ )
116
+ AND to_regclass(
117
+ '__AGENTPLAT_SCHEMA__.mesh_outbox_dependency_idx'
118
+ ) IS NOT NULL AS present
119
+ `,
120
+ },
68
121
  ];
69
122
  }
70
123
  /** Reports expand-first adoption without mutating application rows. */
@@ -147,14 +200,16 @@ export function rollbackConfirmation(schema = defaultPostgresSchema, version = 2
147
200
  return postgresRollbackConfirmation(applicationId, schema, version);
148
201
  }
149
202
  export async function rollbackMigrations(pool, options) {
150
- if (options.expectedCurrentVersion === 2) {
203
+ if (options.expectedCurrentVersion >= 2) {
151
204
  if (options.verifiedBackup !== true) {
152
205
  throw new TypeError("Mesh migration rollback requires a verified external backup");
153
206
  }
154
- const readiness = await getRollbackReadiness(pool, options);
155
- if (!readiness.readyForAlphaReader &&
156
- options.allowIncompatibleRows !== true) {
157
- throw new TypeError("Mesh migration rollback requires drained v1 rows or an explicit loss decision");
207
+ if (options.expectedCurrentVersion === 2) {
208
+ const readiness = await getRollbackReadiness(pool, options);
209
+ if (!readiness.readyForAlphaReader &&
210
+ options.allowIncompatibleRows !== true) {
211
+ throw new TypeError("Mesh migration rollback requires drained v1 rows or an explicit loss decision");
212
+ }
158
213
  }
159
214
  }
160
215
  return rollbackPostgresMigration(pool, {
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import type { PlanningReducerSnapshotV1 } from "@agentplat/collective-planning";
2
+ import type { MeshJsonValue } from "@agentplat/mesh-protocol";
3
+ import type { Pool } from "pg";
4
+ export declare const PLANNING_RECOVERY_DURABILITY_SCHEMA_VERSION: 1;
5
+ export declare const PLANNING_RECOVERY_DURABILITY_GENESIS_DIGEST = "sha256:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
6
+ /** A stream is permanently bound to one local reducer, intent revision and policy. */
7
+ export interface PlanningRecoveryDurableScopeV1 {
8
+ readonly tenantId: string;
9
+ readonly policyDomainId: string;
10
+ readonly missionId: string;
11
+ readonly intentRevision: number;
12
+ readonly intentDigest: string;
13
+ readonly policyDigest: string;
14
+ readonly peerId: string;
15
+ readonly peerInstanceId: string;
16
+ }
17
+ /** Closed recovery state; high-waters fence stale replays, leases and revocations. */
18
+ export interface PlanningRecoveryStateV1 {
19
+ readonly schemaVersion: 1;
20
+ readonly assignmentEpochHighWater: number;
21
+ readonly replaySequenceHighWater: number;
22
+ readonly revocationHighWater: number;
23
+ readonly budgetReservationHighWater: number;
24
+ readonly fencingToken: string;
25
+ readonly recoveryDigest: string;
26
+ }
27
+ export interface PlanningRecoveryDurableHighWatersV1 {
28
+ readonly logicalTimeMs: number;
29
+ readonly intentRevision: number;
30
+ readonly planRevision: number;
31
+ readonly fragmentRevision: number;
32
+ readonly budgetReservationUnits: number;
33
+ readonly replaySequence: number;
34
+ readonly assignmentEpoch: number;
35
+ readonly revocation: number;
36
+ }
37
+ export interface PlanningRecoveryDurableStateV1 {
38
+ readonly schemaVersion: typeof PLANNING_RECOVERY_DURABILITY_SCHEMA_VERSION;
39
+ readonly scope: PlanningRecoveryDurableScopeV1;
40
+ readonly generation: number;
41
+ readonly planningSnapshot: PlanningReducerSnapshotV1;
42
+ readonly recovery: PlanningRecoveryStateV1;
43
+ readonly highWaters: PlanningRecoveryDurableHighWatersV1;
44
+ readonly stateDigest: string;
45
+ }
46
+ export interface PlanningRecoveryDurableEventDraftV1 {
47
+ readonly eventId: string;
48
+ readonly kind: string;
49
+ readonly logicalTimeMs: number;
50
+ readonly payload: MeshJsonValue;
51
+ }
52
+ export interface PlanningRecoveryDurableEventV1 extends PlanningRecoveryDurableEventDraftV1 {
53
+ readonly schemaVersion: 1;
54
+ readonly scope: PlanningRecoveryDurableScopeV1;
55
+ readonly sequence: number;
56
+ readonly previousDigest: string;
57
+ readonly digest: string;
58
+ readonly stateGeneration: number;
59
+ readonly stateDigest: string;
60
+ readonly occurredAt: string;
61
+ }
62
+ export interface PlanningRecoveryDurableSnapshotV1 {
63
+ readonly schemaVersion: 1;
64
+ readonly state: PlanningRecoveryDurableStateV1;
65
+ readonly eventHeadSequence: number;
66
+ readonly eventHeadDigest: string;
67
+ readonly snapshotDigest: string;
68
+ }
69
+ export interface PlanningRecoveryDurableStateInputV1 {
70
+ readonly scope: PlanningRecoveryDurableScopeV1;
71
+ readonly generation: number;
72
+ readonly planningSnapshot: PlanningReducerSnapshotV1;
73
+ readonly recovery: PlanningRecoveryStateV1;
74
+ }
75
+ export interface PlanningRecoveryDurableCommitInputV1 {
76
+ readonly expectedGeneration: number;
77
+ readonly expectedStateDigest: string;
78
+ readonly nextState: PlanningRecoveryDurableStateV1;
79
+ readonly event: PlanningRecoveryDurableEventDraftV1;
80
+ }
81
+ export type PlanningRecoveryDurableCommitResultV1 = {
82
+ readonly committed: true;
83
+ readonly state: PlanningRecoveryDurableStateV1;
84
+ readonly event: PlanningRecoveryDurableEventV1;
85
+ } | {
86
+ readonly committed: false;
87
+ readonly code: "state_conflict" | "rollback_rejected";
88
+ };
89
+ export type PlanningRecoveryDurableRestoreResultV1 = {
90
+ readonly restored: true;
91
+ readonly snapshot: PlanningRecoveryDurableSnapshotV1;
92
+ } | {
93
+ readonly restored: false;
94
+ readonly code: "existing" | "rollback_rejected";
95
+ };
96
+ export interface PlanningRecoveryDurableRepositoryV1 {
97
+ initialize(state: PlanningRecoveryDurableStateV1): Promise<"initialized" | "existing">;
98
+ read(): Promise<PlanningRecoveryDurableSnapshotV1>;
99
+ commit(input: PlanningRecoveryDurableCommitInputV1): Promise<PlanningRecoveryDurableCommitResultV1>;
100
+ restore(snapshot: PlanningRecoveryDurableSnapshotV1): Promise<PlanningRecoveryDurableRestoreResultV1>;
101
+ inspectEvents(input?: {
102
+ readonly afterSequence?: number;
103
+ readonly limit?: number;
104
+ }): Promise<readonly PlanningRecoveryDurableEventV1[]>;
105
+ }
106
+ /** Canonical constructor; it validates the real reducer snapshot before persistence. */
107
+ export declare function createPlanningRecoveryDurableStateV1(input: PlanningRecoveryDurableStateInputV1): Promise<PlanningRecoveryDurableStateV1>;
108
+ export declare function createPlanningRecoveryStateV1(input: Omit<PlanningRecoveryStateV1, "recoveryDigest">): Promise<PlanningRecoveryStateV1>;
109
+ export declare function validatePlanningRecoveryStateV1(input: unknown): Promise<PlanningRecoveryStateV1>;
110
+ export declare function validatePlanningRecoveryDurableStateV1(input: unknown): Promise<PlanningRecoveryDurableStateV1>;
111
+ export declare function createPlanningRecoveryDurableEventV1(input: {
112
+ readonly scope: PlanningRecoveryDurableScopeV1;
113
+ readonly sequence: number;
114
+ readonly previousDigest: string;
115
+ readonly stateGeneration: number;
116
+ readonly stateDigest: string;
117
+ readonly event: PlanningRecoveryDurableEventDraftV1;
118
+ readonly occurredAt: string;
119
+ }): Promise<PlanningRecoveryDurableEventV1>;
120
+ export declare function verifyPlanningRecoveryDurableJournalV1(input: {
121
+ readonly entries: readonly PlanningRecoveryDurableEventV1[];
122
+ readonly anchorSequence?: number;
123
+ readonly anchorDigest?: string;
124
+ readonly expectedHeadSequence?: number;
125
+ readonly expectedHeadDigest?: string;
126
+ }): Promise<boolean>;
127
+ /** In-memory conformance layer. It deliberately shares all validation with PostgreSQL. */
128
+ export declare class InMemoryPlanningRecoveryDurableRepositoryV1 implements PlanningRecoveryDurableRepositoryV1 {
129
+ #private;
130
+ readonly scope: PlanningRecoveryDurableScopeV1;
131
+ constructor(scope: PlanningRecoveryDurableScopeV1);
132
+ initialize(input: PlanningRecoveryDurableStateV1): Promise<"existing" | "initialized">;
133
+ read(): Promise<PlanningRecoveryDurableSnapshotV1>;
134
+ commit(input: PlanningRecoveryDurableCommitInputV1): Promise<PlanningRecoveryDurableCommitResultV1>;
135
+ restore(input: PlanningRecoveryDurableSnapshotV1): Promise<PlanningRecoveryDurableRestoreResultV1>;
136
+ inspectEvents(input?: {
137
+ readonly afterSequence?: number;
138
+ readonly limit?: number;
139
+ }): Promise<readonly PlanningRecoveryDurableEventV1[]>;
140
+ }
141
+ export interface PostgresPlanningRecoveryDurableRepositoryOptionsV1 extends PlanningRecoveryDurableScopeV1 {
142
+ readonly schema?: string;
143
+ }
144
+ export declare class PostgresPlanningRecoveryDurableRepositoryV1 implements PlanningRecoveryDurableRepositoryV1 {
145
+ #private;
146
+ readonly pool: Pool;
147
+ constructor(pool: Pool, options: PostgresPlanningRecoveryDurableRepositoryOptionsV1);
148
+ initialize(input: PlanningRecoveryDurableStateV1): Promise<"existing" | "initialized">;
149
+ read(): Promise<Readonly<{
150
+ snapshotDigest: string;
151
+ schemaVersion: 1;
152
+ state: PlanningRecoveryDurableStateV1;
153
+ eventHeadSequence: number;
154
+ eventHeadDigest: string;
155
+ }>>;
156
+ commit(input: PlanningRecoveryDurableCommitInputV1): Promise<PlanningRecoveryDurableCommitResultV1>;
157
+ restore(input: PlanningRecoveryDurableSnapshotV1): Promise<PlanningRecoveryDurableRestoreResultV1>;
158
+ inspectEvents(input?: {
159
+ readonly afterSequence?: number;
160
+ readonly limit?: number;
161
+ }): Promise<readonly PlanningRecoveryDurableEventV1[]>;
162
+ }
163
+ //# sourceMappingURL=planning-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning-recovery.d.ts","sourceRoot":"","sources":["../src/planning-recovery.ts"],"names":[],"mappings":"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"}