@aephia/atlas-kit 0.0.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 (279) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +124 -0
  3. package/dist/bindings.d.ts +11 -0
  4. package/dist/bindings.d.ts.map +1 -0
  5. package/dist/bindings.js +11 -0
  6. package/dist/bindings.js.map +1 -0
  7. package/dist/cargo/actions/index.d.ts +122 -0
  8. package/dist/cargo/actions/index.d.ts.map +1 -0
  9. package/dist/cargo/actions/index.js +526 -0
  10. package/dist/cargo/actions/index.js.map +1 -0
  11. package/dist/cargo/index.d.ts +77 -0
  12. package/dist/cargo/index.d.ts.map +1 -0
  13. package/dist/cargo/index.js +102 -0
  14. package/dist/cargo/index.js.map +1 -0
  15. package/dist/claim-stakes/index.d.ts +64 -0
  16. package/dist/claim-stakes/index.d.ts.map +1 -0
  17. package/dist/claim-stakes/index.js +97 -0
  18. package/dist/claim-stakes/index.js.map +1 -0
  19. package/dist/client/context.d.ts +21 -0
  20. package/dist/client/context.d.ts.map +1 -0
  21. package/dist/client/context.js +1374 -0
  22. package/dist/client/context.js.map +1 -0
  23. package/dist/client/contracts.d.ts +671 -0
  24. package/dist/client/contracts.d.ts.map +1 -0
  25. package/dist/client/contracts.js +2 -0
  26. package/dist/client/contracts.js.map +1 -0
  27. package/dist/client/deployments.d.ts +3 -0
  28. package/dist/client/deployments.d.ts.map +1 -0
  29. package/dist/client/deployments.js +2 -0
  30. package/dist/client/deployments.js.map +1 -0
  31. package/dist/client/errors.d.ts +227 -0
  32. package/dist/client/errors.d.ts.map +1 -0
  33. package/dist/client/errors.js +288 -0
  34. package/dist/client/errors.js.map +1 -0
  35. package/dist/client/index.d.ts +7 -0
  36. package/dist/client/index.d.ts.map +1 -0
  37. package/dist/client/index.js +5 -0
  38. package/dist/client/index.js.map +1 -0
  39. package/dist/client/lifecycle.d.ts +4 -0
  40. package/dist/client/lifecycle.d.ts.map +1 -0
  41. package/dist/client/lifecycle.js +10 -0
  42. package/dist/client/lifecycle.js.map +1 -0
  43. package/dist/client/provider-errors.d.ts +9 -0
  44. package/dist/client/provider-errors.d.ts.map +1 -0
  45. package/dist/client/provider-errors.js +12 -0
  46. package/dist/client/provider-errors.js.map +1 -0
  47. package/dist/client/reconciliation.d.ts +10 -0
  48. package/dist/client/reconciliation.d.ts.map +1 -0
  49. package/dist/client/reconciliation.js +9 -0
  50. package/dist/client/reconciliation.js.map +1 -0
  51. package/dist/client/refs.d.ts +23 -0
  52. package/dist/client/refs.d.ts.map +1 -0
  53. package/dist/client/refs.js +12 -0
  54. package/dist/client/refs.js.map +1 -0
  55. package/dist/combat/index.d.ts +256 -0
  56. package/dist/combat/index.d.ts.map +1 -0
  57. package/dist/combat/index.js +222 -0
  58. package/dist/combat/index.js.map +1 -0
  59. package/dist/crafting/index.d.ts +308 -0
  60. package/dist/crafting/index.d.ts.map +1 -0
  61. package/dist/crafting/index.js +400 -0
  62. package/dist/crafting/index.js.map +1 -0
  63. package/dist/factions/index.d.ts +292 -0
  64. package/dist/factions/index.d.ts.map +1 -0
  65. package/dist/factions/index.js +334 -0
  66. package/dist/factions/index.js.map +1 -0
  67. package/dist/fleets/actions/index.d.ts +200 -0
  68. package/dist/fleets/actions/index.d.ts.map +1 -0
  69. package/dist/fleets/actions/index.js +854 -0
  70. package/dist/fleets/actions/index.js.map +1 -0
  71. package/dist/fleets/index.d.ts +100 -0
  72. package/dist/fleets/index.d.ts.map +1 -0
  73. package/dist/fleets/index.js +124 -0
  74. package/dist/fleets/index.js.map +1 -0
  75. package/dist/identity/index.d.ts +225 -0
  76. package/dist/identity/index.d.ts.map +1 -0
  77. package/dist/identity/index.js +341 -0
  78. package/dist/identity/index.js.map +1 -0
  79. package/dist/index.d.ts +401 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +519 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/internal/c4/adapter.d.ts +6 -0
  84. package/dist/internal/c4/adapter.d.ts.map +1 -0
  85. package/dist/internal/c4/adapter.js +2 -0
  86. package/dist/internal/c4/adapter.js.map +1 -0
  87. package/dist/internal/c4/bindings.d.ts +4 -0
  88. package/dist/internal/c4/bindings.d.ts.map +1 -0
  89. package/dist/internal/c4/bindings.js +4 -0
  90. package/dist/internal/c4/bindings.js.map +1 -0
  91. package/dist/internal/c4/character-modifier.d.ts +5 -0
  92. package/dist/internal/c4/character-modifier.d.ts.map +1 -0
  93. package/dist/internal/c4/character-modifier.js +100 -0
  94. package/dist/internal/c4/character-modifier.js.map +1 -0
  95. package/dist/internal/c4/claim-stake.d.ts +140 -0
  96. package/dist/internal/c4/claim-stake.d.ts.map +1 -0
  97. package/dist/internal/c4/claim-stake.js +205 -0
  98. package/dist/internal/c4/claim-stake.js.map +1 -0
  99. package/dist/internal/c4/combat.d.ts +98 -0
  100. package/dist/internal/c4/combat.d.ts.map +1 -0
  101. package/dist/internal/c4/combat.js +232 -0
  102. package/dist/internal/c4/combat.js.map +1 -0
  103. package/dist/internal/c4/crafting.d.ts +170 -0
  104. package/dist/internal/c4/crafting.d.ts.map +1 -0
  105. package/dist/internal/c4/crafting.js +387 -0
  106. package/dist/internal/c4/crafting.js.map +1 -0
  107. package/dist/internal/c4/factions.d.ts +248 -0
  108. package/dist/internal/c4/factions.d.ts.map +1 -0
  109. package/dist/internal/c4/factions.js +589 -0
  110. package/dist/internal/c4/factions.js.map +1 -0
  111. package/dist/internal/c4/fleet-crew-binding.d.ts +12 -0
  112. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -0
  113. package/dist/internal/c4/fleet-crew-binding.js +51 -0
  114. package/dist/internal/c4/fleet-crew-binding.js.map +1 -0
  115. package/dist/internal/c4/fleet.d.ts +310 -0
  116. package/dist/internal/c4/fleet.d.ts.map +1 -0
  117. package/dist/internal/c4/fleet.js +393 -0
  118. package/dist/internal/c4/fleet.js.map +1 -0
  119. package/dist/internal/c4/game.d.ts +192 -0
  120. package/dist/internal/c4/game.d.ts.map +1 -0
  121. package/dist/internal/c4/game.js +396 -0
  122. package/dist/internal/c4/game.js.map +1 -0
  123. package/dist/internal/c4/identity.d.ts +193 -0
  124. package/dist/internal/c4/identity.d.ts.map +1 -0
  125. package/dist/internal/c4/identity.js +180 -0
  126. package/dist/internal/c4/identity.js.map +1 -0
  127. package/dist/internal/c4/loot-layout.d.ts +20 -0
  128. package/dist/internal/c4/loot-layout.d.ts.map +1 -0
  129. package/dist/internal/c4/loot-layout.js +29 -0
  130. package/dist/internal/c4/loot-layout.js.map +1 -0
  131. package/dist/internal/c4/loyalty.d.ts +102 -0
  132. package/dist/internal/c4/loyalty.d.ts.map +1 -0
  133. package/dist/internal/c4/loyalty.js +318 -0
  134. package/dist/internal/c4/loyalty.js.map +1 -0
  135. package/dist/internal/c4/market.d.ts +112 -0
  136. package/dist/internal/c4/market.d.ts.map +1 -0
  137. package/dist/internal/c4/market.js +247 -0
  138. package/dist/internal/c4/market.js.map +1 -0
  139. package/dist/internal/c4/pda.d.ts +6 -0
  140. package/dist/internal/c4/pda.d.ts.map +1 -0
  141. package/dist/internal/c4/pda.js +45 -0
  142. package/dist/internal/c4/pda.js.map +1 -0
  143. package/dist/internal/c4/profile-faction.d.ts +14 -0
  144. package/dist/internal/c4/profile-faction.d.ts.map +1 -0
  145. package/dist/internal/c4/profile-faction.js +69 -0
  146. package/dist/internal/c4/profile-faction.js.map +1 -0
  147. package/dist/internal/c4/rewards.d.ts +135 -0
  148. package/dist/internal/c4/rewards.d.ts.map +1 -0
  149. package/dist/internal/c4/rewards.js +305 -0
  150. package/dist/internal/c4/rewards.js.map +1 -0
  151. package/dist/internal/c4/scanning.d.ts +85 -0
  152. package/dist/internal/c4/scanning.d.ts.map +1 -0
  153. package/dist/internal/c4/scanning.js +180 -0
  154. package/dist/internal/c4/scanning.js.map +1 -0
  155. package/dist/internal/c4/starbase.d.ts +186 -0
  156. package/dist/internal/c4/starbase.d.ts.map +1 -0
  157. package/dist/internal/c4/starbase.js +259 -0
  158. package/dist/internal/c4/starbase.js.map +1 -0
  159. package/dist/internal/c4/world.d.ts +294 -0
  160. package/dist/internal/c4/world.d.ts.map +1 -0
  161. package/dist/internal/c4/world.js +417 -0
  162. package/dist/internal/c4/world.js.map +1 -0
  163. package/dist/internal/cargo.d.ts +65 -0
  164. package/dist/internal/cargo.d.ts.map +1 -0
  165. package/dist/internal/cargo.js +46 -0
  166. package/dist/internal/cargo.js.map +1 -0
  167. package/dist/internal/claim-stake.d.ts +31 -0
  168. package/dist/internal/claim-stake.d.ts.map +1 -0
  169. package/dist/internal/claim-stake.js +20 -0
  170. package/dist/internal/claim-stake.js.map +1 -0
  171. package/dist/internal/fleet.d.ts +165 -0
  172. package/dist/internal/fleet.d.ts.map +1 -0
  173. package/dist/internal/fleet.js +179 -0
  174. package/dist/internal/fleet.js.map +1 -0
  175. package/dist/internal/game-context.d.ts +4 -0
  176. package/dist/internal/game-context.d.ts.map +1 -0
  177. package/dist/internal/game-context.js +9 -0
  178. package/dist/internal/game-context.js.map +1 -0
  179. package/dist/internal/immutable-tree.d.ts +5 -0
  180. package/dist/internal/immutable-tree.d.ts.map +1 -0
  181. package/dist/internal/immutable-tree.js +47 -0
  182. package/dist/internal/immutable-tree.js.map +1 -0
  183. package/dist/internal/json.d.ts +7 -0
  184. package/dist/internal/json.d.ts.map +1 -0
  185. package/dist/internal/json.js +33 -0
  186. package/dist/internal/json.js.map +1 -0
  187. package/dist/internal/planning/authorization-adapter.d.ts +63 -0
  188. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -0
  189. package/dist/internal/planning/authorization-adapter.js +222 -0
  190. package/dist/internal/planning/authorization-adapter.js.map +1 -0
  191. package/dist/internal/read-meta.d.ts +84 -0
  192. package/dist/internal/read-meta.d.ts.map +1 -0
  193. package/dist/internal/read-meta.js +28 -0
  194. package/dist/internal/read-meta.js.map +1 -0
  195. package/dist/internal/resolved-snapshot.d.ts +3 -0
  196. package/dist/internal/resolved-snapshot.d.ts.map +1 -0
  197. package/dist/internal/resolved-snapshot.js +11 -0
  198. package/dist/internal/resolved-snapshot.js.map +1 -0
  199. package/dist/internal/zink/provider.d.ts +9 -0
  200. package/dist/internal/zink/provider.d.ts.map +1 -0
  201. package/dist/internal/zink/provider.js +213 -0
  202. package/dist/internal/zink/provider.js.map +1 -0
  203. package/dist/loyalty/index.d.ts +195 -0
  204. package/dist/loyalty/index.d.ts.map +1 -0
  205. package/dist/loyalty/index.js +289 -0
  206. package/dist/loyalty/index.js.map +1 -0
  207. package/dist/markets/index.d.ts +195 -0
  208. package/dist/markets/index.d.ts.map +1 -0
  209. package/dist/markets/index.js +232 -0
  210. package/dist/markets/index.js.map +1 -0
  211. package/dist/mining/index.d.ts +156 -0
  212. package/dist/mining/index.d.ts.map +1 -0
  213. package/dist/mining/index.js +236 -0
  214. package/dist/mining/index.js.map +1 -0
  215. package/dist/planning/assembly.d.ts +42 -0
  216. package/dist/planning/assembly.d.ts.map +1 -0
  217. package/dist/planning/assembly.js +141 -0
  218. package/dist/planning/assembly.js.map +1 -0
  219. package/dist/planning/composition.d.ts +4 -0
  220. package/dist/planning/composition.d.ts.map +1 -0
  221. package/dist/planning/composition.js +76 -0
  222. package/dist/planning/composition.js.map +1 -0
  223. package/dist/planning/execution.d.ts +93 -0
  224. package/dist/planning/execution.d.ts.map +1 -0
  225. package/dist/planning/execution.js +549 -0
  226. package/dist/planning/execution.js.map +1 -0
  227. package/dist/planning/index.d.ts +219 -0
  228. package/dist/planning/index.d.ts.map +1 -0
  229. package/dist/planning/index.js +375 -0
  230. package/dist/planning/index.js.map +1 -0
  231. package/dist/planning/plan-instances.d.ts +3 -0
  232. package/dist/planning/plan-instances.d.ts.map +1 -0
  233. package/dist/planning/plan-instances.js +8 -0
  234. package/dist/planning/plan-instances.js.map +1 -0
  235. package/dist/planning/plan-sequence-checkpoint.d.ts +154 -0
  236. package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -0
  237. package/dist/planning/plan-sequence-checkpoint.js +449 -0
  238. package/dist/planning/plan-sequence-checkpoint.js.map +1 -0
  239. package/dist/planning/plan-sequence-execution.d.ts +72 -0
  240. package/dist/planning/plan-sequence-execution.d.ts.map +1 -0
  241. package/dist/planning/plan-sequence-execution.js +410 -0
  242. package/dist/planning/plan-sequence-execution.js.map +1 -0
  243. package/dist/planning/plan-sequence.d.ts +244 -0
  244. package/dist/planning/plan-sequence.d.ts.map +1 -0
  245. package/dist/planning/plan-sequence.js +264 -0
  246. package/dist/planning/plan-sequence.js.map +1 -0
  247. package/dist/planning/simulation.d.ts +50 -0
  248. package/dist/planning/simulation.d.ts.map +1 -0
  249. package/dist/planning/simulation.js +69 -0
  250. package/dist/planning/simulation.js.map +1 -0
  251. package/dist/registry/combat.d.ts +5 -0
  252. package/dist/registry/combat.d.ts.map +1 -0
  253. package/dist/registry/combat.js +7 -0
  254. package/dist/registry/combat.js.map +1 -0
  255. package/dist/registry/index.d.ts +138 -0
  256. package/dist/registry/index.d.ts.map +1 -0
  257. package/dist/registry/index.js +397 -0
  258. package/dist/registry/index.js.map +1 -0
  259. package/dist/rewards/index.d.ts +202 -0
  260. package/dist/rewards/index.d.ts.map +1 -0
  261. package/dist/rewards/index.js +290 -0
  262. package/dist/rewards/index.js.map +1 -0
  263. package/dist/scanning/index.d.ts +185 -0
  264. package/dist/scanning/index.d.ts.map +1 -0
  265. package/dist/scanning/index.js +207 -0
  266. package/dist/scanning/index.js.map +1 -0
  267. package/dist/starbases/actions/index.d.ts +60 -0
  268. package/dist/starbases/actions/index.d.ts.map +1 -0
  269. package/dist/starbases/actions/index.js +245 -0
  270. package/dist/starbases/actions/index.js.map +1 -0
  271. package/dist/starbases/index.d.ts +165 -0
  272. package/dist/starbases/index.d.ts.map +1 -0
  273. package/dist/starbases/index.js +213 -0
  274. package/dist/starbases/index.js.map +1 -0
  275. package/dist/world/index.d.ts +180 -0
  276. package/dist/world/index.d.ts.map +1 -0
  277. package/dist/world/index.js +265 -0
  278. package/dist/world/index.js.map +1 -0
  279. package/package.json +140 -0
@@ -0,0 +1,154 @@
1
+ import { type Signature } from '@solana/kit';
2
+ import type { ClusterIdentity } from '../client/contracts.js';
3
+ import type { ConfirmedStep, PlanSequence, PlanSequenceFingerprint } from './plan-sequence.js';
4
+ /** Persisted public confirmation evidence for one completed sequence step.
5
+ *
6
+ * Slots use canonical unsigned decimal strings so checkpoint values remain
7
+ * directly JSON-serializable without losing integer precision.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * declare const confirmed: PlanSequenceConfirmedStepV1;
12
+ * console.log(confirmed.stepId, confirmed.slot);
13
+ * ```
14
+ */
15
+ export interface PlanSequenceConfirmedStepV1 {
16
+ readonly stepId: string;
17
+ readonly index: number;
18
+ readonly signature: Signature;
19
+ readonly slot: string;
20
+ readonly commitment: 'confirmed' | 'finalized';
21
+ }
22
+ /** One durable write-ahead attempt at the checkpoint's next step.
23
+ *
24
+ * Observable signers persist `signed` with their public signature. Opaque
25
+ * combined sign/send signers persist `invoking` before entering that boundary.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * declare const attempt: PlanSequenceCheckpointAttemptV1;
30
+ * console.log(attempt.stepId, attempt.phase);
31
+ * ```
32
+ */
33
+ export type PlanSequenceCheckpointAttemptV1 = Readonly<{
34
+ stepId: string;
35
+ index: number;
36
+ phase: 'prepared';
37
+ signerMode: 'observable' | 'opaque';
38
+ }> | Readonly<{
39
+ stepId: string;
40
+ index: number;
41
+ phase: 'signed';
42
+ signerMode: 'observable';
43
+ signature: Signature;
44
+ }> | Readonly<{
45
+ stepId: string;
46
+ index: number;
47
+ phase: 'invoking';
48
+ signerMode: 'opaque';
49
+ }>;
50
+ /** Version-one caller-persisted Plan sequence checkpoint.
51
+ *
52
+ * The value is exact-key, recursively frozen, and JSON-safe. It contains only
53
+ * stable sequence identity, confirmed public evidence, current write-ahead
54
+ * state, and caller-supplied local observation time.
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * declare const sequence: PlanSequence;
59
+ * declare const callerOwnedStore: { save(value: string): Promise<void> };
60
+ * const checkpoint: PlanSequenceCheckpointV1 = createPlanSequenceCheckpoint(
61
+ * sequence,
62
+ * '2026-08-28T12:00:00.000Z',
63
+ * );
64
+ * await callerOwnedStore.save(stringifyPlanSequenceCheckpoint(checkpoint));
65
+ * ```
66
+ */
67
+ export interface PlanSequenceCheckpointV1 {
68
+ readonly v: 1;
69
+ readonly fingerprint: PlanSequenceFingerprint;
70
+ readonly cluster: ClusterIdentity;
71
+ readonly sequenceId: string;
72
+ readonly revision: number;
73
+ readonly stepIds: readonly string[];
74
+ readonly nextStepIndex: number;
75
+ readonly confirmed: readonly PlanSequenceConfirmedStepV1[];
76
+ readonly attempt?: PlanSequenceCheckpointAttemptV1;
77
+ readonly observedAt: string;
78
+ }
79
+ /** Creates an empty checkpoint bound to one exact Plan sequence.
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * declare const sequence: PlanSequence;
84
+ * const checkpoint = createPlanSequenceCheckpoint(
85
+ * sequence,
86
+ * '2026-08-28T12:00:00.000Z',
87
+ * );
88
+ * console.log(checkpoint.nextStepIndex); // 0
89
+ * ```
90
+ */
91
+ export declare function createPlanSequenceCheckpoint(sequence: PlanSequence, observedAt: string): PlanSequenceCheckpointV1;
92
+ /** Parses and validates a checkpoint against one exact Plan sequence.
93
+ *
94
+ * The source may be a JSON string or a caller-owned parsed JSON value.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * declare const sequence: PlanSequence;
99
+ * declare const storedJson: string;
100
+ * const checkpoint = parsePlanSequenceCheckpoint(sequence, storedJson);
101
+ * console.log(checkpoint.nextStepIndex);
102
+ * ```
103
+ */
104
+ export declare function parsePlanSequenceCheckpoint(sequence: PlanSequence, source: unknown): PlanSequenceCheckpointV1;
105
+ /** Replaces the current write-ahead attempt without advancing sequence progress.
106
+ *
107
+ * The first attempt must be `prepared`. An observable attempt may then become
108
+ * `signed`; an opaque attempt may become `invoking`.
109
+ *
110
+ * @example
111
+ * ```ts
112
+ * declare const checkpoint: PlanSequenceCheckpointV1;
113
+ * const prepared = setPlanSequenceCheckpointAttempt(
114
+ * checkpoint,
115
+ * {
116
+ * stepId: checkpoint.stepIds[checkpoint.nextStepIndex]!,
117
+ * index: checkpoint.nextStepIndex,
118
+ * phase: 'prepared',
119
+ * signerMode: 'observable',
120
+ * },
121
+ * '2026-08-28T12:00:00.000Z',
122
+ * );
123
+ * ```
124
+ */
125
+ export declare function setPlanSequenceCheckpointAttempt(checkpoint: PlanSequenceCheckpointV1, attempt: PlanSequenceCheckpointAttemptV1, observedAt: string): PlanSequenceCheckpointV1;
126
+ /** Appends public confirmation evidence and advances exactly one sequence step.
127
+ *
128
+ * A step can advance only from its matching durable `signed` or `invoking`
129
+ * attempt. The attempt is cleared in the returned checkpoint.
130
+ *
131
+ * @example
132
+ * ```ts
133
+ * declare const checkpoint: PlanSequenceCheckpointV1;
134
+ * declare const confirmed: ConfirmedStep;
135
+ * const advanced = confirmPlanSequenceCheckpointStep(
136
+ * checkpoint,
137
+ * confirmed,
138
+ * '2026-08-28T12:00:00.000Z',
139
+ * );
140
+ * ```
141
+ */
142
+ export declare function confirmPlanSequenceCheckpointStep(checkpoint: PlanSequenceCheckpointV1, evidence: ConfirmedStep, observedAt: string): PlanSequenceCheckpointV1;
143
+ /** Serializes one SDK-created checkpoint to canonical compact JSON.
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * declare const checkpoint: PlanSequenceCheckpointV1;
148
+ * declare const callerOwnedStore: { save(value: string): Promise<void> };
149
+ * const storedJson = stringifyPlanSequenceCheckpoint(checkpoint);
150
+ * await callerOwnedStore.save(storedJson);
151
+ * ```
152
+ */
153
+ export declare function stringifyPlanSequenceCheckpoint(checkpoint: PlanSequenceCheckpointV1): string;
154
+ //# sourceMappingURL=plan-sequence-checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-sequence-checkpoint.d.ts","sourceRoot":"","sources":["../../src/planning/plan-sequence-checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAO5B;;;;;;;;;;GAUG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC;CAChD;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,+BAA+B,GACvC,QAAQ,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,YAAY,GAAG,QAAQ,CAAC;CACrC,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,QAAQ,CAAC;CACtB,CAAC,CAAC;AAEP;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,+BAA+B,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAgZD;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,wBAAwB,CAY1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,OAAO,GACd,wBAAwB,CAuF1B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,wBAAwB,EACpC,OAAO,EAAE,+BAA+B,EACxC,UAAU,EAAE,MAAM,GACjB,wBAAwB,CA8C1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,wBAAwB,EACpC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,MAAM,GACjB,wBAAwB,CAoE1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,wBAAwB,GACnC,MAAM,CAGR"}
@@ -0,0 +1,449 @@
1
+ import { isSignature } from '@solana/kit';
2
+ import { InvalidActionInputError } from '../client/errors.js';
3
+ import { deepFreeze } from '../internal/immutable-tree.js';
4
+ const ISO_TIMESTAMP_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u;
5
+ const UNSIGNED_DECIMAL_PATTERN = /^(?:0|[1-9]\d*)$/u;
6
+ const U64_MAX = 18446744073709551615n;
7
+ const checkpointInstances = new WeakSet();
8
+ function summarize(value) {
9
+ if (typeof value === 'number' || typeof value === 'string')
10
+ return value;
11
+ if (value === null)
12
+ return 'null';
13
+ return typeof value;
14
+ }
15
+ function invalid(field, value, acceptedRange) {
16
+ throw new InvalidActionInputError(field, summarize(value), acceptedRange, 'Load a checkpoint created for this exact PlanSequence or create a new empty checkpoint before retrying.');
17
+ }
18
+ function readDataRecord(value, field, acceptedRange = 'a plain object with data properties') {
19
+ try {
20
+ if (value === null ||
21
+ typeof value !== 'object' ||
22
+ Array.isArray(value) ||
23
+ (Object.getPrototypeOf(value) !== Object.prototype &&
24
+ Object.getPrototypeOf(value) !== null)) {
25
+ return invalid(field, value, acceptedRange);
26
+ }
27
+ const copy = Object.create(null);
28
+ for (const key of Reflect.ownKeys(value)) {
29
+ if (typeof key !== 'string') {
30
+ return invalid(field, 'symbol-keyed property', acceptedRange);
31
+ }
32
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
33
+ if (descriptor === undefined || !('value' in descriptor)) {
34
+ return invalid(`${field}.${key}`, 'accessor property', 'a data property');
35
+ }
36
+ copy[key] = descriptor.value;
37
+ }
38
+ return copy;
39
+ }
40
+ catch (error) {
41
+ if (error instanceof InvalidActionInputError)
42
+ throw error;
43
+ return invalid(field, 'unreadable object', acceptedRange);
44
+ }
45
+ }
46
+ function assertKeys(value, field, required, optional = []) {
47
+ const accepted = new Set([...required, ...optional]);
48
+ const missing = required.find((key) => !Object.hasOwn(value, key));
49
+ const unexpected = Object.keys(value).find((key) => !accepted.has(key));
50
+ if (missing !== undefined || unexpected !== undefined) {
51
+ invalid(field, missing === undefined ? `unexpected ${unexpected}` : `missing ${missing}`, `exactly the fields ${[...required, ...optional].join(', ')}`);
52
+ }
53
+ }
54
+ function readDenseArray(value, field, expectedLength) {
55
+ try {
56
+ if (!Array.isArray(value)) {
57
+ return invalid(field, value, 'a dense ordered array');
58
+ }
59
+ const actualLength = value.length;
60
+ if (actualLength !== expectedLength) {
61
+ return invalid(field, actualLength, `a dense ordered array with exactly ${String(expectedLength)} elements`);
62
+ }
63
+ const acceptedKeys = new Set([
64
+ 'length',
65
+ ...Array.from({ length: expectedLength }, (_, index) => String(index)),
66
+ ]);
67
+ const unexpected = Reflect.ownKeys(value).find((key) => typeof key !== 'string' || !acceptedKeys.has(key));
68
+ if (unexpected !== undefined) {
69
+ invalid(field, typeof unexpected === 'symbol'
70
+ ? 'symbol-keyed property'
71
+ : `unexpected ${unexpected}`, 'a dense ordered array without custom properties');
72
+ }
73
+ const values = [];
74
+ for (let index = 0; index < expectedLength; index += 1) {
75
+ const descriptor = Object.getOwnPropertyDescriptor(value, index);
76
+ if (descriptor === undefined || !('value' in descriptor)) {
77
+ invalid(`${field}[${String(index)}]`, descriptor === undefined ? undefined : 'accessor property', 'a present data element');
78
+ }
79
+ values[index] = descriptor.value;
80
+ }
81
+ return values;
82
+ }
83
+ catch (error) {
84
+ if (error instanceof InvalidActionInputError)
85
+ throw error;
86
+ return invalid(field, 'unreadable array', 'a dense ordered array');
87
+ }
88
+ }
89
+ function readTimestamp(value, field) {
90
+ if (typeof value !== 'string' ||
91
+ !ISO_TIMESTAMP_PATTERN.test(value) ||
92
+ Number.isNaN(Date.parse(value)) ||
93
+ new Date(value).toISOString() !== value) {
94
+ return invalid(field, value, 'a canonical UTC ISO-8601 timestamp such as 2026-08-28T12:00:00.000Z');
95
+ }
96
+ return value;
97
+ }
98
+ function copyCluster(cluster) {
99
+ return cluster === 'zink-ptr' ? cluster : { name: cluster.name };
100
+ }
101
+ function readBoundCluster(value, expected) {
102
+ if (expected === 'zink-ptr') {
103
+ return value === expected
104
+ ? expected
105
+ : invalid('planSequenceCheckpoint.cluster', value, 'the same canonical cluster identity as the PlanSequence');
106
+ }
107
+ const cluster = readDataRecord(value, 'planSequenceCheckpoint.cluster');
108
+ assertKeys(cluster, 'planSequenceCheckpoint.cluster', ['name']);
109
+ return cluster.name === expected.name
110
+ ? { name: expected.name }
111
+ : invalid('planSequenceCheckpoint.cluster.name', cluster.name, 'the same canonical custom cluster name as the PlanSequence');
112
+ }
113
+ function readBoundStepIds(value, sequence) {
114
+ const values = readDenseArray(value, 'planSequenceCheckpoint.stepIds', sequence.steps.length);
115
+ return values.map((stepId, index) => stepId === sequence.steps[index].id
116
+ ? stepId
117
+ : invalid(`planSequenceCheckpoint.stepIds[${String(index)}]`, stepId, `the PlanSequence step id ${sequence.steps[index].id}`));
118
+ }
119
+ function decodeSource(source) {
120
+ if (typeof source !== 'string')
121
+ return source;
122
+ try {
123
+ return JSON.parse(source);
124
+ }
125
+ catch {
126
+ return invalid('planSequenceCheckpointJson', 'invalid JSON', 'one complete JSON-encoded PlanSequence checkpoint object');
127
+ }
128
+ }
129
+ function registerCheckpoint(checkpoint) {
130
+ const frozen = deepFreeze(checkpoint);
131
+ checkpointInstances.add(frozen);
132
+ return frozen;
133
+ }
134
+ function assertCheckpointInstance(checkpoint) {
135
+ if (!checkpointInstances.has(checkpoint)) {
136
+ invalid('planSequenceCheckpoint', checkpoint, 'a checkpoint created or parsed by the PlanSequence checkpoint API');
137
+ }
138
+ }
139
+ function readIndex(value, field) {
140
+ return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0
141
+ ? value
142
+ : invalid(field, value, 'a non-negative safe integer');
143
+ }
144
+ function readSignature(value, field) {
145
+ return typeof value === 'string' && isSignature(value)
146
+ ? value
147
+ : invalid(field, value, 'one canonical base58-encoded Solana signature');
148
+ }
149
+ function readSlot(value, field) {
150
+ if (typeof value !== 'string' || !UNSIGNED_DECIMAL_PATTERN.test(value)) {
151
+ return invalid(field, value, 'a canonical unsigned 64-bit decimal string');
152
+ }
153
+ const slot = BigInt(value);
154
+ return slot <= U64_MAX
155
+ ? value
156
+ : invalid(field, value, 'a canonical unsigned 64-bit decimal string');
157
+ }
158
+ function readCommitment(value, field) {
159
+ return value === 'confirmed' || value === 'finalized'
160
+ ? value
161
+ : invalid(field, value, 'exactly confirmed or finalized');
162
+ }
163
+ function readAttempt(value, stepIds, nextStepIndex, field = 'planSequenceCheckpoint.attempt') {
164
+ const attempt = readDataRecord(value, field);
165
+ const phase = attempt.phase;
166
+ if (phase === 'prepared') {
167
+ assertKeys(attempt, field, ['stepId', 'index', 'phase', 'signerMode']);
168
+ if (attempt.signerMode !== 'observable' &&
169
+ attempt.signerMode !== 'opaque') {
170
+ invalid(`${field}.signerMode`, attempt.signerMode, 'exactly observable or opaque');
171
+ }
172
+ }
173
+ else if (phase === 'signed') {
174
+ assertKeys(attempt, field, [
175
+ 'stepId',
176
+ 'index',
177
+ 'phase',
178
+ 'signerMode',
179
+ 'signature',
180
+ ]);
181
+ if (attempt.signerMode !== 'observable') {
182
+ invalid(`${field}.signerMode`, attempt.signerMode, 'observable for a signed attempt');
183
+ }
184
+ }
185
+ else if (phase === 'invoking') {
186
+ assertKeys(attempt, field, ['stepId', 'index', 'phase', 'signerMode']);
187
+ if (attempt.signerMode !== 'opaque') {
188
+ invalid(`${field}.signerMode`, attempt.signerMode, 'opaque for an invoking attempt');
189
+ }
190
+ }
191
+ else {
192
+ return invalid(`${field}.phase`, phase, 'exactly prepared, signed, or invoking');
193
+ }
194
+ const index = readIndex(attempt.index, `${field}.index`);
195
+ const expectedStepId = stepIds[nextStepIndex];
196
+ if (index !== nextStepIndex || expectedStepId === undefined) {
197
+ invalid(`${field}.index`, index, 'the checkpoint nextStepIndex for one remaining step');
198
+ }
199
+ if (attempt.stepId !== expectedStepId) {
200
+ invalid(`${field}.stepId`, attempt.stepId, `the next PlanSequence step id ${expectedStepId}`);
201
+ }
202
+ if (phase === 'signed') {
203
+ return {
204
+ stepId: expectedStepId,
205
+ index,
206
+ phase,
207
+ signerMode: 'observable',
208
+ signature: readSignature(attempt.signature, `${field}.signature`),
209
+ };
210
+ }
211
+ return {
212
+ stepId: expectedStepId,
213
+ index,
214
+ phase,
215
+ signerMode: attempt.signerMode,
216
+ };
217
+ }
218
+ function readConfirmedStep(value, expectedStepId, expectedIndex, field) {
219
+ const confirmed = readDataRecord(value, field);
220
+ assertKeys(confirmed, field, [
221
+ 'stepId',
222
+ 'index',
223
+ 'signature',
224
+ 'slot',
225
+ 'commitment',
226
+ ]);
227
+ const index = readIndex(confirmed.index, `${field}.index`);
228
+ if (index !== expectedIndex) {
229
+ invalid(`${field}.index`, index, `the ordered confirmed step index ${String(expectedIndex)}`);
230
+ }
231
+ if (confirmed.stepId !== expectedStepId) {
232
+ invalid(`${field}.stepId`, confirmed.stepId, `the PlanSequence step id ${expectedStepId}`);
233
+ }
234
+ return {
235
+ stepId: expectedStepId,
236
+ index,
237
+ signature: readSignature(confirmed.signature, `${field}.signature`),
238
+ slot: readSlot(confirmed.slot, `${field}.slot`),
239
+ commitment: readCommitment(confirmed.commitment, `${field}.commitment`),
240
+ };
241
+ }
242
+ function checkpointValue(checkpoint, nextStepIndex, confirmed, attempt, observedAt) {
243
+ return {
244
+ v: 1,
245
+ fingerprint: checkpoint.fingerprint,
246
+ cluster: copyCluster(checkpoint.cluster),
247
+ sequenceId: checkpoint.sequenceId,
248
+ revision: checkpoint.revision,
249
+ stepIds: [...checkpoint.stepIds],
250
+ nextStepIndex,
251
+ confirmed: confirmed.map((entry) => ({ ...entry })),
252
+ ...(attempt === undefined ? {} : { attempt: { ...attempt } }),
253
+ observedAt,
254
+ };
255
+ }
256
+ /** Creates an empty checkpoint bound to one exact Plan sequence.
257
+ *
258
+ * @example
259
+ * ```ts
260
+ * declare const sequence: PlanSequence;
261
+ * const checkpoint = createPlanSequenceCheckpoint(
262
+ * sequence,
263
+ * '2026-08-28T12:00:00.000Z',
264
+ * );
265
+ * console.log(checkpoint.nextStepIndex); // 0
266
+ * ```
267
+ */
268
+ export function createPlanSequenceCheckpoint(sequence, observedAt) {
269
+ return registerCheckpoint({
270
+ v: 1,
271
+ fingerprint: sequence.fingerprint,
272
+ cluster: copyCluster(sequence.cluster),
273
+ sequenceId: sequence.sequenceId,
274
+ revision: sequence.revision,
275
+ stepIds: sequence.steps.map((step) => step.id),
276
+ nextStepIndex: 0,
277
+ confirmed: [],
278
+ observedAt: readTimestamp(observedAt, 'planSequenceCheckpoint.observedAt'),
279
+ });
280
+ }
281
+ /** Parses and validates a checkpoint against one exact Plan sequence.
282
+ *
283
+ * The source may be a JSON string or a caller-owned parsed JSON value.
284
+ *
285
+ * @example
286
+ * ```ts
287
+ * declare const sequence: PlanSequence;
288
+ * declare const storedJson: string;
289
+ * const checkpoint = parsePlanSequenceCheckpoint(sequence, storedJson);
290
+ * console.log(checkpoint.nextStepIndex);
291
+ * ```
292
+ */
293
+ export function parsePlanSequenceCheckpoint(sequence, source) {
294
+ const value = readDataRecord(decodeSource(source), 'planSequenceCheckpoint');
295
+ assertKeys(value, 'planSequenceCheckpoint', [
296
+ 'v',
297
+ 'fingerprint',
298
+ 'cluster',
299
+ 'sequenceId',
300
+ 'revision',
301
+ 'stepIds',
302
+ 'nextStepIndex',
303
+ 'confirmed',
304
+ 'observedAt',
305
+ ], ['attempt']);
306
+ if (value.v !== 1) {
307
+ invalid('planSequenceCheckpoint.v', value.v, 'checkpoint version 1');
308
+ }
309
+ if (value.fingerprint !== sequence.fingerprint) {
310
+ invalid('planSequenceCheckpoint.fingerprint', value.fingerprint, 'the fingerprint derived by this exact PlanSequence');
311
+ }
312
+ if (value.sequenceId !== sequence.sequenceId) {
313
+ invalid('planSequenceCheckpoint.sequenceId', value.sequenceId, 'the same sequence id as the PlanSequence');
314
+ }
315
+ if (value.revision !== sequence.revision) {
316
+ invalid('planSequenceCheckpoint.revision', value.revision, 'the same revision as the PlanSequence');
317
+ }
318
+ const nextStepIndex = readIndex(value.nextStepIndex, 'planSequenceCheckpoint.nextStepIndex');
319
+ const stepIds = readBoundStepIds(value.stepIds, sequence);
320
+ if (nextStepIndex > stepIds.length) {
321
+ invalid('planSequenceCheckpoint.nextStepIndex', nextStepIndex, 'an index from zero through the PlanSequence step count');
322
+ }
323
+ const confirmedValues = readDenseArray(value.confirmed, 'planSequenceCheckpoint.confirmed', nextStepIndex);
324
+ const confirmed = confirmedValues.map((entry, index) => readConfirmedStep(entry, stepIds[index], index, `planSequenceCheckpoint.confirmed[${String(index)}]`));
325
+ const attempt = value.attempt === undefined
326
+ ? undefined
327
+ : readAttempt(value.attempt, stepIds, nextStepIndex);
328
+ return registerCheckpoint(checkpointValue({
329
+ v: 1,
330
+ fingerprint: sequence.fingerprint,
331
+ cluster: readBoundCluster(value.cluster, sequence.cluster),
332
+ sequenceId: sequence.sequenceId,
333
+ revision: sequence.revision,
334
+ stepIds,
335
+ }, nextStepIndex, confirmed, attempt, readTimestamp(value.observedAt, 'planSequenceCheckpoint.observedAt')));
336
+ }
337
+ /** Replaces the current write-ahead attempt without advancing sequence progress.
338
+ *
339
+ * The first attempt must be `prepared`. An observable attempt may then become
340
+ * `signed`; an opaque attempt may become `invoking`.
341
+ *
342
+ * @example
343
+ * ```ts
344
+ * declare const checkpoint: PlanSequenceCheckpointV1;
345
+ * const prepared = setPlanSequenceCheckpointAttempt(
346
+ * checkpoint,
347
+ * {
348
+ * stepId: checkpoint.stepIds[checkpoint.nextStepIndex]!,
349
+ * index: checkpoint.nextStepIndex,
350
+ * phase: 'prepared',
351
+ * signerMode: 'observable',
352
+ * },
353
+ * '2026-08-28T12:00:00.000Z',
354
+ * );
355
+ * ```
356
+ */
357
+ export function setPlanSequenceCheckpointAttempt(checkpoint, attempt, observedAt) {
358
+ assertCheckpointInstance(checkpoint);
359
+ const nextAttempt = readAttempt(attempt, checkpoint.stepIds, checkpoint.nextStepIndex);
360
+ const previous = checkpoint.attempt;
361
+ if (previous === undefined && nextAttempt.phase !== 'prepared') {
362
+ invalid('planSequenceCheckpoint.attempt.phase', nextAttempt.phase, 'prepared before entering a signer boundary');
363
+ }
364
+ if (previous !== undefined) {
365
+ if (previous.phase !== 'prepared') {
366
+ invalid('planSequenceCheckpoint.attempt.phase', nextAttempt.phase, 'confirmation of the existing signed or invoking attempt');
367
+ }
368
+ if ((previous.signerMode === 'observable' &&
369
+ nextAttempt.phase !== 'signed') ||
370
+ (previous.signerMode === 'opaque' && nextAttempt.phase !== 'invoking')) {
371
+ invalid('planSequenceCheckpoint.attempt.phase', nextAttempt.phase, previous.signerMode === 'observable'
372
+ ? 'signed after an observable prepared attempt'
373
+ : 'invoking after an opaque prepared attempt');
374
+ }
375
+ }
376
+ return registerCheckpoint(checkpointValue(checkpoint, checkpoint.nextStepIndex, checkpoint.confirmed, nextAttempt, readTimestamp(observedAt, 'planSequenceCheckpoint.observedAt')));
377
+ }
378
+ /** Appends public confirmation evidence and advances exactly one sequence step.
379
+ *
380
+ * A step can advance only from its matching durable `signed` or `invoking`
381
+ * attempt. The attempt is cleared in the returned checkpoint.
382
+ *
383
+ * @example
384
+ * ```ts
385
+ * declare const checkpoint: PlanSequenceCheckpointV1;
386
+ * declare const confirmed: ConfirmedStep;
387
+ * const advanced = confirmPlanSequenceCheckpointStep(
388
+ * checkpoint,
389
+ * confirmed,
390
+ * '2026-08-28T12:00:00.000Z',
391
+ * );
392
+ * ```
393
+ */
394
+ export function confirmPlanSequenceCheckpointStep(checkpoint, evidence, observedAt) {
395
+ assertCheckpointInstance(checkpoint);
396
+ const attempt = checkpoint.attempt;
397
+ if (attempt === undefined ||
398
+ (attempt.phase !== 'signed' && attempt.phase !== 'invoking')) {
399
+ invalid('planSequenceCheckpoint.attempt', attempt, 'a matching signed or invoking attempt before confirmation');
400
+ }
401
+ const field = 'planSequenceCheckpoint.confirmation';
402
+ const value = readDataRecord(evidence, field);
403
+ assertKeys(value, field, [
404
+ 'stepId',
405
+ 'index',
406
+ 'signature',
407
+ 'slot',
408
+ 'commitment',
409
+ ]);
410
+ const index = readIndex(value.index, `${field}.index`);
411
+ if (index !== checkpoint.nextStepIndex || index !== attempt.index) {
412
+ invalid(`${field}.index`, index, 'the current attempt and checkpoint nextStepIndex');
413
+ }
414
+ if (value.stepId !== attempt.stepId) {
415
+ invalid(`${field}.stepId`, value.stepId, `the current attempt step id ${attempt.stepId}`);
416
+ }
417
+ const signature = readSignature(value.signature, `${field}.signature`);
418
+ if (attempt.phase === 'signed' && signature !== attempt.signature) {
419
+ invalid(`${field}.signature`, signature, 'the observable signature persisted by the signed attempt');
420
+ }
421
+ if (typeof value.slot !== 'bigint' ||
422
+ value.slot < 0n ||
423
+ value.slot > U64_MAX) {
424
+ invalid(`${field}.slot`, value.slot, 'an unsigned 64-bit bigint slot');
425
+ }
426
+ const confirmed = {
427
+ stepId: attempt.stepId,
428
+ index,
429
+ signature,
430
+ slot: String(value.slot),
431
+ commitment: readCommitment(value.commitment, `${field}.commitment`),
432
+ };
433
+ return registerCheckpoint(checkpointValue(checkpoint, checkpoint.nextStepIndex + 1, [...checkpoint.confirmed, confirmed], undefined, readTimestamp(observedAt, 'planSequenceCheckpoint.observedAt')));
434
+ }
435
+ /** Serializes one SDK-created checkpoint to canonical compact JSON.
436
+ *
437
+ * @example
438
+ * ```ts
439
+ * declare const checkpoint: PlanSequenceCheckpointV1;
440
+ * declare const callerOwnedStore: { save(value: string): Promise<void> };
441
+ * const storedJson = stringifyPlanSequenceCheckpoint(checkpoint);
442
+ * await callerOwnedStore.save(storedJson);
443
+ * ```
444
+ */
445
+ export function stringifyPlanSequenceCheckpoint(checkpoint) {
446
+ assertCheckpointInstance(checkpoint);
447
+ return JSON.stringify(checkpoint);
448
+ }
449
+ //# sourceMappingURL=plan-sequence-checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-sequence-checkpoint.js","sourceRoot":"","sources":["../../src/planning/plan-sequence-checkpoint.ts"],"names":[],"mappings":"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"}