@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,72 @@
1
+ import type { SageContext } from '../client/contracts.js';
2
+ import { type ExecutePlanOptions } from './execution.js';
3
+ import type { Plan } from './index.js';
4
+ import { type PlanSequenceCheckpointV1 } from './plan-sequence-checkpoint.js';
5
+ import { type PlanSequence, type PlanSequenceResult } from './plan-sequence.js';
6
+ /** Caller-owned durable checkpoint boundary.
7
+ *
8
+ * Resolution of `save()` acknowledges that the checkpoint is durable. The SDK
9
+ * never signs or enters a submission boundary until the required save resolves.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const store: PlanSequenceStore = {
14
+ * save: async (checkpoint) => localStorage.setItem('journey', JSON.stringify(checkpoint)),
15
+ * };
16
+ * ```
17
+ */
18
+ export interface PlanSequenceStore {
19
+ save(checkpoint: PlanSequenceCheckpointV1): Promise<void>;
20
+ }
21
+ /** Fresh single-transaction authorization detail presented before signing.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * declare const presentation: PlanSequencePresentation;
26
+ * console.log(presentation.stepId, presentation.description);
27
+ * ```
28
+ */
29
+ export interface PlanSequencePresentation {
30
+ readonly stepId: string;
31
+ readonly index: number;
32
+ readonly plan: Plan;
33
+ readonly description: readonly string[];
34
+ }
35
+ /** Inputs for one fail-closed PlanSequence execution or resume invocation.
36
+ *
37
+ * The commitment is restricted to rollback-safe `confirmed` or `finalized`
38
+ * evidence. Cancellation is observed only between steps.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * declare const feePayer: ExecutePlanSequenceOptions['feePayer'];
43
+ * declare const store: PlanSequenceStore;
44
+ * const options: ExecutePlanSequenceOptions = { feePayer, store };
45
+ * ```
46
+ */
47
+ export interface ExecutePlanSequenceOptions extends Omit<ExecutePlanOptions, 'commitment'> {
48
+ readonly commitment?: 'confirmed' | 'finalized';
49
+ readonly store: PlanSequenceStore;
50
+ readonly signal?: AbortSignal;
51
+ readonly onBeforeSign?: (presentation: PlanSequencePresentation) => Promise<void>;
52
+ }
53
+ type SequenceResult = PlanSequenceResult<PlanSequenceCheckpointV1>;
54
+ /** Executes or resumes one PlanSequence invocation without polling or retrying.
55
+ *
56
+ * The checkpoint may be an SDK-created object, caller-owned decoded JSON, or a
57
+ * JSON string. It is strictly parsed against the exact sequence before any RPC,
58
+ * preparation, presentation, or signer work begins.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * declare const ctx: SageContext;
63
+ * declare const sequence: PlanSequence;
64
+ * declare const checkpointJson: string;
65
+ * declare const options: ExecutePlanSequenceOptions;
66
+ * const result = await executePlanSequence(ctx, sequence, checkpointJson, options);
67
+ * console.log(result.status, result.checkpoint.nextStepIndex);
68
+ * ```
69
+ */
70
+ export declare function executePlanSequence(context: SageContext, sequence: PlanSequence, checkpointSource: unknown, options: ExecutePlanSequenceOptions): Promise<SequenceResult>;
71
+ export {};
72
+ //# sourceMappingURL=plan-sequence-execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-sequence-execution.d.ts","sourceRoot":"","sources":["../../src/planning/plan-sequence-execution.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAM3E,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAKL,KAAK,wBAAwB,EAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EAExB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CACtD,kBAAkB,EAClB,YAAY,CACb;IACC,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,YAAY,EAAE,wBAAwB,KACnC,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED,KAAK,cAAc,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;AAmPnE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,OAAO,EACzB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,CA8YzB"}
@@ -0,0 +1,410 @@
1
+ import { InvalidActionInputError, SageSdkError, } from '../client/errors.js';
2
+ import { executePlanWithLifecycle, } from './execution.js';
3
+ import { confirmPlanSequenceCheckpointStep, createPlanSequenceCheckpoint, parsePlanSequenceCheckpoint, setPlanSequenceCheckpointAttempt, } from './plan-sequence-checkpoint.js';
4
+ import { PlanSequencePreparationBoundaryError, } from './plan-sequence.js';
5
+ const U64_MAX = 18446744073709551615n;
6
+ function now() {
7
+ return new Date().toISOString();
8
+ }
9
+ function isAborted(signal) {
10
+ return signal?.aborted === true;
11
+ }
12
+ function failurePhase(phase) {
13
+ return phase === 'prepared' || phase === 'signing' ? phase : 'preparing';
14
+ }
15
+ function sameCluster(left, right) {
16
+ return left === 'zink-ptr'
17
+ ? right === left
18
+ : right !== 'zink-ptr' && right.name === left.name;
19
+ }
20
+ function freezeResult(result) {
21
+ return Object.freeze(result);
22
+ }
23
+ function safeMessage(code, stepId, index, phase) {
24
+ return `PlanSequence step ${stepId} at index ${String(index)} could not continue during ${phase} (${code}). Correct or explicitly reconcile this step before resuming.`;
25
+ }
26
+ function failed(checkpoint, stepId, index, phase, code) {
27
+ return freezeResult({
28
+ status: 'failed',
29
+ stepId,
30
+ index,
31
+ phase,
32
+ code,
33
+ message: safeMessage(code, stepId, index, phase),
34
+ checkpoint,
35
+ });
36
+ }
37
+ function unknown(checkpoint, stepId, index, phase, code, signature) {
38
+ return freezeResult({
39
+ status: 'unknown',
40
+ stepId,
41
+ index,
42
+ phase,
43
+ ...(signature === undefined ? {} : { signature }),
44
+ code,
45
+ message: safeMessage(code, stepId, index, phase),
46
+ checkpoint,
47
+ });
48
+ }
49
+ function checkpointFailureCode(error) {
50
+ if ((error instanceof InvalidActionInputError &&
51
+ [
52
+ 'planSequenceCheckpoint.fingerprint',
53
+ 'planSequenceCheckpoint.cluster',
54
+ 'planSequenceCheckpoint.cluster.name',
55
+ 'planSequenceCheckpoint.sequenceId',
56
+ 'planSequenceCheckpoint.revision',
57
+ ].some((field) => error.field === field)) ||
58
+ (error instanceof InvalidActionInputError &&
59
+ error.field.startsWith('planSequenceCheckpoint.stepIds'))) {
60
+ return 'SEQUENCE_IDENTITY_MISMATCH';
61
+ }
62
+ return 'SEQUENCE_CHECKPOINT_INVALID';
63
+ }
64
+ function sdkCode(error) {
65
+ return error instanceof SageSdkError ? error.code : 'INVALID_ACTION_INPUT';
66
+ }
67
+ function readOptions(options) {
68
+ if (options === null ||
69
+ typeof options !== 'object' ||
70
+ Array.isArray(options)) {
71
+ throw new InvalidActionInputError('options', typeof options, 'an ExecutePlanSequenceOptions object', 'Pass execution, persistence, presentation, and cancellation inputs in one options object before retrying.');
72
+ }
73
+ const store = options.store;
74
+ if (store === null ||
75
+ typeof store !== 'object' ||
76
+ typeof store.save !== 'function') {
77
+ throw new InvalidActionInputError('options.store', typeof store, 'a PlanSequenceStore with an async save(checkpoint) method', 'Provide a caller-owned durable checkpoint store before retrying.');
78
+ }
79
+ if (options.onBeforeSign !== undefined &&
80
+ typeof options.onBeforeSign !== 'function') {
81
+ throw new InvalidActionInputError('options.onBeforeSign', typeof options.onBeforeSign, 'an async Plan presentation callback', 'Provide a callback that resolves after presenting each fresh Plan, or omit it.');
82
+ }
83
+ if (options.signal !== undefined &&
84
+ (typeof options.signal !== 'object' ||
85
+ typeof options.signal.aborted !== 'boolean')) {
86
+ throw new InvalidActionInputError('options.signal', typeof options.signal, 'an AbortSignal', 'Pass a standard AbortSignal or omit cancellation before retrying.');
87
+ }
88
+ const commitment = options.commitment ?? 'confirmed';
89
+ if (commitment !== 'confirmed' && commitment !== 'finalized') {
90
+ throw new InvalidActionInputError('options.commitment', commitment, 'confirmed or finalized', 'Use rollback-safe confirmation evidence for a resumable sequence.');
91
+ }
92
+ return {
93
+ commitment,
94
+ store: { save: store.save.bind(store) },
95
+ signal: options.signal,
96
+ onBeforeSign: options.onBeforeSign,
97
+ execution: {
98
+ feePayer: options.feePayer,
99
+ ...(options.signers === undefined ? {} : { signers: options.signers }),
100
+ ...(options.computeUnitLimit === undefined
101
+ ? {}
102
+ : { computeUnitLimit: options.computeUnitLimit }),
103
+ ...(options.priorityFeeMicroLamports === undefined
104
+ ? {}
105
+ : { priorityFeeMicroLamports: options.priorityFeeMicroLamports }),
106
+ ...(options.timeoutMs === undefined
107
+ ? {}
108
+ : { timeoutMs: options.timeoutMs }),
109
+ ...(options.pollIntervalMs === undefined
110
+ ? {}
111
+ : { pollIntervalMs: options.pollIntervalMs }),
112
+ commitment,
113
+ },
114
+ };
115
+ }
116
+ function commitmentReached(actual, requested) {
117
+ if (actual === null)
118
+ return false;
119
+ const strength = {
120
+ processed: 0,
121
+ confirmed: 1,
122
+ finalized: 2,
123
+ };
124
+ return strength[actual] >= strength[requested];
125
+ }
126
+ async function readVerifiedConfirmation(context, signature, commitment, expectedSlot) {
127
+ const writeRpc = context.writeRpc;
128
+ if (writeRpc === undefined)
129
+ return undefined;
130
+ try {
131
+ const { value } = await writeRpc
132
+ .getSignatureStatuses([signature], { searchTransactionHistory: true })
133
+ .send();
134
+ const status = value[0];
135
+ if (status === null ||
136
+ status === undefined ||
137
+ status.err !== null ||
138
+ typeof status.slot !== 'bigint' ||
139
+ status.slot < 0n ||
140
+ status.slot > U64_MAX ||
141
+ !commitmentReached(status.confirmationStatus, commitment) ||
142
+ (expectedSlot !== undefined && status.slot !== expectedSlot)) {
143
+ return undefined;
144
+ }
145
+ return {
146
+ stepId: '',
147
+ index: 0,
148
+ signature,
149
+ slot: status.slot,
150
+ commitment,
151
+ };
152
+ }
153
+ catch {
154
+ return undefined;
155
+ }
156
+ }
157
+ /** Executes or resumes one PlanSequence invocation without polling or retrying.
158
+ *
159
+ * The checkpoint may be an SDK-created object, caller-owned decoded JSON, or a
160
+ * JSON string. It is strictly parsed against the exact sequence before any RPC,
161
+ * preparation, presentation, or signer work begins.
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * declare const ctx: SageContext;
166
+ * declare const sequence: PlanSequence;
167
+ * declare const checkpointJson: string;
168
+ * declare const options: ExecutePlanSequenceOptions;
169
+ * const result = await executePlanSequence(ctx, sequence, checkpointJson, options);
170
+ * console.log(result.status, result.checkpoint.nextStepIndex);
171
+ * ```
172
+ */
173
+ export async function executePlanSequence(context, sequence, checkpointSource, options) {
174
+ const fallbackStep = sequence.steps[0];
175
+ let checkpoint;
176
+ try {
177
+ checkpoint = parsePlanSequenceCheckpoint(sequence, checkpointSource);
178
+ }
179
+ catch (error) {
180
+ const fallback = createPlanSequenceCheckpoint(sequence, now());
181
+ return failed(fallback, fallbackStep.id, 0, 'preparing', checkpointFailureCode(error));
182
+ }
183
+ const currentIndex = Math.min(checkpoint.nextStepIndex, sequence.steps.length - 1);
184
+ const currentStep = sequence.steps[currentIndex];
185
+ if (!sameCluster(context.cluster, sequence.cluster)) {
186
+ return failed(checkpoint, currentStep.id, currentIndex, 'preparing', 'SEQUENCE_IDENTITY_MISMATCH');
187
+ }
188
+ let validated;
189
+ try {
190
+ validated = readOptions(options);
191
+ }
192
+ catch (error) {
193
+ return failed(checkpoint, currentStep.id, currentIndex, 'preparing', sdkCode(error));
194
+ }
195
+ const resumedAttempt = checkpoint.attempt;
196
+ if (resumedAttempt?.phase === 'invoking') {
197
+ return unknown(checkpoint, resumedAttempt.stepId, resumedAttempt.index, 'invoking', 'SEQUENCE_ATTEMPT_UNRESOLVED');
198
+ }
199
+ const latest = checkpoint.confirmed.at(-1);
200
+ if (latest !== undefined) {
201
+ const verified = await readVerifiedConfirmation(context, latest.signature, latest.commitment, BigInt(latest.slot));
202
+ if (verified === undefined) {
203
+ return failed(checkpoint, currentStep.id, currentIndex, 'preparing', 'SEQUENCE_CONFIRMATION_UNVERIFIABLE');
204
+ }
205
+ }
206
+ if (resumedAttempt?.phase === 'signed') {
207
+ const verified = await readVerifiedConfirmation(context, resumedAttempt.signature, validated.commitment);
208
+ if (verified === undefined) {
209
+ return unknown(checkpoint, resumedAttempt.stepId, resumedAttempt.index, 'signed', 'SEQUENCE_ATTEMPT_UNRESOLVED', resumedAttempt.signature);
210
+ }
211
+ const advanced = confirmPlanSequenceCheckpointStep(checkpoint, {
212
+ ...verified,
213
+ stepId: resumedAttempt.stepId,
214
+ index: resumedAttempt.index,
215
+ }, now());
216
+ try {
217
+ await validated.store.save(advanced);
218
+ checkpoint = advanced;
219
+ }
220
+ catch {
221
+ return unknown(checkpoint, resumedAttempt.stepId, resumedAttempt.index, 'signed', 'SEQUENCE_PERSISTENCE_FAILED', resumedAttempt.signature);
222
+ }
223
+ if (isAborted(validated.signal)) {
224
+ return freezeResult({
225
+ status: 'paused',
226
+ stepId: resumedAttempt.stepId,
227
+ index: resumedAttempt.index,
228
+ phase: 'confirmed',
229
+ checkpoint,
230
+ });
231
+ }
232
+ }
233
+ if (checkpoint.nextStepIndex === sequence.steps.length) {
234
+ const completed = checkpoint.confirmed.at(-1);
235
+ return freezeResult({
236
+ status: 'completed',
237
+ stepId: completed.stepId,
238
+ index: completed.index,
239
+ phase: 'confirmed',
240
+ signature: completed.signature,
241
+ checkpoint,
242
+ });
243
+ }
244
+ const seenPlans = new WeakSet();
245
+ for (;;) {
246
+ const index = checkpoint.nextStepIndex;
247
+ const step = sequence.steps[index];
248
+ if (isAborted(validated.signal)) {
249
+ return freezeResult({
250
+ status: 'paused',
251
+ stepId: step.id,
252
+ index,
253
+ phase: 'preparing',
254
+ checkpoint,
255
+ });
256
+ }
257
+ let readiness;
258
+ try {
259
+ const confirmed = Object.freeze(checkpoint.confirmed.map((entry) => Object.freeze({ ...entry, slot: BigInt(entry.slot) })));
260
+ readiness = await step.prepare(Object.freeze({
261
+ sequenceId: sequence.sequenceId,
262
+ stepId: step.id,
263
+ index,
264
+ confirmed,
265
+ }));
266
+ }
267
+ catch (error) {
268
+ return failed(checkpoint, step.id, index, 'preparing', error instanceof PlanSequencePreparationBoundaryError
269
+ ? 'SEQUENCE_PREPARATION_FAILED'
270
+ : sdkCode(error));
271
+ }
272
+ if (readiness.status === 'waiting') {
273
+ return freezeResult({
274
+ status: 'waiting',
275
+ stepId: step.id,
276
+ index,
277
+ phase: 'preparing',
278
+ reason: readiness.reason,
279
+ ...(readiness.notBefore === undefined
280
+ ? {}
281
+ : { notBefore: readiness.notBefore }),
282
+ checkpoint,
283
+ });
284
+ }
285
+ if (seenPlans.has(readiness.plan)) {
286
+ return failed(checkpoint, step.id, index, 'preparing', 'INVALID_ACTION_INPUT');
287
+ }
288
+ seenPlans.add(readiness.plan);
289
+ const state = { phase: 'preparing', boundary: undefined, signature: undefined };
290
+ const persist = async (next) => {
291
+ state.boundary = 'persistence';
292
+ await validated.store.save(next);
293
+ checkpoint = next;
294
+ state.boundary = undefined;
295
+ };
296
+ const lifecycle = {
297
+ async onPrepared(signerMode) {
298
+ state.phase = 'prepared';
299
+ if (checkpoint.attempt?.phase === 'prepared') {
300
+ if (checkpoint.attempt.signerMode !== signerMode) {
301
+ throw new InvalidActionInputError('planSequenceCheckpoint.attempt.signerMode', checkpoint.attempt.signerMode, `the current ${signerMode} execution signer mode`, 'Resume with the same signer mode or explicitly reconcile this prepared attempt.');
302
+ }
303
+ return;
304
+ }
305
+ await persist(setPlanSequenceCheckpointAttempt(checkpoint, { stepId: step.id, index, phase: 'prepared', signerMode }, now()));
306
+ },
307
+ async onBeforeSign() {
308
+ if (validated.onBeforeSign !== undefined) {
309
+ state.boundary = 'presentation';
310
+ await validated.onBeforeSign(Object.freeze({
311
+ stepId: step.id,
312
+ index,
313
+ plan: readiness.plan,
314
+ description: readiness.plan.describe(),
315
+ }));
316
+ state.boundary = undefined;
317
+ }
318
+ state.phase = 'signing';
319
+ },
320
+ async onBeforeOpaqueInvoke() {
321
+ const invoking = setPlanSequenceCheckpointAttempt(checkpoint, {
322
+ stepId: step.id,
323
+ index,
324
+ phase: 'invoking',
325
+ signerMode: 'opaque',
326
+ }, now());
327
+ await persist(invoking);
328
+ state.phase = 'invoking';
329
+ },
330
+ async onSigned(observedSignature) {
331
+ state.signature = observedSignature;
332
+ state.phase = 'signed';
333
+ await persist(setPlanSequenceCheckpointAttempt(checkpoint, {
334
+ stepId: step.id,
335
+ index,
336
+ phase: 'signed',
337
+ signerMode: 'observable',
338
+ signature: observedSignature,
339
+ }, now()));
340
+ },
341
+ async onBeforeSubmit() {
342
+ state.phase = 'submitted';
343
+ },
344
+ };
345
+ try {
346
+ const execution = await executePlanWithLifecycle(context, readiness.plan, validated.execution, lifecycle);
347
+ if (execution.status === 'unknown') {
348
+ return unknown(checkpoint, step.id, index, state.phase === 'invoking' ? 'invoking' : 'submitted', 'TRANSACTION_OUTCOME_UNKNOWN', execution.signature);
349
+ }
350
+ state.signature = execution.signature;
351
+ const advanced = confirmPlanSequenceCheckpointStep(checkpoint, {
352
+ stepId: step.id,
353
+ index,
354
+ signature: execution.signature,
355
+ slot: execution.slot,
356
+ commitment: execution.commitment,
357
+ }, now());
358
+ try {
359
+ await persist(advanced);
360
+ }
361
+ catch {
362
+ return unknown(checkpoint, step.id, index, state.phase === 'invoking' ? 'invoking' : 'submitted', 'SEQUENCE_PERSISTENCE_FAILED', state.signature);
363
+ }
364
+ }
365
+ catch (error) {
366
+ if (state.boundary === 'presentation') {
367
+ return failed(checkpoint, step.id, index, 'prepared', 'SEQUENCE_PRESENTATION_FAILED');
368
+ }
369
+ if (state.boundary === 'persistence') {
370
+ if (state.phase === 'signed' && state.signature !== undefined) {
371
+ return freezeResult({
372
+ status: 'failed',
373
+ stepId: step.id,
374
+ index,
375
+ phase: 'signed',
376
+ signature: state.signature,
377
+ code: 'SEQUENCE_PERSISTENCE_FAILED',
378
+ message: safeMessage('SEQUENCE_PERSISTENCE_FAILED', step.id, index, 'signed'),
379
+ checkpoint,
380
+ });
381
+ }
382
+ return failed(checkpoint, step.id, index, state.phase === 'prepared' ? 'prepared' : 'signing', 'SEQUENCE_PERSISTENCE_FAILED');
383
+ }
384
+ if (state.phase === 'invoking' || state.phase === 'submitted') {
385
+ return unknown(checkpoint, step.id, index, state.phase, sdkCode(error), state.signature);
386
+ }
387
+ return failed(checkpoint, step.id, index, failurePhase(state.phase), sdkCode(error));
388
+ }
389
+ if (isAborted(validated.signal)) {
390
+ return freezeResult({
391
+ status: 'paused',
392
+ stepId: step.id,
393
+ index,
394
+ phase: 'confirmed',
395
+ checkpoint,
396
+ });
397
+ }
398
+ if (checkpoint.nextStepIndex === sequence.steps.length) {
399
+ return freezeResult({
400
+ status: 'completed',
401
+ stepId: step.id,
402
+ index,
403
+ phase: 'confirmed',
404
+ signature: state.signature,
405
+ checkpoint,
406
+ });
407
+ }
408
+ }
409
+ }
410
+ //# sourceMappingURL=plan-sequence-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-sequence-execution.js","sourceRoot":"","sources":["../../src/planning/plan-sequence-execution.ts"],"names":[],"mappings":"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"}