@aephia/atlas-kit 0.6.0-next.61 → 0.6.0-next.63

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 (49) hide show
  1. package/dist/fleets/actions/crew-transfer.d.ts +41 -0
  2. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
  3. package/dist/fleets/actions/crew-transfer.js +114 -0
  4. package/dist/fleets/actions/crew-transfer.js.map +1 -0
  5. package/dist/fleets/actions/index.d.ts +1 -0
  6. package/dist/fleets/actions/index.d.ts.map +1 -1
  7. package/dist/fleets/actions/index.js +1 -0
  8. package/dist/fleets/actions/index.js.map +1 -1
  9. package/dist/internal/c4/game.d.ts +2 -0
  10. package/dist/internal/c4/game.d.ts.map +1 -1
  11. package/dist/internal/c4/game.js +5 -0
  12. package/dist/internal/c4/game.js.map +1 -1
  13. package/dist/internal/c4/runtime-bindings.d.ts +1 -1
  14. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -1
  15. package/dist/internal/c4/runtime-bindings.js +1 -1
  16. package/dist/internal/c4/runtime-bindings.js.map +1 -1
  17. package/dist/internal/c4/scan-lifecycle.d.ts +28 -0
  18. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -1
  19. package/dist/internal/c4/scan-lifecycle.js +22 -0
  20. package/dist/internal/c4/scan-lifecycle.js.map +1 -1
  21. package/dist/internal/planning/fleet-crew-guard.d.ts +28 -0
  22. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -0
  23. package/dist/internal/planning/fleet-crew-guard.js +47 -0
  24. package/dist/internal/planning/fleet-crew-guard.js.map +1 -0
  25. package/dist/internal/planning/fleet-crew-transfer.d.ts +7 -0
  26. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -0
  27. package/dist/internal/planning/fleet-crew-transfer.js +131 -0
  28. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -0
  29. package/dist/planning/execution.d.ts.map +1 -1
  30. package/dist/planning/execution.js +13 -1
  31. package/dist/planning/execution.js.map +1 -1
  32. package/dist/planning/index.d.ts +3 -2
  33. package/dist/planning/index.d.ts.map +1 -1
  34. package/dist/planning/index.js +59 -3
  35. package/dist/planning/index.js.map +1 -1
  36. package/dist/registry/ships.d.ts +2 -0
  37. package/dist/registry/ships.d.ts.map +1 -1
  38. package/dist/registry/ships.js +10 -2
  39. package/dist/registry/ships.js.map +1 -1
  40. package/dist/scanning/index.d.ts +1 -0
  41. package/dist/scanning/index.d.ts.map +1 -1
  42. package/dist/scanning/index.js +1 -0
  43. package/dist/scanning/index.js.map +1 -1
  44. package/dist/scanning/odds.d.ts +111 -0
  45. package/dist/scanning/odds.d.ts.map +1 -0
  46. package/dist/scanning/odds.js +294 -0
  47. package/dist/scanning/odds.js.map +1 -0
  48. package/dist/scanning/signals.d.ts +2 -2
  49. package/package.json +1 -1
@@ -30,11 +30,19 @@ declare function signalData(raw: RawAccount, v: ScanSignal): {
30
30
  sequence: bigint;
31
31
  status: "expired" | "empty" | "pending-entropy" | "contact" | "no-contact" | "recovered" | "abandoned";
32
32
  cooldownEndsAtUnixSeconds: bigint;
33
+ recoveryHistory: {
34
+ lastRegionId: number;
35
+ consecutiveRecoveries: number;
36
+ lastRecoveryAtUnixSeconds: bigint;
37
+ };
33
38
  attempt: {
34
39
  focus: "any" | "industrial" | "technology" | "tactical" | "exotic";
35
40
  regionId: number;
36
41
  patternId: number;
37
42
  policyRevision: number;
43
+ policyContentFingerprint: string;
44
+ lootProfileContentFingerprint: string;
45
+ eligibleLootRowIndexes: number[];
38
46
  lootProfileRevision: number;
39
47
  commitSlot: bigint;
40
48
  revealSlots: bigint[];
@@ -100,9 +108,12 @@ declare function policyData(raw: RawAccount, v: ScanPatternPolicy): {
100
108
  bump: number;
101
109
  game: import("@solana/kit").Address;
102
110
  patternId: number;
111
+ valueBudgetRaw: bigint;
112
+ allowedFocusCategories: ("any" | "industrial" | "technology" | "tactical" | "exotic")[];
103
113
  status: "active" | "draft" | "removed";
104
114
  strategy: "broad" | "focused" | "enhanced" | "deep" | "spatial";
105
115
  revision: number;
116
+ contentFingerprint: string;
106
117
  contactChanceBasisPoints: number;
107
118
  maximumRarity: "common" | "uncommon" | "rare" | "epic" | "legendary" | "anomalous";
108
119
  requiredResearchTagIds: number[];
@@ -124,6 +135,7 @@ declare function lootData(raw: RawAccount, v: ScanLootProfile): {
124
135
  regionId: number;
125
136
  status: "active" | "draft" | "removed";
126
137
  revision: number;
138
+ contentFingerprint: string;
127
139
  riskValueMultiplierBasisPoints: number;
128
140
  anchors: {
129
141
  x: {
@@ -137,6 +149,8 @@ declare function lootData(raw: RawAccount, v: ScanLootProfile): {
137
149
  }[];
138
150
  loot: {
139
151
  cargoId: number;
152
+ supportedPatternIds: number[];
153
+ valueUnits: number;
140
154
  baseQuantityRaw: bigint;
141
155
  rollWeight: number;
142
156
  rarity: "common" | "uncommon" | "rare" | "epic" | "legendary" | "anomalous";
@@ -154,11 +168,19 @@ export declare const scanSignalAccountDefinition: C4AccountAdapter<{
154
168
  sequence: bigint;
155
169
  status: "expired" | "empty" | "pending-entropy" | "contact" | "no-contact" | "recovered" | "abandoned";
156
170
  cooldownEndsAtUnixSeconds: bigint;
171
+ recoveryHistory: {
172
+ lastRegionId: number;
173
+ consecutiveRecoveries: number;
174
+ lastRecoveryAtUnixSeconds: bigint;
175
+ };
157
176
  attempt: {
158
177
  focus: "any" | "industrial" | "technology" | "tactical" | "exotic";
159
178
  regionId: number;
160
179
  patternId: number;
161
180
  policyRevision: number;
181
+ policyContentFingerprint: string;
182
+ lootProfileContentFingerprint: string;
183
+ eligibleLootRowIndexes: number[];
162
184
  lootProfileRevision: number;
163
185
  commitSlot: bigint;
164
186
  revealSlots: bigint[];
@@ -224,9 +246,12 @@ export declare const scanPatternPolicyAccountDefinition: C4AccountAdapter<{
224
246
  bump: number;
225
247
  game: import("@solana/kit").Address;
226
248
  patternId: number;
249
+ valueBudgetRaw: bigint;
250
+ allowedFocusCategories: ("any" | "industrial" | "technology" | "tactical" | "exotic")[];
227
251
  status: "active" | "draft" | "removed";
228
252
  strategy: "broad" | "focused" | "enhanced" | "deep" | "spatial";
229
253
  revision: number;
254
+ contentFingerprint: string;
230
255
  contactChanceBasisPoints: number;
231
256
  maximumRarity: "common" | "uncommon" | "rare" | "epic" | "legendary" | "anomalous";
232
257
  requiredResearchTagIds: number[];
@@ -248,6 +273,7 @@ export declare const scanLootProfileAccountDefinition: C4AccountAdapter<{
248
273
  regionId: number;
249
274
  status: "active" | "draft" | "removed";
250
275
  revision: number;
276
+ contentFingerprint: string;
251
277
  riskValueMultiplierBasisPoints: number;
252
278
  anchors: {
253
279
  x: {
@@ -261,6 +287,8 @@ export declare const scanLootProfileAccountDefinition: C4AccountAdapter<{
261
287
  }[];
262
288
  loot: {
263
289
  cargoId: number;
290
+ supportedPatternIds: number[];
291
+ valueUnits: number;
264
292
  baseQuantityRaw: bigint;
265
293
  rollWeight: number;
266
294
  rarity: "common" | "uncommon" | "rare" | "epic" | "legendary" | "anomalous";
@@ -1 +1 @@
1
- {"version":3,"file":"scan-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/scan-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAOrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,MAAM,eAAe,GACzB,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AACzD,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AA+BX,wBAAgB,eAAe,CAC7B,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,GACb,KAAK,CAOP;AA6BD,iBAAS,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE;;;;;;;;;EAEvC;AACD,iBAAS,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwEjD;AACD,iBAAS,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;EA0BxD;AACD,iBAAS,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBpD;AA6CD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKvC,CAAC;AACF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;EAK9C,CAAC;AACF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;EAK5C,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAC3D,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACrD,2GAA2G;AAC3G,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,GAAG,MAAM,8GAsCtB"}
1
+ {"version":3,"file":"scan-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/internal/c4/scan-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAOrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,MAAM,eAAe,GACzB,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AACzD,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AA+BX,wBAAgB,eAAe,CAC7B,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,GACb,KAAK,CAOP;AA6BD,iBAAS,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE;;;;;;;;;EAEvC;AASD,iBAAS,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFjD;AACD,iBAAS,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EA+BxD;AACD,iBAAS,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BpD;AA6CD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKvC,CAAC;AACF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;EAK9C,CAAC;AACF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK5C,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAC3D,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACrD,2GAA2G;AAC3G,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,OAAO,GAAG,MAAM,8GAsCtB"}
@@ -58,6 +58,12 @@ function fixed(raw) {
58
58
  function point(values) {
59
59
  return { x: fixed(values[0]), y: fixed(values[1]) };
60
60
  }
61
+ function fingerprint(bytes) {
62
+ return bytes.map((byte) => byte.toString(16).padStart(2, '0')).join('');
63
+ }
64
+ function bitIndexes(mask, width) {
65
+ return Array.from({ length: width }, (_, index) => index).filter((index) => (mask & (1n << BigInt(index))) !== 0n);
66
+ }
61
67
  function signalData(raw, v) {
62
68
  const kind = 'scanSignal';
63
69
  const status = enumValue(kind, raw, signalStatuses, v.status);
@@ -71,6 +77,11 @@ function signalData(raw, v) {
71
77
  sequence: v.sequence,
72
78
  status,
73
79
  cooldownEndsAtUnixSeconds: v.cooldownUntil,
80
+ recoveryHistory: {
81
+ lastRegionId: v.lastRegion,
82
+ consecutiveRecoveries: v.consecutiveRecoveries,
83
+ lastRecoveryAtUnixSeconds: v.lastRecoveryAt,
84
+ },
74
85
  attempt: status === 'empty'
75
86
  ? null
76
87
  : {
@@ -78,6 +89,9 @@ function signalData(raw, v) {
78
89
  regionId: v.regionId,
79
90
  patternId: v.scanPatternId,
80
91
  policyRevision: v.policyRevision,
92
+ policyContentFingerprint: fingerprint(v.policyHash),
93
+ lootProfileContentFingerprint: fingerprint(v.profileHash),
94
+ eligibleLootRowIndexes: bitIndexes(v.eligibilityBitmap, 64),
81
95
  lootProfileRevision: v.profileRevision,
82
96
  commitSlot: v.commitSlot,
83
97
  revealSlots: [...v.revealSlots],
@@ -133,9 +147,14 @@ function policyData(raw, v) {
133
147
  bump: v.bump,
134
148
  game: v.gameId,
135
149
  patternId: v.scanPatternId,
150
+ valueBudgetRaw: v.valueBudget,
151
+ allowedFocusCategories: bitIndexes(BigInt(v.allowedFocusCategoryMask), 8)
152
+ .filter((index) => index !== 0)
153
+ .map((index) => enumValue(kind, raw, scanCategories, index)),
136
154
  status: enumValue(kind, raw, catalogStatuses, v.status),
137
155
  strategy: enumValue(kind, raw, strategies, v.strategy),
138
156
  revision: v.revision,
157
+ contentFingerprint: fingerprint(v.contentHash),
139
158
  contactChanceBasisPoints: v.contactChanceBps,
140
159
  maximumRarity: enumValue(kind, raw, rarities, v.maxRarity),
141
160
  requiredResearchTagIds: tags(kind, raw, v.requiredResearchTags, v.requiredResearchTagCount),
@@ -157,10 +176,13 @@ function lootData(raw, v) {
157
176
  regionId: v.regionId,
158
177
  status: enumValue(kind, raw, catalogStatuses, v.status),
159
178
  revision: v.revision,
179
+ contentFingerprint: fingerprint(v.contentHash),
160
180
  riskValueMultiplierBasisPoints: v.riskValueMultiplierBps,
161
181
  anchors: v.anchors.map(point),
162
182
  loot: v.lootRows.map((row) => ({
163
183
  cargoId: row.cargoId,
184
+ supportedPatternIds: bitIndexes(BigInt(row.patternMask), 8),
185
+ valueUnits: row.valueUnits,
164
186
  baseQuantityRaw: row.baseQuantity,
165
187
  rollWeight: row.rollWeight,
166
188
  rarity: enumValue(kind, raw, rarities, row.rarity),
@@ -1 +1 @@
1
- {"version":3,"file":"scan-lifecycle.js","sourceRoot":"","sources":["../../../src/internal/c4/scan-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,iCAAiC,EACjC,+BAA+B,EAC/B,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,iBAAiB,GAIlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,SAAS,GAGV,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAKhC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK;IACzB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,YAAY;IACvC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,YAAY;IACvC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU;IACnC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ;CACvB,CAAC;AACX,MAAM,QAAQ,GAAG;IACf,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC7B,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,UAAU;IACjC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM;IACzB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM;IACzB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,WAAW;IACnC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,WAAW;CAC3B,CAAC;AACX,MAAM,UAAU,GAAG;IACjB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO;IAC7B,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU;IACnC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,SAAS;CACzB,CAAC;AACX,MAAM,eAAe,GAAG;IACtB,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO;IAClC,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,QAAQ;IACpC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,SAAS;CAC9B,CAAC;AACX,iFAAiF;AACjF,MAAM,cAAc,GAAG;IACrB,OAAO;IACP,iBAAiB;IACjB,SAAS;IACT,YAAY;IACZ,WAAW;IACX,WAAW;IACX,SAAS;CACD,CAAC;AACX,MAAM,UAAU,eAAe,CAC7B,IAAqB,EACrB,GAAe,EACf,MAAc;IAEd,MAAM,IAAI,kBAAkB,CAC1B,IAAI,EACJ,GAAG,CAAC,OAAO,EACX,IAAI,UAAU,CAAC,MAAM,CAAC,EACtB,GAAG,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,kGAAkG,CACpI,CAAC;AACJ,CAAC;AACD,SAAS,SAAS,CAChB,IAAqB,EACrB,GAAe,EACf,GAAgC,EAChC,KAAa;IAEb,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,KAAK,KAAK,SAAS;QACrB,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,+BAA+B,KAAK,GAAG,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,IAAI,CACX,IAAqB,EACrB,GAAe,EACf,MAAyB,EACzB,KAAa;IAEb,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM;QACvB,eAAe,CACb,IAAI,EACJ,GAAG,EACH,qDAAqD,CACtD,CAAC;IACJ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AACD,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AAC/C,CAAC;AACD,SAAS,KAAK,CAAC,MAAyB;IACtC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;AACxD,CAAC;AACD,SAAS,UAAU,CAAC,GAAe,EAAE,CAAa;IAChD,MAAM,IAAI,GAAG,YAAY,CAAC;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,MAAM;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM;QACN,yBAAyB,EAAE,CAAC,CAAC,aAAa;QAC1C,OAAO,EACL,MAAM,KAAK,OAAO;YAChB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC;gBACE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC;gBACpD,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,SAAS,EAAE,CAAC,CAAC,aAAa;gBAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,mBAAmB,EAAE,CAAC,CAAC,eAAe;gBACtC,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;gBAC/B,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC3B,qBAAqB,EAAE,CAAC,CAAC,UAAU;gBACnC,wBAAwB,EAAE,CAAC,CAAC,gBAAgB;gBAC5C,qBAAqB,EAAE,CAAC,CAAC,aAAa;aACvC;QACP,OAAO,EACL,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC;gBACE,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;gBAChD,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC;gBAC1D,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;gBACnC,oBAAoB,EAAE,CAAC,CAAC,SAAS;gBACjC,eAAe,EAAE,CAAC,CAAC,YAAY;gBAC/B,kBAAkB,EAAE,CAAC,CAAC,eAAe;aACtC;YACH,CAAC,CAAC,IAAI;QACV,OAAO,EACL,MAAM,KAAK,WAAW;YACpB,CAAC,CAAC;gBACE,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;gBAChD,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC;gBAC1D,kBAAkB,EAAE,CAAC,CAAC,eAAe;gBACrC,mBAAmB,EAAE,CAAC,CAAC,gBAAgB;gBACvC,kBAAkB,EAAE,CAAC,CAAC,eAAe;gBACrC,YAAY,EAAE,CAAC,CAAC,SAAS;gBACzB,qBAAqB,EAAE,CAAC,CAAC,UAAU;gBACnC,qBAAqB,EAAE,CAAC,CAAC,UAAU;aACpC;YACH,CAAC,CAAC,IAAI;QACV,KAAK,EACH,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,SAAS;YAC5C,CAAC,CAAC;gBACE,oBAAoB,EAAE,CAAC,CAAC,SAAS;gBACjC,qBAAqB,EAAE,CAAC,CAAC,UAAU;aACpC;YACH,CAAC,CAAC,IAAI;QACV,SAAS,EACP,MAAM,KAAK,YAAY;YACrB,CAAC,CAAC;gBACE,YAAY,EAAE,CAAC,CAAC,SAAS;gBACzB,qBAAqB,EAAE,CAAC,CAAC,UAAU;gBACnC,qBAAqB,EAAE,CAAC,CAAC,UAAU;aACpC;YACH,CAAC,CAAC,IAAI;KACX,CAAC;AACJ,CAAC;AACD,SAAS,UAAU,CAAC,GAAe,EAAE,CAAoB;IACvD,MAAM,IAAI,GAAG,mBAAmB,CAAC;IACjC,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,MAAM;QACd,SAAS,EAAE,CAAC,CAAC,aAAa;QAC1B,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACvD,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC;QACtD,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,wBAAwB,EAAE,CAAC,CAAC,gBAAgB;QAC5C,aAAa,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC;QAC1D,sBAAsB,EAAE,IAAI,CAC1B,IAAI,EACJ,GAAG,EACH,CAAC,CAAC,oBAAoB,EACtB,CAAC,CAAC,wBAAwB,CAC3B;QACD,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;QACnC,qBAAqB,EAAE,CAAC,CAAC,aAAa;QACtC,cAAc,EAAE,CAAC,CAAC,WAAW;QAC7B,aAAa,EAAE,CAAC,CAAC,UAAU;QAC3B,gCAAgC,EAAE,CAAC,CAAC,wBAAwB;QAC5D,4BAA4B,EAAE,CAAC,CAAC,gBAAgB;QAChD,sBAAsB,EAAE,CAAC,CAAC,mBAAmB;KAC9C,CAAC;AACJ,CAAC;AACD,SAAS,QAAQ,CAAC,GAAe,EAAE,CAAkB;IACnD,MAAM,IAAI,GAAG,iBAAiB,CAAC;IAC/B,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,MAAM;QACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACvD,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,8BAA8B,EAAE,CAAC,CAAC,sBAAsB;QACxD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,eAAe,EAAE,GAAG,CAAC,YAAY;YACjC,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;YAClD,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,QAAQ,CAAC;YAC5D,sBAAsB,EAAE,IAAI,CAC1B,IAAI,EACJ,GAAG,EACH,GAAG,CAAC,oBAAoB,EACxB,GAAG,CAAC,wBAAwB,CAC7B;SACF,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AACD,SAAS,OAAO,CACd,IAAqB,EACrB,aAAyB,EACzB,OAAmB,EACnB,SAA2C;IAE3C,MAAM,QAAQ,GAAG,CAAC,GAAe,EAAE,EAAE;QACnC,IAAI,GAAG,CAAC,KAAK,KAAK,oBAAoB;YACpC,MAAM,IAAI,wBAAwB,CAChC,IAAI,EACJ,GAAG,CAAC,OAAO,EACX,oBAAoB,EACpB,GAAG,CAAC,KAAK,CACV,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,IAAI,yBAAyB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,GAAG,CAAC,UAAU;YAChB,eAAe,CACb,IAAI,EACJ,GAAG,EACH,0DAA0D,CAC3D,CAAC;IACN,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,IAAI;QACV,cAAc,EAAE,oBAAoB;QACpC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;QAChD,iBAAiB,EAAE,aAAa,CAAC,MAAM;QACvC,QAAQ;QACR,MAAM,CAAC,GAAe;YACpB,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,KAAQ,CAAC;YACb,IAAI,CAAC;gBACH,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjD,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM;oBACzB,MAAM,IAAI,UAAU,CAAC,yBAAyB,CAAC,CAAC;gBAClD,KAAK,GAAG,OAAO,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AACD,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAChD,YAAY,EACZ,yBAAyB,EACzB,oBAAoB,EAAE,EACtB,UAAU,CACX,CAAC;AACF,MAAM,CAAC,MAAM,kCAAkC,GAAG,OAAO,CACvD,mBAAmB,EACnB,iCAAiC,EACjC,2BAA2B,EAAE,EAC7B,UAAU,CACX,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAG,OAAO,CACrD,iBAAiB,EACjB,+BAA+B,EAC/B,yBAAyB,EAAE,EAC3B,QAAQ,CACT,CAAC;AAKF,2GAA2G;AAC3G,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAqB,EACrB,IAAa,EACb,GAAqB;IAErB,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YAC5C,MAAM,IAAI,YAAY,CACpB,mBAAmB,EACnB,8FAA8F,EAC9F,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;QACJ,IAAI,GAAG,iBAAiB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,IACE,OAAO,GAAG,KAAK,QAAQ;YACvB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;YACtB,GAAG,GAAG,CAAC;YACP,GAAG,GAAG,KAAK;YAEX,MAAM,IAAI,YAAY,CACpB,mBAAmB,EACnB,OAAO,IAAI,kFAAkF,EAC7F,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;QACJ,IAAI,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,MAAM,GAAG;QACb,UAAU,EAAE,YAAY;QACxB,iBAAiB,EAAE,mBAAmB;QACtC,eAAe,EAAE,iBAAiB;KACnC,CAAC,IAAI,CAAC,CAAC;IACR,OAAO,wBAAwB,CAAC;QAC9B,cAAc,EAAE,oBAAoB;QACpC,KAAK,EAAE;YACL,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YAChC,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI;SACL;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"scan-lifecycle.js","sourceRoot":"","sources":["../../../src/internal/c4/scan-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { AccountRole, type Address } from '@solana/kit';
2
+ import type { PlanPrecondition, PlanStep } from '../../planning/index.js';
3
+ export interface FleetCrewGuard {
4
+ readonly kind: 'fleet-crew-transfer';
5
+ readonly direction: 'load' | 'unload';
6
+ readonly address: Address;
7
+ readonly game: Address;
8
+ readonly profile: Address;
9
+ readonly authority: Address;
10
+ readonly system: Address;
11
+ readonly starbasePlayer: Address;
12
+ readonly keyIndex: number;
13
+ readonly count: number;
14
+ readonly systemSequenceId: bigint;
15
+ readonly describes: string;
16
+ readonly dataHash?: never;
17
+ }
18
+ export declare function crewTransferInstruction(g: Omit<FleetCrewGuard, 'kind' | 'systemSequenceId' | 'describes'>): {
19
+ programAddress: Address<"C4SAgeKLgb3pTLWhVr6NRwWyYFuTR7ZeSXFrzoLwfMzF">;
20
+ accounts: {
21
+ address: Address;
22
+ role: AccountRole;
23
+ }[];
24
+ data: Uint8Array<ArrayBuffer>;
25
+ };
26
+ /** Ordinary crew transfers stand alone: later instructions cannot bypass fresh balance checks. */
27
+ export declare function validateCrewTransferInstructions(steps: readonly PlanStep[], guards: readonly PlanPrecondition[]): void;
28
+ //# sourceMappingURL=fleet-crew-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-crew-guard.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-crew-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAQxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC1E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B;AACD,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,GAAG,WAAW,CAAC;;;;;;;EAyBnE;AACD,kGAAkG;AAClG,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,IAAI,CAqCN"}
@@ -0,0 +1,47 @@
1
+ import { AccountRole } from '@solana/kit';
2
+ import { SAGE_PROGRAM_ADDRESS, PLAYER_PROFILE_PROGRAM_ADDRESS, LOAD_FLEET_CREW_DISCRIMINATOR, UNLOAD_FLEET_CREW_DISCRIMINATOR, } from '../c4/runtime-bindings.js';
3
+ import { InvalidActionInputError } from '../../client/errors.js';
4
+ export function crewTransferInstruction(g) {
5
+ return {
6
+ programAddress: SAGE_PROGRAM_ADDRESS,
7
+ accounts: [
8
+ { address: g.authority, role: AccountRole.READONLY_SIGNER },
9
+ { address: g.profile, role: AccountRole.WRITABLE },
10
+ { address: SAGE_PROGRAM_ADDRESS, role: AccountRole.READONLY },
11
+ { address: PLAYER_PROFILE_PROGRAM_ADDRESS, role: AccountRole.READONLY },
12
+ { address: g.address, role: AccountRole.WRITABLE },
13
+ { address: g.game, role: AccountRole.READONLY },
14
+ { address: g.system, role: AccountRole.READONLY },
15
+ { address: g.starbasePlayer, role: AccountRole.WRITABLE },
16
+ ],
17
+ // Pinned ordinary crew payload: discriminator, u16 count, u16 key index.
18
+ data: Uint8Array.of(...(g.direction === 'load'
19
+ ? LOAD_FLEET_CREW_DISCRIMINATOR
20
+ : UNLOAD_FLEET_CREW_DISCRIMINATOR), g.count & 255, g.count >>> 8, g.keyIndex & 255, g.keyIndex >>> 8),
21
+ };
22
+ }
23
+ /** Ordinary crew transfers stand alone: later instructions cannot bypass fresh balance checks. */
24
+ export function validateCrewTransferInstructions(steps, guards) {
25
+ const selected = guards.filter((g) => g.kind === 'fleet-crew-transfer');
26
+ const transfers = steps.filter(({ instruction: i }) => i.programAddress === SAGE_PROGRAM_ADDRESS &&
27
+ [LOAD_FLEET_CREW_DISCRIMINATOR, UNLOAD_FLEET_CREW_DISCRIMINATOR].some((d) => d.every((v, n) => i.data?.[n] === v)));
28
+ if (!selected.length && !transfers.length)
29
+ return;
30
+ const bad = () => {
31
+ throw new InvalidActionInputError('crewTransfer', undefined, 'one standalone ordinary crew transfer and its exact matching safeguard', 'Recreate the crew transfer Plan; execute each transfer separately and refresh crew balances before preparing another action.');
32
+ };
33
+ if (steps.length !== 1 || selected.length !== 1 || transfers.length !== 1)
34
+ bad();
35
+ const g = selected[0];
36
+ const step = transfers[0];
37
+ const expected = crewTransferInstruction(g), actual = step.instruction;
38
+ if (step.signers.length !== 1 ||
39
+ step.signers[0] !== g.authority ||
40
+ actual.accounts?.length !== expected.accounts.length ||
41
+ expected.accounts.some((a, n) => actual.accounts?.[n]?.address !== a.address ||
42
+ actual.accounts[n]?.role !== a.role) ||
43
+ actual.data?.length !== expected.data.length ||
44
+ expected.data.some((v, n) => actual.data?.[n] !== v))
45
+ bad();
46
+ }
47
+ //# sourceMappingURL=fleet-crew-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-crew-guard.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-crew-guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type Commitment } from '@solana/kit';
2
+ import type { SageContext } from '../../client/contracts.js';
3
+ import type { FleetCrewGuard } from './fleet-crew-guard.js';
4
+ export type FleetCrewIntent = Pick<FleetCrewGuard, 'address' | 'game' | 'profile' | 'authority' | 'keyIndex' | 'direction' | 'count'>;
5
+ /** Fresh count predicates and canonical relationships, shared by planning and execution. */
6
+ export declare function resolveFleetCrewTransfer(ctx: SageContext, intent: FleetCrewIntent, expected?: FleetCrewGuard, commitment?: Commitment): Promise<Pick<FleetCrewGuard, 'system' | 'starbasePlayer' | 'systemSequenceId'>>;
7
+ //# sourceMappingURL=fleet-crew-transfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-crew-transfer.d.ts","sourceRoot":"","sources":["../../../src/internal/planning/fleet-crew-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAGV,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAyBnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,cAAc,EACZ,SAAS,GACT,MAAM,GACN,SAAS,GACT,WAAW,GACX,UAAU,GACV,WAAW,GACX,OAAO,CACV,CAAC;AAOF,4FAA4F;AAC5F,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,eAAe,EACvB,QAAQ,CAAC,EAAE,cAAc,EACzB,UAAU,GAAE,UAAwB,GACnC,OAAO,CACR,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,CACvE,CAqKA"}
@@ -0,0 +1,131 @@
1
+ import { isOffCurveAddress, getProgramDerivedAddress, getAddressEncoder, getU16Encoder, } from '@solana/kit';
2
+ import { SAGE_PROGRAM_ADDRESS } from '../c4/runtime-bindings.js';
3
+ import { SageSdkError } from '../../client/errors.js';
4
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
5
+ import { requireGameAddress } from '../game-context.js';
6
+ import { readFreshGameShipDefinitionSequence } from '../../registry/ships.js';
7
+ import { fleetAccountDefinition, deriveFleetAddress } from '../c4/fleet.js';
8
+ import { findCharacterPda, characterAccountDefinition, profileAccountDefinition, } from '../c4/identity.js';
9
+ import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../c4/starbase.js';
10
+ import { deriveStarSystemAddress, starSystemAccountDefinition, } from '../c4/world.js';
11
+ import { deriveFleetCrewBindingAddress, fleetCrewBindingAccountDefinition, } from '../c4/fleet-crew-binding.js';
12
+ import { PROFILE_SCOPE } from '../c4/profile-permissions.js';
13
+ import { CLOCK_ADDRESS, readClock } from './faction-enrollment.js';
14
+ function fail(message) {
15
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', `${message} Refresh the owned Docked Fleet and Starbase crew, then recreate the crew transfer Plan.`);
16
+ }
17
+ /** Fresh count predicates and canonical relationships, shared by planning and execution. */
18
+ export async function resolveFleetCrewTransfer(ctx, intent, expected, commitment = 'confirmed') {
19
+ if (requireGameAddress(ctx) !== intent.game ||
20
+ isOffCurveAddress(intent.authority))
21
+ fail('Crew transfer requires this deployment and an on-curve direct Profile authority.');
22
+ const [fleetRaw] = await readContextRawAccounts(ctx, [intent.address], {
23
+ commitment,
24
+ });
25
+ if (!fleetRaw || fleetRaw.address !== intent.address || fleetRaw.executable)
26
+ fail('The selected Fleet is missing, executable or has a contradictory address.');
27
+ const fleet = fleetAccountDefinition.decode(fleetRaw);
28
+ if (fleet.game !== intent.game ||
29
+ fleet.ownerProfile !== intent.profile ||
30
+ (await deriveFleetAddress(fleet)) !== intent.address ||
31
+ fleet.npcFactionId !== 0 ||
32
+ fleet.subProfile !== '11111111111111111111111111111111')
33
+ fail('Crew transfer supports only a canonical directly owned player Fleet without a subprofile.');
34
+ if (fleet.state.kind !== 'docked')
35
+ fail('Crew can be transferred only while the Fleet is Docked.');
36
+ if (fleet.rentedCrew !== 0)
37
+ fail('Rented crew transfers are not supported by this ordinary-crew route. Manage the rental through a supported game client first.');
38
+ const systemAddress = fleet.state.system;
39
+ const [characterAddress, bindingAddress] = await Promise.all([
40
+ findCharacterPda(intent.profile, intent.game),
41
+ deriveFleetCrewBindingAddress(intent.address),
42
+ ]);
43
+ const [playerAddress, [rosterAddress]] = await Promise.all([
44
+ deriveStarbasePlayerAddress(systemAddress, characterAddress),
45
+ getProgramDerivedAddress({
46
+ programAddress: SAGE_PROGRAM_ADDRESS,
47
+ seeds: [
48
+ new TextEncoder().encode('CrewRoster'),
49
+ getAddressEncoder().encode(characterAddress),
50
+ getU16Encoder().encode(0),
51
+ ],
52
+ }),
53
+ ]);
54
+ const addresses = [
55
+ intent.profile,
56
+ characterAddress,
57
+ systemAddress,
58
+ playerAddress,
59
+ bindingAddress,
60
+ rosterAddress,
61
+ CLOCK_ADDRESS,
62
+ ];
63
+ const [rows, shipSequence] = await Promise.all([
64
+ readContextRawAccounts(ctx, addresses, { commitment }),
65
+ readFreshGameShipDefinitionSequence(ctx, { commitment }),
66
+ ]);
67
+ if (rows.length !== addresses.length ||
68
+ rows.some((raw, i) => raw && (raw.address !== addresses[i] || raw.executable)))
69
+ fail('Crew transfer reads contain missing positions, contradictory addresses or executable accounts.');
70
+ const accounts = new Map(addresses.map((a, i) => [a, rows[i]]));
71
+ const required = (a) => accounts.get(a) ?? fail(`Required crew transfer account ${a} is missing.`);
72
+ const profile = profileAccountDefinition.decode(required(intent.profile));
73
+ const character = characterAccountDefinition.decode(required(characterAddress));
74
+ const system = starSystemAccountDefinition.decode(required(systemAddress));
75
+ const player = starbasePlayerAccountDefinition.decode(required(playerAddress));
76
+ if (character.game !== intent.game ||
77
+ character.playerProfile !== intent.profile ||
78
+ system.game !== intent.game ||
79
+ (await deriveStarSystemAddress(system.game, system.systemId)) !==
80
+ systemAddress ||
81
+ !system.starbase ||
82
+ player.playerProfile !== intent.profile ||
83
+ player.character !== characterAddress ||
84
+ player.system !== systemAddress ||
85
+ player.faction !== fleet.faction)
86
+ fail('The Character, System or StarbasePlayer does not match the canonical Game and Profile relationships.');
87
+ if (fleet.state.systemSeqId !== system.sequenceId ||
88
+ player.sequenceId !== system.sequenceId ||
89
+ (expected &&
90
+ (expected.system !== systemAddress ||
91
+ expected.starbasePlayer !== playerAddress ||
92
+ expected.systemSequenceId !== system.sequenceId)))
93
+ fail('The docking System or Starbase generation changed. Reconcile docking through the game before transferring crew.');
94
+ if (fleet.shipDefinitionsSeqId !== shipSequence)
95
+ fail('Fleet stats use stale ship definitions. Refresh the Fleet through a supported game client before checking crew capacity.');
96
+ if (accounts.get(rosterAddress))
97
+ fail('This Character has an individual-crew roster. This planner supports only ordinary crew with no page-0 roster; use the supported game client for roster-aware transfers.');
98
+ const binding = accounts.get(bindingAddress);
99
+ if (binding && !fleetCrewBindingAccountDefinition.decode(binding).isNeutral)
100
+ fail('The Fleet has a populated or unsupported crew binding. Use roster-aware transfer through a supported game client.');
101
+ const now = readClock(required(CLOCK_ADDRESS));
102
+ const key = profile.keys[intent.keyIndex];
103
+ if (!key ||
104
+ key.address !== intent.authority ||
105
+ (key.expiresAtRaw >= 0n && key.expiresAtRaw < now) ||
106
+ key.scope !== PROFILE_SCOPE ||
107
+ (key.permissionsRaw & 1n) === 0n)
108
+ fail('Crew transfer requires a current direct Profile AUTH key. Select the correct key index; restricted or delegated crew permissions are not qualified.');
109
+ const capacity = fleet.stats.misc.requiredCrew + fleet.stats.misc.passengerCapacity;
110
+ if (player.busyCrew > player.totalCrew)
111
+ fail('Starbase busy crew exceeds its total crew; reconcile the Starbase state before transferring.');
112
+ if (intent.direction === 'load') {
113
+ if (player.totalCrew - player.busyCrew < intent.count)
114
+ fail('The Starbase has too few available crew; finish their current assignments or reduce the requested count.');
115
+ if (fleet.crewCount + intent.count > capacity ||
116
+ fleet.crewCount + intent.count > 65535)
117
+ fail('The requested crew exceed the Fleet required-crew plus passenger capacity; reduce the count.');
118
+ }
119
+ else {
120
+ if (fleet.crewCount < intent.count)
121
+ fail('The Fleet has fewer crew aboard than requested; reduce the unload count.');
122
+ if (player.totalCrew + intent.count > 4294967295)
123
+ fail('The Starbase total crew would exceed its stored limit; select a smaller count.');
124
+ }
125
+ return {
126
+ system: systemAddress,
127
+ starbasePlayer: playerAddress,
128
+ systemSequenceId: system.sequenceId,
129
+ };
130
+ }
131
+ //# sourceMappingURL=fleet-crew-transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-crew-transfer.js","sourceRoot":"","sources":["../../../src/internal/planning/fleet-crew-transfer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/planning/execution.ts"],"names":[],"mappings":"AA6DA,OAAO,EAcL,KAAK,UAAU,EACf,KAAK,SAAS,EAOd,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAEV,WAAW,EAEZ,MAAM,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,IAAI,EAAoB,MAAM,YAAY,CAAC;AAgBzD;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,CAAC;IACP,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,YAAY,GAAG,kBAAkB,GAAG,cAAc,CAAC;IAC9D,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC,CAAC;AAEP;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAYhF,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,UAAU,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AA2vCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,mFAAmF;AACnF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,EAC3B,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA2G9B"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/planning/execution.ts"],"names":[],"mappings":"AA8DA,OAAO,EAcL,KAAK,UAAU,EACf,KAAK,SAAS,EAOd,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAEV,WAAW,EAEZ,MAAM,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,IAAI,EAAoB,MAAM,YAAY,CAAC;AAgBzD;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,CAAC;IACP,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC,GACF,QAAQ,CAAC;IACP,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,YAAY,GAAG,kBAAkB,GAAG,cAAc,CAAC;IAC9D,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC,CAAC;AAEP;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAYhF,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,UAAU,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AA0wCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,mFAAmF;AACnF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,EAC3B,SAAS,CAAC,EAAE,sBAAsB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA2G9B"}
@@ -1,3 +1,4 @@
1
+ import { resolveFleetCrewTransfer } from '../internal/planning/fleet-crew-transfer.js';
1
2
  import { revalidateScanCompletion } from '../internal/planning/scan-completion.js';
2
3
  import { openSignalAddresses, validateOpenSignal, } from '../internal/planning/open-signal.js';
3
4
  import { revalidateDetect } from '../internal/planning/scan-detect.js';
@@ -337,6 +338,16 @@ function checkRegistrationFunding(registrations, fee) {
337
338
  }
338
339
  async function checkPreconditions(context, allPreconditions, steps, commitment) {
339
340
  for (const guard of allPreconditions) {
341
+ if (guard.kind === 'fleet-crew-transfer') {
342
+ try {
343
+ await resolveFleetCrewTransfer(context, guard, guard, commitment);
344
+ }
345
+ catch (error) {
346
+ throw new ActionPreconditionFailedError(guard, undefined, error instanceof SageSdkError
347
+ ? error.message
348
+ : 'Crew transfer prerequisites could not be verified. Refresh crew state and recreate the Plan.');
349
+ }
350
+ }
340
351
  if (guard.kind === 'scan-completion')
341
352
  await revalidateScanCompletion(context, guard, commitment);
342
353
  if (guard.kind === 'scan-detect')
@@ -411,7 +422,8 @@ async function checkPreconditions(context, allPreconditions, steps, commitment)
411
422
  guard.kind !== 'character-registration' &&
412
423
  guard.kind !== 'scan-detect' &&
413
424
  guard.kind !== 'scan-completion' &&
414
- guard.kind !== 'fleet-respawn');
425
+ guard.kind !== 'fleet-respawn' &&
426
+ guard.kind !== 'fleet-crew-transfer');
415
427
  const fleetCreationAccounts = new Map();
416
428
  const fleetAssemblyAccounts = new Map();
417
429
  const importFundingAccounts = new Map();