@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.
- package/LICENSE +202 -0
- package/README.md +124 -0
- package/dist/bindings.d.ts +11 -0
- package/dist/bindings.d.ts.map +1 -0
- package/dist/bindings.js +11 -0
- package/dist/bindings.js.map +1 -0
- package/dist/cargo/actions/index.d.ts +122 -0
- package/dist/cargo/actions/index.d.ts.map +1 -0
- package/dist/cargo/actions/index.js +526 -0
- package/dist/cargo/actions/index.js.map +1 -0
- package/dist/cargo/index.d.ts +77 -0
- package/dist/cargo/index.d.ts.map +1 -0
- package/dist/cargo/index.js +102 -0
- package/dist/cargo/index.js.map +1 -0
- package/dist/claim-stakes/index.d.ts +64 -0
- package/dist/claim-stakes/index.d.ts.map +1 -0
- package/dist/claim-stakes/index.js +97 -0
- package/dist/claim-stakes/index.js.map +1 -0
- package/dist/client/context.d.ts +21 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/context.js +1374 -0
- package/dist/client/context.js.map +1 -0
- package/dist/client/contracts.d.ts +671 -0
- package/dist/client/contracts.d.ts.map +1 -0
- package/dist/client/contracts.js +2 -0
- package/dist/client/contracts.js.map +1 -0
- package/dist/client/deployments.d.ts +3 -0
- package/dist/client/deployments.d.ts.map +1 -0
- package/dist/client/deployments.js +2 -0
- package/dist/client/deployments.js.map +1 -0
- package/dist/client/errors.d.ts +227 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +288 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/lifecycle.d.ts +4 -0
- package/dist/client/lifecycle.d.ts.map +1 -0
- package/dist/client/lifecycle.js +10 -0
- package/dist/client/lifecycle.js.map +1 -0
- package/dist/client/provider-errors.d.ts +9 -0
- package/dist/client/provider-errors.d.ts.map +1 -0
- package/dist/client/provider-errors.js +12 -0
- package/dist/client/provider-errors.js.map +1 -0
- package/dist/client/reconciliation.d.ts +10 -0
- package/dist/client/reconciliation.d.ts.map +1 -0
- package/dist/client/reconciliation.js +9 -0
- package/dist/client/reconciliation.js.map +1 -0
- package/dist/client/refs.d.ts +23 -0
- package/dist/client/refs.d.ts.map +1 -0
- package/dist/client/refs.js +12 -0
- package/dist/client/refs.js.map +1 -0
- package/dist/combat/index.d.ts +256 -0
- package/dist/combat/index.d.ts.map +1 -0
- package/dist/combat/index.js +222 -0
- package/dist/combat/index.js.map +1 -0
- package/dist/crafting/index.d.ts +308 -0
- package/dist/crafting/index.d.ts.map +1 -0
- package/dist/crafting/index.js +400 -0
- package/dist/crafting/index.js.map +1 -0
- package/dist/factions/index.d.ts +292 -0
- package/dist/factions/index.d.ts.map +1 -0
- package/dist/factions/index.js +334 -0
- package/dist/factions/index.js.map +1 -0
- package/dist/fleets/actions/index.d.ts +200 -0
- package/dist/fleets/actions/index.d.ts.map +1 -0
- package/dist/fleets/actions/index.js +854 -0
- package/dist/fleets/actions/index.js.map +1 -0
- package/dist/fleets/index.d.ts +100 -0
- package/dist/fleets/index.d.ts.map +1 -0
- package/dist/fleets/index.js +124 -0
- package/dist/fleets/index.js.map +1 -0
- package/dist/identity/index.d.ts +225 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +341 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/index.d.ts +401 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +519 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/c4/adapter.d.ts +6 -0
- package/dist/internal/c4/adapter.d.ts.map +1 -0
- package/dist/internal/c4/adapter.js +2 -0
- package/dist/internal/c4/adapter.js.map +1 -0
- package/dist/internal/c4/bindings.d.ts +4 -0
- package/dist/internal/c4/bindings.d.ts.map +1 -0
- package/dist/internal/c4/bindings.js +4 -0
- package/dist/internal/c4/bindings.js.map +1 -0
- package/dist/internal/c4/character-modifier.d.ts +5 -0
- package/dist/internal/c4/character-modifier.d.ts.map +1 -0
- package/dist/internal/c4/character-modifier.js +100 -0
- package/dist/internal/c4/character-modifier.js.map +1 -0
- package/dist/internal/c4/claim-stake.d.ts +140 -0
- package/dist/internal/c4/claim-stake.d.ts.map +1 -0
- package/dist/internal/c4/claim-stake.js +205 -0
- package/dist/internal/c4/claim-stake.js.map +1 -0
- package/dist/internal/c4/combat.d.ts +98 -0
- package/dist/internal/c4/combat.d.ts.map +1 -0
- package/dist/internal/c4/combat.js +232 -0
- package/dist/internal/c4/combat.js.map +1 -0
- package/dist/internal/c4/crafting.d.ts +170 -0
- package/dist/internal/c4/crafting.d.ts.map +1 -0
- package/dist/internal/c4/crafting.js +387 -0
- package/dist/internal/c4/crafting.js.map +1 -0
- package/dist/internal/c4/factions.d.ts +248 -0
- package/dist/internal/c4/factions.d.ts.map +1 -0
- package/dist/internal/c4/factions.js +589 -0
- package/dist/internal/c4/factions.js.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts +12 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.js +51 -0
- package/dist/internal/c4/fleet-crew-binding.js.map +1 -0
- package/dist/internal/c4/fleet.d.ts +310 -0
- package/dist/internal/c4/fleet.d.ts.map +1 -0
- package/dist/internal/c4/fleet.js +393 -0
- package/dist/internal/c4/fleet.js.map +1 -0
- package/dist/internal/c4/game.d.ts +192 -0
- package/dist/internal/c4/game.d.ts.map +1 -0
- package/dist/internal/c4/game.js +396 -0
- package/dist/internal/c4/game.js.map +1 -0
- package/dist/internal/c4/identity.d.ts +193 -0
- package/dist/internal/c4/identity.d.ts.map +1 -0
- package/dist/internal/c4/identity.js +180 -0
- package/dist/internal/c4/identity.js.map +1 -0
- package/dist/internal/c4/loot-layout.d.ts +20 -0
- package/dist/internal/c4/loot-layout.d.ts.map +1 -0
- package/dist/internal/c4/loot-layout.js +29 -0
- package/dist/internal/c4/loot-layout.js.map +1 -0
- package/dist/internal/c4/loyalty.d.ts +102 -0
- package/dist/internal/c4/loyalty.d.ts.map +1 -0
- package/dist/internal/c4/loyalty.js +318 -0
- package/dist/internal/c4/loyalty.js.map +1 -0
- package/dist/internal/c4/market.d.ts +112 -0
- package/dist/internal/c4/market.d.ts.map +1 -0
- package/dist/internal/c4/market.js +247 -0
- package/dist/internal/c4/market.js.map +1 -0
- package/dist/internal/c4/pda.d.ts +6 -0
- package/dist/internal/c4/pda.d.ts.map +1 -0
- package/dist/internal/c4/pda.js +45 -0
- package/dist/internal/c4/pda.js.map +1 -0
- package/dist/internal/c4/profile-faction.d.ts +14 -0
- package/dist/internal/c4/profile-faction.d.ts.map +1 -0
- package/dist/internal/c4/profile-faction.js +69 -0
- package/dist/internal/c4/profile-faction.js.map +1 -0
- package/dist/internal/c4/rewards.d.ts +135 -0
- package/dist/internal/c4/rewards.d.ts.map +1 -0
- package/dist/internal/c4/rewards.js +305 -0
- package/dist/internal/c4/rewards.js.map +1 -0
- package/dist/internal/c4/scanning.d.ts +85 -0
- package/dist/internal/c4/scanning.d.ts.map +1 -0
- package/dist/internal/c4/scanning.js +180 -0
- package/dist/internal/c4/scanning.js.map +1 -0
- package/dist/internal/c4/starbase.d.ts +186 -0
- package/dist/internal/c4/starbase.d.ts.map +1 -0
- package/dist/internal/c4/starbase.js +259 -0
- package/dist/internal/c4/starbase.js.map +1 -0
- package/dist/internal/c4/world.d.ts +294 -0
- package/dist/internal/c4/world.d.ts.map +1 -0
- package/dist/internal/c4/world.js +417 -0
- package/dist/internal/c4/world.js.map +1 -0
- package/dist/internal/cargo.d.ts +65 -0
- package/dist/internal/cargo.d.ts.map +1 -0
- package/dist/internal/cargo.js +46 -0
- package/dist/internal/cargo.js.map +1 -0
- package/dist/internal/claim-stake.d.ts +31 -0
- package/dist/internal/claim-stake.d.ts.map +1 -0
- package/dist/internal/claim-stake.js +20 -0
- package/dist/internal/claim-stake.js.map +1 -0
- package/dist/internal/fleet.d.ts +165 -0
- package/dist/internal/fleet.d.ts.map +1 -0
- package/dist/internal/fleet.js +179 -0
- package/dist/internal/fleet.js.map +1 -0
- package/dist/internal/game-context.d.ts +4 -0
- package/dist/internal/game-context.d.ts.map +1 -0
- package/dist/internal/game-context.js +9 -0
- package/dist/internal/game-context.js.map +1 -0
- package/dist/internal/immutable-tree.d.ts +5 -0
- package/dist/internal/immutable-tree.d.ts.map +1 -0
- package/dist/internal/immutable-tree.js +47 -0
- package/dist/internal/immutable-tree.js.map +1 -0
- package/dist/internal/json.d.ts +7 -0
- package/dist/internal/json.d.ts.map +1 -0
- package/dist/internal/json.js +33 -0
- package/dist/internal/json.js.map +1 -0
- package/dist/internal/planning/authorization-adapter.d.ts +63 -0
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -0
- package/dist/internal/planning/authorization-adapter.js +222 -0
- package/dist/internal/planning/authorization-adapter.js.map +1 -0
- package/dist/internal/read-meta.d.ts +84 -0
- package/dist/internal/read-meta.d.ts.map +1 -0
- package/dist/internal/read-meta.js +28 -0
- package/dist/internal/read-meta.js.map +1 -0
- package/dist/internal/resolved-snapshot.d.ts +3 -0
- package/dist/internal/resolved-snapshot.d.ts.map +1 -0
- package/dist/internal/resolved-snapshot.js +11 -0
- package/dist/internal/resolved-snapshot.js.map +1 -0
- package/dist/internal/zink/provider.d.ts +9 -0
- package/dist/internal/zink/provider.d.ts.map +1 -0
- package/dist/internal/zink/provider.js +213 -0
- package/dist/internal/zink/provider.js.map +1 -0
- package/dist/loyalty/index.d.ts +195 -0
- package/dist/loyalty/index.d.ts.map +1 -0
- package/dist/loyalty/index.js +289 -0
- package/dist/loyalty/index.js.map +1 -0
- package/dist/markets/index.d.ts +195 -0
- package/dist/markets/index.d.ts.map +1 -0
- package/dist/markets/index.js +232 -0
- package/dist/markets/index.js.map +1 -0
- package/dist/mining/index.d.ts +156 -0
- package/dist/mining/index.d.ts.map +1 -0
- package/dist/mining/index.js +236 -0
- package/dist/mining/index.js.map +1 -0
- package/dist/planning/assembly.d.ts +42 -0
- package/dist/planning/assembly.d.ts.map +1 -0
- package/dist/planning/assembly.js +141 -0
- package/dist/planning/assembly.js.map +1 -0
- package/dist/planning/composition.d.ts +4 -0
- package/dist/planning/composition.d.ts.map +1 -0
- package/dist/planning/composition.js +76 -0
- package/dist/planning/composition.js.map +1 -0
- package/dist/planning/execution.d.ts +93 -0
- package/dist/planning/execution.d.ts.map +1 -0
- package/dist/planning/execution.js +549 -0
- package/dist/planning/execution.js.map +1 -0
- package/dist/planning/index.d.ts +219 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +375 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/plan-instances.d.ts +3 -0
- package/dist/planning/plan-instances.d.ts.map +1 -0
- package/dist/planning/plan-instances.js +8 -0
- package/dist/planning/plan-instances.js.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts +154 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.js +449 -0
- package/dist/planning/plan-sequence-checkpoint.js.map +1 -0
- package/dist/planning/plan-sequence-execution.d.ts +72 -0
- package/dist/planning/plan-sequence-execution.d.ts.map +1 -0
- package/dist/planning/plan-sequence-execution.js +410 -0
- package/dist/planning/plan-sequence-execution.js.map +1 -0
- package/dist/planning/plan-sequence.d.ts +244 -0
- package/dist/planning/plan-sequence.d.ts.map +1 -0
- package/dist/planning/plan-sequence.js +264 -0
- package/dist/planning/plan-sequence.js.map +1 -0
- package/dist/planning/simulation.d.ts +50 -0
- package/dist/planning/simulation.d.ts.map +1 -0
- package/dist/planning/simulation.js +69 -0
- package/dist/planning/simulation.js.map +1 -0
- package/dist/registry/combat.d.ts +5 -0
- package/dist/registry/combat.d.ts.map +1 -0
- package/dist/registry/combat.js +7 -0
- package/dist/registry/combat.js.map +1 -0
- package/dist/registry/index.d.ts +138 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +397 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/rewards/index.d.ts +202 -0
- package/dist/rewards/index.d.ts.map +1 -0
- package/dist/rewards/index.js +290 -0
- package/dist/rewards/index.js.map +1 -0
- package/dist/scanning/index.d.ts +185 -0
- package/dist/scanning/index.d.ts.map +1 -0
- package/dist/scanning/index.js +207 -0
- package/dist/scanning/index.js.map +1 -0
- package/dist/starbases/actions/index.d.ts +60 -0
- package/dist/starbases/actions/index.d.ts.map +1 -0
- package/dist/starbases/actions/index.js +245 -0
- package/dist/starbases/actions/index.js.map +1 -0
- package/dist/starbases/index.d.ts +165 -0
- package/dist/starbases/index.d.ts.map +1 -0
- package/dist/starbases/index.js +213 -0
- package/dist/starbases/index.js.map +1 -0
- package/dist/world/index.d.ts +180 -0
- package/dist/world/index.d.ts.map +1 -0
- package/dist/world/index.js +265 -0
- package/dist/world/index.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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"}
|