@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,219 @@
1
+ import { AccountRole, type AccountMeta, type Address, type Instruction } from '@solana/kit';
2
+ declare const PLAN_BRAND: unique symbol;
3
+ /** One capability-authored opaque fact used to review Plan composition.
4
+ *
5
+ * The planning core preserves these exact strings without interpreting
6
+ * capability vocabulary or inferring negation conventions.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const fact: PlanSemanticFact = {
11
+ * kind: 'requires',
12
+ * resource: 'fleet:Ravager',
13
+ * fact: 'idle',
14
+ * };
15
+ * ```
16
+ */
17
+ export type PlanSemanticFact = {
18
+ readonly kind: 'requires';
19
+ readonly resource: string;
20
+ readonly fact: string;
21
+ } | {
22
+ readonly kind: 'invalidates';
23
+ readonly resource: string;
24
+ readonly fact: string;
25
+ } | {
26
+ readonly kind: 'transition';
27
+ readonly resource: string;
28
+ readonly from: string;
29
+ readonly to: string;
30
+ };
31
+ /** One ordered instruction and its game-language signer requirements.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * declare const step: PlanStep;
36
+ * console.log(step.describes, step.signers);
37
+ * ```
38
+ */
39
+ export interface PlanStep {
40
+ readonly instruction: Instruction<string, readonly AccountMeta[]>;
41
+ readonly describes: string;
42
+ readonly semantics?: readonly PlanSemanticFact[];
43
+ readonly signers: readonly Address[];
44
+ }
45
+ /** A closure-free whole-account freshness guard recorded at planning time.
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * declare const precondition: PlanPrecondition;
50
+ * console.log(precondition.address, precondition.dataHash);
51
+ * ```
52
+ */
53
+ export interface PlanPrecondition {
54
+ readonly kind: 'account-state';
55
+ readonly address: Address;
56
+ readonly dataHash: string;
57
+ readonly describes: string;
58
+ }
59
+ /** The complete persistent wire representation of a Plan.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * declare const wire: PlanJsonV1;
64
+ * console.log(wire.v); // 1
65
+ * ```
66
+ */
67
+ export interface PlanJsonV1 {
68
+ readonly v: 1;
69
+ readonly kind: string;
70
+ readonly summary: string;
71
+ readonly steps: readonly {
72
+ readonly instruction: {
73
+ readonly programAddress: string;
74
+ readonly accounts?: readonly {
75
+ readonly address: string;
76
+ readonly role: AccountRole;
77
+ }[];
78
+ /** Base64-encoded instruction bytes when the instruction carries data. */
79
+ readonly data?: string;
80
+ };
81
+ readonly describes: string;
82
+ readonly signers: readonly string[];
83
+ }[];
84
+ readonly preconditions: readonly {
85
+ readonly kind: 'account-state';
86
+ readonly address: string;
87
+ readonly dataHash: string;
88
+ readonly describes: string;
89
+ }[];
90
+ readonly affected: readonly string[];
91
+ readonly requiredSigners: readonly string[];
92
+ }
93
+ /** The version-two Plan wire representation for semantic-bearing steps.
94
+ *
95
+ * Version two retains every version-one top-level field and adds optional
96
+ * normalized semantic facts to individual steps.
97
+ *
98
+ * @example
99
+ * ```ts
100
+ * declare const plan: Plan;
101
+ * const wire: PlanJsonV1 | PlanJsonV2 = plan.toJSON();
102
+ * if (wire.v === 2) console.log(wire.steps[0]?.semantics);
103
+ * ```
104
+ */
105
+ export interface PlanJsonV2 {
106
+ readonly v: 2;
107
+ readonly kind: string;
108
+ readonly summary: string;
109
+ readonly steps: readonly {
110
+ readonly instruction: {
111
+ readonly programAddress: string;
112
+ readonly accounts?: readonly {
113
+ readonly address: string;
114
+ readonly role: AccountRole;
115
+ }[];
116
+ /** Base64-encoded instruction bytes when the instruction carries data. */
117
+ readonly data?: string;
118
+ };
119
+ readonly describes: string;
120
+ readonly semantics?: readonly PlanSemanticFact[];
121
+ readonly signers: readonly string[];
122
+ }[];
123
+ readonly preconditions: readonly {
124
+ readonly kind: 'account-state';
125
+ readonly address: string;
126
+ readonly dataHash: string;
127
+ readonly describes: string;
128
+ }[];
129
+ readonly affected: readonly string[];
130
+ readonly requiredSigners: readonly string[];
131
+ }
132
+ /** Inert, inspectable action data built only through planning factories.
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * declare const plan: Plan;
137
+ * console.log(plan.summary);
138
+ * console.log(plan.describe());
139
+ * ```
140
+ */
141
+ export interface Plan {
142
+ readonly kind: string;
143
+ readonly summary: string;
144
+ readonly steps: readonly PlanStep[];
145
+ readonly preconditions: readonly PlanPrecondition[];
146
+ readonly affected: readonly Address[];
147
+ readonly requiredSigners: readonly Address[];
148
+ describe(): readonly string[];
149
+ toJSON(): PlanJsonV1 | PlanJsonV2;
150
+ readonly [PLAN_BRAND]: true;
151
+ }
152
+ /** Caller-owned fields accepted by the Plan factory.
153
+ *
154
+ * `affected` and `requiredSigners` are intentionally absent because the
155
+ * factory derives them from writable metas and ordered step signers.
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * declare const step: PlanStep;
160
+ * const input: CreatePlanInput = {
161
+ * kind: 'fleet.move',
162
+ * summary: 'Move the fleet.',
163
+ * steps: [step],
164
+ * preconditions: [],
165
+ * };
166
+ * ```
167
+ */
168
+ export interface CreatePlanInput {
169
+ readonly kind: string;
170
+ readonly summary: string;
171
+ readonly steps: readonly PlanStep[];
172
+ readonly preconditions: readonly PlanPrecondition[];
173
+ }
174
+ /** Creates an inert branded Plan while deriving every aggregate field.
175
+ *
176
+ * @example
177
+ * ```ts
178
+ * declare const step: PlanStep;
179
+ * const plan = createPlan({
180
+ * kind: 'fleet.move',
181
+ * summary: 'Move the fleet.',
182
+ * steps: [step],
183
+ * preconditions: [],
184
+ * });
185
+ * console.log(plan.affected);
186
+ * ```
187
+ */
188
+ export declare function createPlan(input: CreatePlanInput): Plan;
189
+ /** Rehydrates and validates a complete versioned Plan wire value.
190
+ *
191
+ * @example
192
+ * ```ts
193
+ * declare const wire: PlanJsonV1 | PlanJsonV2;
194
+ * const plan = planFromJSON(wire);
195
+ * console.log(plan.describe());
196
+ * ```
197
+ */
198
+ export declare function planFromJSON(json: unknown): Plan;
199
+ /** Combines one or more Plans with deterministic associative flattening.
200
+ *
201
+ * Semantic validation is eager. Conflict indices are relative to the flattened
202
+ * inputs of the `combinePlans` call that rejects them.
203
+ *
204
+ * @example
205
+ * ```ts
206
+ * declare const undock: Plan;
207
+ * declare const warp: Plan;
208
+ * const movement = combinePlans(undock, warp);
209
+ * console.log(movement.summary);
210
+ * ```
211
+ */
212
+ export declare function combinePlans(...plans: readonly Plan[]): Plan;
213
+ export { assemblePlan, type AssemblyPolicy } from './assembly.js';
214
+ export { executePlan, type ConfirmedPlanExecution, type ExecutePlanOptions, type PlanExecutionResult, type UnknownPlanExecution, } from './execution.js';
215
+ export { executePlanSequence, type ExecutePlanSequenceOptions, type PlanSequencePresentation, type PlanSequenceStore, } from './plan-sequence-execution.js';
216
+ export { simulatePlan, type SimulationResult, type SimulationReturnData, } from './simulation.js';
217
+ export { createPlanSequence, type ConfirmedStep, type CreatePlanSequenceInput, type PlanSequence, type PlanSequenceErrorCode, type PlanSequenceFingerprint, type PlanSequencePhase, type PlanSequenceReadiness, type PlanSequenceResult, type PlanSequenceResultCode, type PlanSequenceStatus, type PlanSequenceStep, type PlanSequenceStepContext, } from './plan-sequence.js';
218
+ export { confirmPlanSequenceCheckpointStep, createPlanSequenceCheckpoint, parsePlanSequenceCheckpoint, setPlanSequenceCheckpointAttempt, stringifyPlanSequenceCheckpoint, type PlanSequenceCheckpointAttemptV1, type PlanSequenceCheckpointV1, type PlanSequenceConfirmedStepV1, } from './plan-sequence-checkpoint.js';
219
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/planning/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,375 @@
1
+ import { AccountRole, getBase64Decoder, getBase64Encoder, isAddress, isWritableRole, } from '@solana/kit';
2
+ import { InvalidActionInputError } from '../client/errors.js';
3
+ import { deepFreeze } from '../internal/immutable-tree.js';
4
+ import { validatePlanComposition } from './composition.js';
5
+ import { isPlanInstance, registerPlanInstance } from './plan-instances.js';
6
+ const PLAN_BRAND = Symbol('AephiaSagePlan');
7
+ const BASE64_PATTERN = /^(?:[A-Za-z\d+/]{4})*(?:[A-Za-z\d+/]{2}==|[A-Za-z\d+/]{3}=)?$/u;
8
+ const DATA_HASH_PATTERN = /^[\da-f]{64}$/u;
9
+ const ACCOUNT_ROLES = new Set([
10
+ AccountRole.READONLY,
11
+ AccountRole.WRITABLE,
12
+ AccountRole.READONLY_SIGNER,
13
+ AccountRole.WRITABLE_SIGNER,
14
+ ]);
15
+ function invalid(field, value, acceptedRange) {
16
+ throw new InvalidActionInputError(field, value, acceptedRange, 'Correct this Plan field and recreate or hydrate the Plan before retrying.');
17
+ }
18
+ function readRecord(value, field) {
19
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
20
+ return invalid(field, value, 'a plain object');
21
+ }
22
+ return value;
23
+ }
24
+ function assertKeys(value, field, required, optional = []) {
25
+ const keys = Object.keys(value);
26
+ const accepted = new Set([...required, ...optional]);
27
+ const missing = required.find((key) => !Object.hasOwn(value, key));
28
+ const unexpected = keys.find((key) => !accepted.has(key));
29
+ if (missing !== undefined || unexpected !== undefined) {
30
+ invalid(field, missing === undefined ? unexpected : `missing ${missing}`, `exactly the fields ${[...required, ...optional].join(', ')}`);
31
+ }
32
+ }
33
+ function readArray(value, field) {
34
+ if (!Array.isArray(value)) {
35
+ return invalid(field, value, 'an ordered array');
36
+ }
37
+ const normalized = [];
38
+ for (let index = 0; index < value.length; index += 1) {
39
+ if (!Object.hasOwn(value, index)) {
40
+ invalid(`${field}[${String(index)}]`, undefined, 'a present array element');
41
+ }
42
+ normalized[index] = value[index];
43
+ }
44
+ return normalized;
45
+ }
46
+ function readString(value, field) {
47
+ return typeof value === 'string' ? value : invalid(field, value, 'a string');
48
+ }
49
+ function readToken(value, field) {
50
+ return typeof value === 'string' && value.length > 0
51
+ ? value
52
+ : invalid(field, value, 'a non-empty string');
53
+ }
54
+ function readAddress(value, field) {
55
+ return typeof value === 'string' && isAddress(value)
56
+ ? value
57
+ : invalid(field, value, 'a valid base58 Solana address');
58
+ }
59
+ function readRole(value, field) {
60
+ return typeof value === 'number' && ACCOUNT_ROLES.has(value)
61
+ ? value
62
+ : invalid(field, value, 'an AccountRole integer from 0 through 3');
63
+ }
64
+ function readDataHash(value, field) {
65
+ return typeof value === 'string' && DATA_HASH_PATTERN.test(value)
66
+ ? value
67
+ : invalid(field, value, 'a lowercase 64-character SHA-256 hex digest');
68
+ }
69
+ function decodeBase64(value, field) {
70
+ if (typeof value !== 'string' || !BASE64_PATTERN.test(value)) {
71
+ return invalid(field, value, 'canonical base64-encoded instruction bytes');
72
+ }
73
+ const bytes = getBase64Encoder().encode(value);
74
+ if (getBase64Decoder().decode(bytes) !== value) {
75
+ return invalid(field, value, 'canonical base64-encoded instruction bytes');
76
+ }
77
+ return bytes;
78
+ }
79
+ function uniqueAddresses(addresses) {
80
+ return Object.freeze([...new Set(addresses)]);
81
+ }
82
+ function immutableInstruction(programAddress, accounts, data) {
83
+ const instruction = {
84
+ ...(accounts === undefined ? {} : { accounts }),
85
+ programAddress,
86
+ };
87
+ if (data !== undefined) {
88
+ const bytes = new Uint8Array(data);
89
+ Object.defineProperty(instruction, 'data', {
90
+ enumerable: true,
91
+ get: () => new Uint8Array(bytes),
92
+ });
93
+ }
94
+ return Object.freeze(instruction);
95
+ }
96
+ function normalizeInstruction(value, field) {
97
+ const instruction = readRecord(value, field);
98
+ assertKeys(instruction, field, ['programAddress'], ['accounts', 'data']);
99
+ const programAddress = readAddress(instruction.programAddress, `${field}.programAddress`);
100
+ const accounts = instruction.accounts === undefined
101
+ ? undefined
102
+ : Object.freeze(readArray(instruction.accounts, `${field}.accounts`).map((candidate, index) => {
103
+ const account = readRecord(candidate, `${field}.accounts[${String(index)}]`);
104
+ assertKeys(account, `${field}.accounts[${String(index)}]`, [
105
+ 'address',
106
+ 'role',
107
+ ]);
108
+ return Object.freeze({
109
+ address: readAddress(account.address, `${field}.accounts[${String(index)}].address`),
110
+ role: readRole(account.role, `${field}.accounts[${String(index)}].role`),
111
+ });
112
+ }));
113
+ const data = instruction.data === undefined
114
+ ? undefined
115
+ : instruction.data instanceof Uint8Array
116
+ ? new Uint8Array(instruction.data)
117
+ : invalid(`${field}.data`, instruction.data, 'a read-only Uint8Array');
118
+ return immutableInstruction(programAddress, accounts, data);
119
+ }
120
+ function normalizeStep(value, field) {
121
+ const step = readRecord(value, field);
122
+ assertKeys(step, field, ['instruction', 'describes', 'signers'], ['semantics']);
123
+ return Object.freeze({
124
+ instruction: normalizeInstruction(step.instruction, `${field}.instruction`),
125
+ describes: readString(step.describes, `${field}.describes`),
126
+ ...(step.semantics === undefined
127
+ ? {}
128
+ : {
129
+ semantics: Object.freeze(readArray(step.semantics, `${field}.semantics`).map((semantic, index) => normalizeSemanticFact(semantic, `${field}.semantics[${String(index)}]`))),
130
+ }),
131
+ signers: Object.freeze(readArray(step.signers, `${field}.signers`).map((signer, index) => readAddress(signer, `${field}.signers[${String(index)}]`))),
132
+ });
133
+ }
134
+ function normalizeSemanticFact(value, field) {
135
+ const semantic = readRecord(value, field);
136
+ if (semantic.kind === 'requires' || semantic.kind === 'invalidates') {
137
+ assertKeys(semantic, field, ['kind', 'resource', 'fact']);
138
+ return Object.freeze({
139
+ kind: semantic.kind,
140
+ resource: readToken(semantic.resource, `${field}.resource`),
141
+ fact: readToken(semantic.fact, `${field}.fact`),
142
+ });
143
+ }
144
+ if (semantic.kind === 'transition') {
145
+ assertKeys(semantic, field, ['kind', 'resource', 'from', 'to']);
146
+ return Object.freeze({
147
+ kind: 'transition',
148
+ resource: readToken(semantic.resource, `${field}.resource`),
149
+ from: readToken(semantic.from, `${field}.from`),
150
+ to: readToken(semantic.to, `${field}.to`),
151
+ });
152
+ }
153
+ return invalid(`${field}.kind`, semantic.kind, 'one of requires, invalidates, or transition');
154
+ }
155
+ function normalizePrecondition(value, field) {
156
+ const precondition = readRecord(value, field);
157
+ assertKeys(precondition, field, ['kind', 'address', 'dataHash', 'describes']);
158
+ if (precondition.kind !== 'account-state') {
159
+ invalid(`${field}.kind`, precondition.kind, 'the value account-state');
160
+ }
161
+ return Object.freeze({
162
+ kind: 'account-state',
163
+ address: readAddress(precondition.address, `${field}.address`),
164
+ dataHash: readDataHash(precondition.dataHash, `${field}.dataHash`),
165
+ describes: readString(precondition.describes, `${field}.describes`),
166
+ });
167
+ }
168
+ function getAffected(steps) {
169
+ return uniqueAddresses(steps.flatMap((step) => (step.instruction.accounts ?? [])
170
+ .filter((account) => isWritableRole(account.role))
171
+ .map((account) => account.address)));
172
+ }
173
+ function getRequiredSigners(steps) {
174
+ return uniqueAddresses(steps.flatMap((step) => step.signers));
175
+ }
176
+ function instructionToJSON(instruction) {
177
+ const value = {
178
+ ...(instruction.accounts === undefined
179
+ ? {}
180
+ : {
181
+ accounts: instruction.accounts.map((account) => ({
182
+ address: account.address,
183
+ role: account.role,
184
+ })),
185
+ }),
186
+ ...(instruction.data === undefined
187
+ ? {}
188
+ : { data: getBase64Decoder().decode(instruction.data) }),
189
+ programAddress: instruction.programAddress,
190
+ };
191
+ return deepFreeze(value);
192
+ }
193
+ function planToJSON(plan) {
194
+ const hasSemantics = plan.steps.some((step) => (step.semantics?.length ?? 0) > 0);
195
+ return deepFreeze({
196
+ v: hasSemantics ? 2 : 1,
197
+ kind: plan.kind,
198
+ summary: plan.summary,
199
+ steps: plan.steps.map((step) => ({
200
+ instruction: instructionToJSON(step.instruction),
201
+ describes: step.describes,
202
+ ...(hasSemantics && (step.semantics?.length ?? 0) > 0
203
+ ? { semantics: step.semantics.map((semantic) => ({ ...semantic })) }
204
+ : {}),
205
+ signers: [...step.signers],
206
+ })),
207
+ preconditions: plan.preconditions.map((precondition) => ({
208
+ kind: precondition.kind,
209
+ address: precondition.address,
210
+ dataHash: precondition.dataHash,
211
+ describes: precondition.describes,
212
+ })),
213
+ affected: [...plan.affected],
214
+ requiredSigners: [...plan.requiredSigners],
215
+ });
216
+ }
217
+ /** Creates an inert branded Plan while deriving every aggregate field.
218
+ *
219
+ * @example
220
+ * ```ts
221
+ * declare const step: PlanStep;
222
+ * const plan = createPlan({
223
+ * kind: 'fleet.move',
224
+ * summary: 'Move the fleet.',
225
+ * steps: [step],
226
+ * preconditions: [],
227
+ * });
228
+ * console.log(plan.affected);
229
+ * ```
230
+ */
231
+ export function createPlan(input) {
232
+ const value = readRecord(input, 'plan');
233
+ assertKeys(value, 'plan', ['kind', 'summary', 'steps', 'preconditions']);
234
+ const steps = Object.freeze(readArray(value.steps, 'plan.steps').map((step, index) => normalizeStep(step, `plan.steps[${String(index)}]`)));
235
+ const preconditions = Object.freeze(readArray(value.preconditions, 'plan.preconditions').map((precondition, index) => normalizePrecondition(precondition, `plan.preconditions[${String(index)}]`)));
236
+ const descriptions = Object.freeze(steps.map((step) => step.describes));
237
+ const plan = {
238
+ kind: readString(value.kind, 'plan.kind'),
239
+ summary: readString(value.summary, 'plan.summary'),
240
+ steps,
241
+ preconditions,
242
+ affected: getAffected(steps),
243
+ requiredSigners: getRequiredSigners(steps),
244
+ describe: () => descriptions,
245
+ toJSON: () => planToJSON(plan),
246
+ };
247
+ Object.defineProperty(plan, PLAN_BRAND, { value: true });
248
+ registerPlanInstance(plan);
249
+ return Object.freeze(plan);
250
+ }
251
+ function readWireInstruction(value, field) {
252
+ const instruction = readRecord(value, field);
253
+ assertKeys(instruction, field, ['programAddress'], ['accounts', 'data']);
254
+ return {
255
+ ...(instruction.accounts === undefined
256
+ ? {}
257
+ : {
258
+ accounts: readArray(instruction.accounts, `${field}.accounts`).map((candidate, index) => {
259
+ const accountField = `${field}.accounts[${String(index)}]`;
260
+ const account = readRecord(candidate, accountField);
261
+ assertKeys(account, accountField, ['address', 'role']);
262
+ return {
263
+ address: readAddress(account.address, `${accountField}.address`),
264
+ role: readRole(account.role, `${accountField}.role`),
265
+ };
266
+ }),
267
+ }),
268
+ ...(instruction.data === undefined
269
+ ? {}
270
+ : { data: decodeBase64(instruction.data, `${field}.data`) }),
271
+ programAddress: readAddress(instruction.programAddress, `${field}.programAddress`),
272
+ };
273
+ }
274
+ function sameAddresses(actual, encoded) {
275
+ return (actual.length === encoded.length &&
276
+ actual.every((address, index) => address === encoded[index]));
277
+ }
278
+ /** Rehydrates and validates a complete versioned Plan wire value.
279
+ *
280
+ * @example
281
+ * ```ts
282
+ * declare const wire: PlanJsonV1 | PlanJsonV2;
283
+ * const plan = planFromJSON(wire);
284
+ * console.log(plan.describe());
285
+ * ```
286
+ */
287
+ export function planFromJSON(json) {
288
+ const value = readRecord(json, 'planJson');
289
+ assertKeys(value, 'planJson', [
290
+ 'v',
291
+ 'kind',
292
+ 'summary',
293
+ 'steps',
294
+ 'preconditions',
295
+ 'affected',
296
+ 'requiredSigners',
297
+ ]);
298
+ if (value.v !== 1 && value.v !== 2) {
299
+ invalid('planJson.v', value.v, 'the Plan wire version 1 or 2');
300
+ }
301
+ const version = value.v;
302
+ const steps = readArray(value.steps, 'planJson.steps').map((candidate, index) => {
303
+ const field = `planJson.steps[${String(index)}]`;
304
+ const step = readRecord(candidate, field);
305
+ assertKeys(step, field, ['instruction', 'describes', 'signers'], version === 2 ? ['semantics'] : []);
306
+ return {
307
+ instruction: readWireInstruction(step.instruction, `${field}.instruction`),
308
+ describes: readString(step.describes, `${field}.describes`),
309
+ ...(version === 2 && step.semantics !== undefined
310
+ ? {
311
+ semantics: readArray(step.semantics, `${field}.semantics`).map((semantic, semanticIndex) => normalizeSemanticFact(semantic, `${field}.semantics[${String(semanticIndex)}]`)),
312
+ }
313
+ : {}),
314
+ signers: readArray(step.signers, `${field}.signers`).map((signer, signerIndex) => readAddress(signer, `${field}.signers[${String(signerIndex)}]`)),
315
+ };
316
+ });
317
+ const preconditions = readArray(value.preconditions, 'planJson.preconditions').map((candidate, index) => normalizePrecondition(candidate, `planJson.preconditions[${String(index)}]`));
318
+ const affected = readArray(value.affected, 'planJson.affected').map((candidate, index) => readAddress(candidate, `planJson.affected[${String(index)}]`));
319
+ const requiredSigners = readArray(value.requiredSigners, 'planJson.requiredSigners').map((candidate, index) => readAddress(candidate, `planJson.requiredSigners[${String(index)}]`));
320
+ const plan = createPlan({
321
+ kind: readString(value.kind, 'planJson.kind'),
322
+ summary: readString(value.summary, 'planJson.summary'),
323
+ steps,
324
+ preconditions,
325
+ });
326
+ if (!sameAddresses(plan.affected, affected)) {
327
+ invalid('planJson.affected', value.affected, 'the first-seen union of writable instruction account addresses');
328
+ }
329
+ if (!sameAddresses(plan.requiredSigners, requiredSigners)) {
330
+ invalid('planJson.requiredSigners', value.requiredSigners, 'the first-seen union of ordered step signer addresses');
331
+ }
332
+ return plan;
333
+ }
334
+ function assertPlan(value, index) {
335
+ if (value === null || typeof value !== 'object' || !isPlanInstance(value)) {
336
+ invalid(`plans[${String(index)}]`, value, 'a Plan created by createPlan, planFromJSON, or combinePlans');
337
+ }
338
+ }
339
+ function combinedSummary(steps) {
340
+ return steps.map((step) => step.describes).join(' ');
341
+ }
342
+ /** Combines one or more Plans with deterministic associative flattening.
343
+ *
344
+ * Semantic validation is eager. Conflict indices are relative to the flattened
345
+ * inputs of the `combinePlans` call that rejects them.
346
+ *
347
+ * @example
348
+ * ```ts
349
+ * declare const undock: Plan;
350
+ * declare const warp: Plan;
351
+ * const movement = combinePlans(undock, warp);
352
+ * console.log(movement.summary);
353
+ * ```
354
+ */
355
+ export function combinePlans(...plans) {
356
+ if (plans.length === 0) {
357
+ throw new InvalidActionInputError('plans', plans.length, 'one or more Plan values', 'Pass at least one Plan to combinePlans before retrying.');
358
+ }
359
+ plans.forEach(assertPlan);
360
+ const steps = plans.flatMap((plan) => plan.steps);
361
+ validatePlanComposition(steps);
362
+ return createPlan({
363
+ kind: 'combined',
364
+ summary: combinedSummary(steps),
365
+ steps,
366
+ preconditions: plans.flatMap((plan) => plan.preconditions),
367
+ });
368
+ }
369
+ export { assemblePlan } from './assembly.js';
370
+ export { executePlan, } from './execution.js';
371
+ export { executePlanSequence, } from './plan-sequence-execution.js';
372
+ export { simulatePlan, } from './simulation.js';
373
+ export { createPlanSequence, } from './plan-sequence.js';
374
+ export { confirmPlanSequenceCheckpointStep, createPlanSequenceCheckpoint, parsePlanSequenceCheckpoint, setPlanSequenceCheckpointAttempt, stringifyPlanSequenceCheckpoint, } from './plan-sequence-checkpoint.js';
375
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/planning/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function registerPlanInstance(plan: object): void;
2
+ export declare function isPlanInstance(value: unknown): value is object;
3
+ //# sourceMappingURL=plan-instances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-instances.d.ts","sourceRoot":"","sources":["../../src/planning/plan-instances.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE9D"}
@@ -0,0 +1,8 @@
1
+ const PLAN_INSTANCES = new WeakSet();
2
+ export function registerPlanInstance(plan) {
3
+ PLAN_INSTANCES.add(plan);
4
+ }
5
+ export function isPlanInstance(value) {
6
+ return PLAN_INSTANCES.has(value);
7
+ }
8
+ //# sourceMappingURL=plan-instances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-instances.js","sourceRoot":"","sources":["../../src/planning/plan-instances.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,IAAI,OAAO,EAAU,CAAC;AAE7C,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,cAAc,CAAC,GAAG,CAAC,KAAe,CAAC,CAAC;AAC7C,CAAC"}