@agent-e/core 1.6.2 → 1.6.4
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/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/index.d.mts +0 -777
- package/dist/index.d.ts +0 -777
package/dist/index.d.ts
DELETED
|
@@ -1,777 +0,0 @@
|
|
|
1
|
-
/** High-level parameter categories (what it IS, not what it's called) */
|
|
2
|
-
type ParameterType = 'cost' | 'fee' | 'reward' | 'yield' | 'rate' | 'cap' | 'penalty' | 'multiplier' | string;
|
|
3
|
-
/** How a parameter change affects net currency flow */
|
|
4
|
-
type FlowImpact = 'sink' | 'faucet' | 'neutral' | 'mixed' | 'friction' | 'redistribution';
|
|
5
|
-
/** Scope narrows which concrete parameter a type resolves to */
|
|
6
|
-
interface ParameterScope {
|
|
7
|
-
system?: string;
|
|
8
|
-
currency?: string;
|
|
9
|
-
tags?: string[];
|
|
10
|
-
}
|
|
11
|
-
/** A registered parameter in the economy */
|
|
12
|
-
interface RegisteredParameter {
|
|
13
|
-
/** Concrete key used by the adapter (e.g. 'craftingCost', 'stakingYield') */
|
|
14
|
-
key: string;
|
|
15
|
-
/** What type of parameter this is */
|
|
16
|
-
type: ParameterType;
|
|
17
|
-
/** How changing this affects net flow */
|
|
18
|
-
flowImpact: FlowImpact;
|
|
19
|
-
/** Scope constraints — narrows resolution */
|
|
20
|
-
scope?: Partial<ParameterScope>;
|
|
21
|
-
/** Current value (updated after each apply) */
|
|
22
|
-
currentValue?: number;
|
|
23
|
-
/** Human-readable description */
|
|
24
|
-
description?: string;
|
|
25
|
-
/** Priority tiebreaker — higher wins when specificity scores are equal */
|
|
26
|
-
priority?: number;
|
|
27
|
-
/** Human-readable label for UIs and logs */
|
|
28
|
-
label?: string;
|
|
29
|
-
}
|
|
30
|
-
/** Result of registry.validate() */
|
|
31
|
-
interface RegistryValidationResult {
|
|
32
|
-
valid: boolean;
|
|
33
|
-
warnings: string[];
|
|
34
|
-
errors: string[];
|
|
35
|
-
}
|
|
36
|
-
declare class ParameterRegistry {
|
|
37
|
-
private parameters;
|
|
38
|
-
/** Register a parameter. Overwrites if key already exists. */
|
|
39
|
-
register(param: RegisteredParameter): void;
|
|
40
|
-
/** Register multiple parameters at once. */
|
|
41
|
-
registerAll(params: RegisteredParameter[]): void;
|
|
42
|
-
/**
|
|
43
|
-
* Resolve a parameterType + scope to a concrete RegisteredParameter.
|
|
44
|
-
* Returns the best match, or undefined if no match.
|
|
45
|
-
*
|
|
46
|
-
* Matching rules:
|
|
47
|
-
* 1. Filter candidates by type
|
|
48
|
-
* 2. Score each by scope specificity (system +10, currency +5, tags +3 each)
|
|
49
|
-
* 3. Mismatched scope fields disqualify (score = -Infinity)
|
|
50
|
-
* 4. Ties broken by `priority` (higher wins), then registration order
|
|
51
|
-
* 5. All disqualified → undefined
|
|
52
|
-
*/
|
|
53
|
-
resolve(type: ParameterType, scope?: Partial<ParameterScope>): RegisteredParameter | undefined;
|
|
54
|
-
/** Find all parameters of a given type. */
|
|
55
|
-
findByType(type: ParameterType): RegisteredParameter[];
|
|
56
|
-
/** Find all parameters belonging to a given system. */
|
|
57
|
-
findBySystem(system: string): RegisteredParameter[];
|
|
58
|
-
/** Get a parameter by its concrete key. */
|
|
59
|
-
get(key: string): RegisteredParameter | undefined;
|
|
60
|
-
/** Get the flow impact of a parameter by its concrete key. */
|
|
61
|
-
getFlowImpact(key: string): FlowImpact | undefined;
|
|
62
|
-
/** Update the current value of a registered parameter. */
|
|
63
|
-
updateValue(key: string, value: number): void;
|
|
64
|
-
/** Get all registered parameters. */
|
|
65
|
-
getAll(): RegisteredParameter[];
|
|
66
|
-
/** Number of registered parameters. */
|
|
67
|
-
get size(): number;
|
|
68
|
-
/**
|
|
69
|
-
* Validate the registry for common misconfigurations.
|
|
70
|
-
* Returns warnings (non-fatal) and errors (likely broken).
|
|
71
|
-
*/
|
|
72
|
-
validate(): RegistryValidationResult;
|
|
73
|
-
private scopeSpecificity;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
type EconomicEventType = 'trade' | 'mint' | 'burn' | 'transfer' | 'produce' | 'consume' | 'role_change' | 'enter' | 'churn';
|
|
77
|
-
interface EconomicEvent {
|
|
78
|
-
type: EconomicEventType;
|
|
79
|
-
timestamp: number;
|
|
80
|
-
actor: string;
|
|
81
|
-
role?: string;
|
|
82
|
-
resource?: string;
|
|
83
|
-
currency?: string;
|
|
84
|
-
amount?: number;
|
|
85
|
-
price?: number;
|
|
86
|
-
from?: string;
|
|
87
|
-
to?: string;
|
|
88
|
-
system?: string;
|
|
89
|
-
sourceOrSink?: string;
|
|
90
|
-
metadata?: Record<string, unknown>;
|
|
91
|
-
}
|
|
92
|
-
type PinchPointStatus = 'optimal' | 'oversupplied' | 'scarce';
|
|
93
|
-
interface EconomyMetrics {
|
|
94
|
-
tick: number;
|
|
95
|
-
timestamp: number;
|
|
96
|
-
currencies: string[];
|
|
97
|
-
totalSupplyByCurrency: Record<string, number>;
|
|
98
|
-
netFlowByCurrency: Record<string, number>;
|
|
99
|
-
velocityByCurrency: Record<string, number>;
|
|
100
|
-
inflationRateByCurrency: Record<string, number>;
|
|
101
|
-
faucetVolumeByCurrency: Record<string, number>;
|
|
102
|
-
sinkVolumeByCurrency: Record<string, number>;
|
|
103
|
-
tapSinkRatioByCurrency: Record<string, number>;
|
|
104
|
-
anchorRatioDriftByCurrency: Record<string, number>;
|
|
105
|
-
totalSupply: number;
|
|
106
|
-
netFlow: number;
|
|
107
|
-
velocity: number;
|
|
108
|
-
inflationRate: number;
|
|
109
|
-
faucetVolume: number;
|
|
110
|
-
sinkVolume: number;
|
|
111
|
-
tapSinkRatio: number;
|
|
112
|
-
anchorRatioDrift: number;
|
|
113
|
-
giniCoefficientByCurrency: Record<string, number>;
|
|
114
|
-
medianBalanceByCurrency: Record<string, number>;
|
|
115
|
-
meanBalanceByCurrency: Record<string, number>;
|
|
116
|
-
top10PctShareByCurrency: Record<string, number>;
|
|
117
|
-
meanMedianDivergenceByCurrency: Record<string, number>;
|
|
118
|
-
giniCoefficient: number;
|
|
119
|
-
medianBalance: number;
|
|
120
|
-
meanBalance: number;
|
|
121
|
-
top10PctShare: number;
|
|
122
|
-
meanMedianDivergence: number;
|
|
123
|
-
populationByRole: Record<string, number>;
|
|
124
|
-
roleShares: Record<string, number>;
|
|
125
|
-
totalAgents: number;
|
|
126
|
-
churnRate: number;
|
|
127
|
-
churnByRole: Record<string, number>;
|
|
128
|
-
personaDistribution: Record<string, number>;
|
|
129
|
-
priceIndexByCurrency: Record<string, number>;
|
|
130
|
-
pricesByCurrency: Record<string, Record<string, number>>;
|
|
131
|
-
priceVolatilityByCurrency: Record<string, Record<string, number>>;
|
|
132
|
-
priceIndex: number;
|
|
133
|
-
prices: Record<string, number>;
|
|
134
|
-
priceVolatility: Record<string, number>;
|
|
135
|
-
productionIndex: number;
|
|
136
|
-
capacityUsage: number;
|
|
137
|
-
supplyByResource: Record<string, number>;
|
|
138
|
-
demandSignals: Record<string, number>;
|
|
139
|
-
pinchPoints: Record<string, PinchPointStatus>;
|
|
140
|
-
avgSatisfaction: number;
|
|
141
|
-
blockedAgentCount: number;
|
|
142
|
-
timeToValue: number;
|
|
143
|
-
poolSizesByCurrency: Record<string, Record<string, number>>;
|
|
144
|
-
poolSizes: Record<string, number>;
|
|
145
|
-
extractionRatioByCurrency: Record<string, number>;
|
|
146
|
-
newUserDependencyByCurrency: Record<string, number>;
|
|
147
|
-
currencyInsulationByCurrency: Record<string, number>;
|
|
148
|
-
extractionRatio: number;
|
|
149
|
-
newUserDependency: number;
|
|
150
|
-
smokeTestRatio: number;
|
|
151
|
-
currencyInsulation: number;
|
|
152
|
-
cyclicalPeaks: number[];
|
|
153
|
-
cyclicalValleys: number[];
|
|
154
|
-
eventCompletionRate: number;
|
|
155
|
-
arbitrageIndexByCurrency: Record<string, number>;
|
|
156
|
-
arbitrageIndex: number;
|
|
157
|
-
contentDropAge: number;
|
|
158
|
-
giftTradeRatioByCurrency: Record<string, number>;
|
|
159
|
-
giftTradeRatio: number;
|
|
160
|
-
disposalTradeRatioByCurrency: Record<string, number>;
|
|
161
|
-
disposalTradeRatio: number;
|
|
162
|
-
systems: string[];
|
|
163
|
-
sources: string[];
|
|
164
|
-
sinks: string[];
|
|
165
|
-
flowBySystem: Record<string, number>;
|
|
166
|
-
activityBySystem: Record<string, number>;
|
|
167
|
-
participantsBySystem: Record<string, number>;
|
|
168
|
-
flowBySource: Record<string, number>;
|
|
169
|
-
flowBySink: Record<string, number>;
|
|
170
|
-
sourceShare: Record<string, number>;
|
|
171
|
-
sinkShare: Record<string, number>;
|
|
172
|
-
custom: Record<string, number>;
|
|
173
|
-
}
|
|
174
|
-
declare function emptyMetrics(tick?: number): EconomyMetrics;
|
|
175
|
-
type PrincipleCategory = 'supply_chain' | 'incentive' | 'population' | 'currency' | 'bootstrap' | 'feedback' | 'regulator' | 'market_dynamics' | 'measurement' | 'wealth_distribution' | 'resource' | 'system_design' | 'participant_experience' | 'statistical' | 'system_dynamics' | 'open_economy' | 'operations';
|
|
176
|
-
interface PrincipleViolation {
|
|
177
|
-
violated: true;
|
|
178
|
-
severity: number;
|
|
179
|
-
evidence: Record<string, unknown>;
|
|
180
|
-
suggestedAction: SuggestedAction;
|
|
181
|
-
confidence: number;
|
|
182
|
-
estimatedLag?: number;
|
|
183
|
-
}
|
|
184
|
-
interface PrincipleOk {
|
|
185
|
-
violated: false;
|
|
186
|
-
}
|
|
187
|
-
type PrincipleResult = PrincipleViolation | PrincipleOk;
|
|
188
|
-
interface Principle {
|
|
189
|
-
id: string;
|
|
190
|
-
name: string;
|
|
191
|
-
category: PrincipleCategory;
|
|
192
|
-
description: string;
|
|
193
|
-
check: (metrics: EconomyMetrics, thresholds: Thresholds) => PrincipleResult;
|
|
194
|
-
}
|
|
195
|
-
interface SuggestedAction {
|
|
196
|
-
parameterType: ParameterType;
|
|
197
|
-
direction: 'increase' | 'decrease' | 'set';
|
|
198
|
-
magnitude?: number;
|
|
199
|
-
absoluteValue?: number;
|
|
200
|
-
scope?: Partial<ParameterScope>;
|
|
201
|
-
resolvedParameter?: string;
|
|
202
|
-
reasoning: string;
|
|
203
|
-
}
|
|
204
|
-
interface ActionPlan {
|
|
205
|
-
id: string;
|
|
206
|
-
diagnosis: Diagnosis;
|
|
207
|
-
parameter: string;
|
|
208
|
-
scope?: ParameterScope;
|
|
209
|
-
currentValue: number;
|
|
210
|
-
targetValue: number;
|
|
211
|
-
maxChangePercent: number;
|
|
212
|
-
cooldownTicks: number;
|
|
213
|
-
rollbackCondition: RollbackCondition;
|
|
214
|
-
simulationResult: SimulationResult;
|
|
215
|
-
estimatedLag: number;
|
|
216
|
-
appliedAt?: number;
|
|
217
|
-
}
|
|
218
|
-
interface RollbackCondition {
|
|
219
|
-
metric: keyof EconomyMetrics | string;
|
|
220
|
-
direction: 'above' | 'below';
|
|
221
|
-
threshold: number;
|
|
222
|
-
checkAfterTick: number;
|
|
223
|
-
}
|
|
224
|
-
interface Diagnosis {
|
|
225
|
-
principle: Principle;
|
|
226
|
-
violation: PrincipleViolation;
|
|
227
|
-
tick: number;
|
|
228
|
-
}
|
|
229
|
-
interface SimulationOutcome {
|
|
230
|
-
p10: EconomyMetrics;
|
|
231
|
-
p50: EconomyMetrics;
|
|
232
|
-
p90: EconomyMetrics;
|
|
233
|
-
mean: EconomyMetrics;
|
|
234
|
-
}
|
|
235
|
-
interface SimulationResult {
|
|
236
|
-
proposedAction: SuggestedAction;
|
|
237
|
-
iterations: number;
|
|
238
|
-
forwardTicks: number;
|
|
239
|
-
outcomes: SimulationOutcome;
|
|
240
|
-
netImprovement: boolean;
|
|
241
|
-
noNewProblems: boolean;
|
|
242
|
-
confidenceInterval: [number, number];
|
|
243
|
-
estimatedEffectTick: number;
|
|
244
|
-
overshootRisk: number;
|
|
245
|
-
}
|
|
246
|
-
type DecisionResult = 'applied' | 'skipped_cooldown' | 'skipped_simulation_failed' | 'skipped_locked' | 'skipped_override' | 'rolled_back' | 'rejected';
|
|
247
|
-
interface DecisionEntry {
|
|
248
|
-
id: string;
|
|
249
|
-
tick: number;
|
|
250
|
-
timestamp: number;
|
|
251
|
-
diagnosis: Diagnosis;
|
|
252
|
-
plan: ActionPlan;
|
|
253
|
-
result: DecisionResult;
|
|
254
|
-
reasoning: string;
|
|
255
|
-
metricsSnapshot: EconomyMetrics;
|
|
256
|
-
}
|
|
257
|
-
interface EconomyState {
|
|
258
|
-
tick: number;
|
|
259
|
-
roles: string[];
|
|
260
|
-
resources: string[];
|
|
261
|
-
currencies: string[];
|
|
262
|
-
agentBalances: Record<string, Record<string, number>>;
|
|
263
|
-
agentRoles: Record<string, string>;
|
|
264
|
-
agentInventories: Record<string, Record<string, number>>;
|
|
265
|
-
agentSatisfaction?: Record<string, number>;
|
|
266
|
-
marketPrices: Record<string, Record<string, number>>;
|
|
267
|
-
recentTransactions: EconomicEvent[];
|
|
268
|
-
poolSizes?: Record<string, Record<string, number>>;
|
|
269
|
-
systems?: string[];
|
|
270
|
-
sources?: string[];
|
|
271
|
-
sinks?: string[];
|
|
272
|
-
customData?: Record<string, unknown>;
|
|
273
|
-
}
|
|
274
|
-
interface EconomyAdapter {
|
|
275
|
-
/** Return current full state snapshot */
|
|
276
|
-
getState(): EconomyState | Promise<EconomyState>;
|
|
277
|
-
/** Apply a parameter change to the host system */
|
|
278
|
-
setParam(key: string, value: number, scope?: ParameterScope): void | Promise<void>;
|
|
279
|
-
/** Optional: adapter pushes events as they happen */
|
|
280
|
-
onEvent?: (handler: (event: EconomicEvent) => void) => void;
|
|
281
|
-
}
|
|
282
|
-
interface Thresholds {
|
|
283
|
-
meanMedianDivergenceMax: number;
|
|
284
|
-
simulationMinIterations: number;
|
|
285
|
-
personaMonocultureMax: number;
|
|
286
|
-
personaMinClusters: number;
|
|
287
|
-
extractionRatioYellow: number;
|
|
288
|
-
extractionRatioRed: number;
|
|
289
|
-
smokeTestWarning: number;
|
|
290
|
-
smokeTestCritical: number;
|
|
291
|
-
currencyInsulationMax: number;
|
|
292
|
-
timeBudgetRatio: number;
|
|
293
|
-
payPowerRatioMax: number;
|
|
294
|
-
payPowerRatioTarget: number;
|
|
295
|
-
cyclicalPeakDecay: number;
|
|
296
|
-
cyclicalValleyDecay: number;
|
|
297
|
-
eventCompletionMin: number;
|
|
298
|
-
eventCompletionMax: number;
|
|
299
|
-
lagMultiplierMin: number;
|
|
300
|
-
lagMultiplierMax: number;
|
|
301
|
-
complexityBudgetMax: number;
|
|
302
|
-
replacementRateMultiplier: number;
|
|
303
|
-
maxAdjustmentPercent: number;
|
|
304
|
-
cooldownTicks: number;
|
|
305
|
-
poolWinRate: number;
|
|
306
|
-
poolOperatorShare: number;
|
|
307
|
-
roleSwitchFrictionMax: number;
|
|
308
|
-
poolCapPercent: number;
|
|
309
|
-
poolDecayRate: number;
|
|
310
|
-
stampedeProfitRatio: number;
|
|
311
|
-
blockedAgentMaxFraction: number;
|
|
312
|
-
giniWarnThreshold: number;
|
|
313
|
-
giniRedThreshold: number;
|
|
314
|
-
churnWarnRate: number;
|
|
315
|
-
netFlowWarnThreshold: number;
|
|
316
|
-
arbitrageIndexWarning: number;
|
|
317
|
-
arbitrageIndexCritical: number;
|
|
318
|
-
contentDropCooldownTicks: number;
|
|
319
|
-
postDropArbitrageMax: number;
|
|
320
|
-
relativePriceConvergenceTarget: number;
|
|
321
|
-
priceDiscoveryWindowTicks: number;
|
|
322
|
-
giftTradeFilterRatio: number;
|
|
323
|
-
disposalTradeWeightDiscount: number;
|
|
324
|
-
}
|
|
325
|
-
interface TickConfig {
|
|
326
|
-
/** How many real-world units one tick represents. Default: 1 */
|
|
327
|
-
duration: number;
|
|
328
|
-
/** The unit of time. Default: 'tick' (abstract). Examples: 'second', 'minute', 'block', 'frame' */
|
|
329
|
-
unit: string;
|
|
330
|
-
/** Medium-resolution metric window in ticks. Default: 10 */
|
|
331
|
-
mediumWindow?: number;
|
|
332
|
-
/** Coarse-resolution metric window in ticks. Default: 100 */
|
|
333
|
-
coarseWindow?: number;
|
|
334
|
-
}
|
|
335
|
-
interface SimulationConfig {
|
|
336
|
-
sinkMultiplier?: number;
|
|
337
|
-
faucetMultiplier?: number;
|
|
338
|
-
frictionMultiplier?: number;
|
|
339
|
-
frictionVelocityScale?: number;
|
|
340
|
-
redistributionMultiplier?: number;
|
|
341
|
-
neutralMultiplier?: number;
|
|
342
|
-
minIterations?: number;
|
|
343
|
-
maxProjectionTicks?: number;
|
|
344
|
-
}
|
|
345
|
-
type AgentEMode = 'autonomous' | 'advisor';
|
|
346
|
-
interface AgentEConfig {
|
|
347
|
-
adapter: EconomyAdapter;
|
|
348
|
-
mode?: AgentEMode;
|
|
349
|
-
dominantRoles?: string[];
|
|
350
|
-
idealDistribution?: Record<string, number>;
|
|
351
|
-
parameters?: RegisteredParameter[];
|
|
352
|
-
/** Run registry.validate() on startup and log warnings/errors (default: true) */
|
|
353
|
-
validateRegistry?: boolean;
|
|
354
|
-
tickConfig?: Partial<TickConfig>;
|
|
355
|
-
gracePeriod?: number;
|
|
356
|
-
checkInterval?: number;
|
|
357
|
-
maxAdjustmentPercent?: number;
|
|
358
|
-
cooldownTicks?: number;
|
|
359
|
-
simulation?: SimulationConfig;
|
|
360
|
-
settlementWindowTicks?: number;
|
|
361
|
-
thresholds?: Partial<Thresholds>;
|
|
362
|
-
onDecision?: (entry: DecisionEntry) => void;
|
|
363
|
-
onAlert?: (diagnosis: Diagnosis) => void;
|
|
364
|
-
onRollback?: (plan: ActionPlan, reason: string) => void;
|
|
365
|
-
}
|
|
366
|
-
type PersonaType = 'Whale' | 'ActiveTrader' | 'Accumulator' | 'Spender' | 'NewEntrant' | 'AtRisk' | 'Dormant' | 'PowerUser' | 'Passive' | string;
|
|
367
|
-
interface PersonaProfile {
|
|
368
|
-
type: PersonaType;
|
|
369
|
-
share: number;
|
|
370
|
-
healthyRangeMin: number;
|
|
371
|
-
healthyRangeMax: number;
|
|
372
|
-
}
|
|
373
|
-
type MetricResolution = 'fine' | 'medium' | 'coarse';
|
|
374
|
-
interface MetricQuery {
|
|
375
|
-
metric: keyof EconomyMetrics | string;
|
|
376
|
-
from?: number;
|
|
377
|
-
to?: number;
|
|
378
|
-
resolution?: MetricResolution;
|
|
379
|
-
}
|
|
380
|
-
interface MetricQueryResult {
|
|
381
|
-
metric: string;
|
|
382
|
-
resolution: MetricResolution;
|
|
383
|
-
points: Array<{
|
|
384
|
-
tick: number;
|
|
385
|
-
value: number;
|
|
386
|
-
}>;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
declare class Diagnoser {
|
|
390
|
-
private principles;
|
|
391
|
-
constructor(principles: Principle[]);
|
|
392
|
-
addPrinciple(principle: Principle): void;
|
|
393
|
-
removePrinciple(id: string): void;
|
|
394
|
-
/**
|
|
395
|
-
* Run all principles against current metrics.
|
|
396
|
-
* Returns violations sorted by severity (highest first).
|
|
397
|
-
* Only one action is taken per cycle — the highest severity violation.
|
|
398
|
-
*/
|
|
399
|
-
diagnose(metrics: EconomyMetrics, thresholds: Thresholds): Diagnosis[];
|
|
400
|
-
getPrinciples(): Principle[];
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
declare class DecisionLog {
|
|
404
|
-
private entries;
|
|
405
|
-
private maxEntries;
|
|
406
|
-
constructor(maxEntries?: number);
|
|
407
|
-
record(diagnosis: Diagnosis, plan: ActionPlan, result: DecisionResult, metrics: EconomyMetrics): DecisionEntry;
|
|
408
|
-
recordSkip(diagnosis: Diagnosis, result: DecisionResult, metrics: EconomyMetrics, reason: string): void;
|
|
409
|
-
query(filter?: {
|
|
410
|
-
since?: number;
|
|
411
|
-
until?: number;
|
|
412
|
-
issue?: string;
|
|
413
|
-
parameter?: string;
|
|
414
|
-
result?: DecisionResult;
|
|
415
|
-
}): DecisionEntry[];
|
|
416
|
-
getById(id: string): DecisionEntry | undefined;
|
|
417
|
-
updateResult(id: string, newResult: DecisionResult, reasoning?: string): boolean;
|
|
418
|
-
latest(n?: number): DecisionEntry[];
|
|
419
|
-
export(format?: 'json' | 'text'): string;
|
|
420
|
-
private buildReasoning;
|
|
421
|
-
private stubPlan;
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
declare class MetricStore {
|
|
425
|
-
/** Fine: last 200 ticks, one entry per tick */
|
|
426
|
-
private fine;
|
|
427
|
-
/** Medium: last 200 windows */
|
|
428
|
-
private medium;
|
|
429
|
-
/** Coarse: last 200 epochs */
|
|
430
|
-
private coarse;
|
|
431
|
-
private mediumWindow;
|
|
432
|
-
private coarseWindow;
|
|
433
|
-
private ticksSinceLastMedium;
|
|
434
|
-
private ticksSinceLastCoarse;
|
|
435
|
-
private mediumAccumulator;
|
|
436
|
-
private coarseAccumulator;
|
|
437
|
-
constructor(tickConfig?: Partial<TickConfig>);
|
|
438
|
-
record(metrics: EconomyMetrics): void;
|
|
439
|
-
latest(resolution?: MetricResolution): EconomyMetrics;
|
|
440
|
-
query(q: MetricQuery): MetricQueryResult;
|
|
441
|
-
/** Summarized recent history for dashboard charts */
|
|
442
|
-
recentHistory(count?: number): Array<{
|
|
443
|
-
tick: number;
|
|
444
|
-
health: number;
|
|
445
|
-
giniCoefficient: number;
|
|
446
|
-
totalSupply: number;
|
|
447
|
-
netFlow: number;
|
|
448
|
-
velocity: number;
|
|
449
|
-
inflationRate: number;
|
|
450
|
-
avgSatisfaction: number;
|
|
451
|
-
churnRate: number;
|
|
452
|
-
totalAgents: number;
|
|
453
|
-
priceIndex: number;
|
|
454
|
-
}>;
|
|
455
|
-
/** Check if fine and coarse resolution metrics diverge significantly */
|
|
456
|
-
divergenceDetected(): boolean;
|
|
457
|
-
private bufferFor;
|
|
458
|
-
private aggregate;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
type EventName = 'decision' | 'alert' | 'rollback' | 'beforeAction' | 'afterAction';
|
|
462
|
-
declare class AgentE {
|
|
463
|
-
private readonly config;
|
|
464
|
-
private readonly thresholds;
|
|
465
|
-
private adapter;
|
|
466
|
-
private mode;
|
|
467
|
-
private observer;
|
|
468
|
-
private diagnoser;
|
|
469
|
-
private simulator;
|
|
470
|
-
private planner;
|
|
471
|
-
private executor;
|
|
472
|
-
private registry;
|
|
473
|
-
readonly log: DecisionLog;
|
|
474
|
-
readonly store: MetricStore;
|
|
475
|
-
private personaTracker;
|
|
476
|
-
private params;
|
|
477
|
-
private eventBuffer;
|
|
478
|
-
private isRunning;
|
|
479
|
-
private isPaused;
|
|
480
|
-
private currentTick;
|
|
481
|
-
private handlers;
|
|
482
|
-
constructor(config: AgentEConfig);
|
|
483
|
-
connect(adapter: EconomyAdapter): this;
|
|
484
|
-
start(): this;
|
|
485
|
-
pause(): void;
|
|
486
|
-
resume(): void;
|
|
487
|
-
stop(): void;
|
|
488
|
-
tick(state?: EconomyState): Promise<void>;
|
|
489
|
-
/** Apply a plan manually (for advisor mode) */
|
|
490
|
-
apply(plan: ActionPlan): Promise<void>;
|
|
491
|
-
lock(param: string): void;
|
|
492
|
-
unlock(param: string): void;
|
|
493
|
-
constrain(param: string, bounds: {
|
|
494
|
-
min: number;
|
|
495
|
-
max: number;
|
|
496
|
-
}): void;
|
|
497
|
-
addPrinciple(principle: Principle): void;
|
|
498
|
-
setMode(mode: AgentEMode): void;
|
|
499
|
-
getMode(): AgentEMode;
|
|
500
|
-
removePrinciple(id: string): void;
|
|
501
|
-
registerParameter(param: RegisteredParameter): void;
|
|
502
|
-
getRegistry(): ParameterRegistry;
|
|
503
|
-
registerCustomMetric(name: string, fn: (state: EconomyState) => number): void;
|
|
504
|
-
getDecisions(filter?: Parameters<DecisionLog['query']>[0]): DecisionEntry[];
|
|
505
|
-
getPrinciples(): Principle[];
|
|
506
|
-
getActivePlans(): ActionPlan[];
|
|
507
|
-
/** Access to the metric time-series store */
|
|
508
|
-
readonly metrics: {
|
|
509
|
-
query: (q: MetricQuery) => MetricQueryResult;
|
|
510
|
-
latest: (resolution?: "fine" | "medium" | "coarse") => EconomyMetrics;
|
|
511
|
-
};
|
|
512
|
-
on(event: EventName, handler: (...args: unknown[]) => unknown): this;
|
|
513
|
-
off(event: EventName, handler: (...args: unknown[]) => unknown): this;
|
|
514
|
-
private emit;
|
|
515
|
-
diagnoseNow(): ReturnType<Diagnoser['diagnose']>;
|
|
516
|
-
getHealth(): number;
|
|
517
|
-
ingest(event: EconomicEvent): void;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
declare class Observer {
|
|
521
|
-
private previousMetrics;
|
|
522
|
-
private previousPricesByCurrency;
|
|
523
|
-
private customMetricFns;
|
|
524
|
-
private anchorBaselineByCurrency;
|
|
525
|
-
private tickConfig;
|
|
526
|
-
constructor(tickConfig?: Partial<TickConfig>);
|
|
527
|
-
registerCustomMetric(name: string, fn: (state: EconomyState) => number): void;
|
|
528
|
-
compute(state: EconomyState, recentEvents: EconomicEvent[]): EconomyMetrics;
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
declare class Simulator {
|
|
532
|
-
private diagnoser;
|
|
533
|
-
private registry;
|
|
534
|
-
private simConfig;
|
|
535
|
-
constructor(registry?: ParameterRegistry, simConfig?: SimulationConfig);
|
|
536
|
-
private cachedViolationsTick;
|
|
537
|
-
private cachedViolations;
|
|
538
|
-
/**
|
|
539
|
-
* Simulate the effect of applying `action` to the current economy forward `forwardTicks`.
|
|
540
|
-
* Runs `iterations` Monte Carlo trials and returns the outcome distribution.
|
|
541
|
-
*
|
|
542
|
-
* The inner model is intentionally lightweight — it models how key metrics evolve
|
|
543
|
-
* under a parameter change using simplified dynamics. This is not a full agent simulation;
|
|
544
|
-
* it is a fast inner model that catches obvious over/under-corrections.
|
|
545
|
-
*/
|
|
546
|
-
simulate(action: SuggestedAction, currentMetrics: EconomyMetrics, thresholds: Thresholds, iterations?: number, forwardTicks?: number): SimulationResult;
|
|
547
|
-
/**
|
|
548
|
-
* Lightweight forward model: apply action then project key metrics forward.
|
|
549
|
-
* Uses simplified dynamics — not a full agent replay.
|
|
550
|
-
*/
|
|
551
|
-
private runForward;
|
|
552
|
-
private actionMultiplier;
|
|
553
|
-
private flowEffect;
|
|
554
|
-
/** Infer flow impact from parameter type when registry is unavailable */
|
|
555
|
-
private inferFlowImpact;
|
|
556
|
-
private checkImprovement;
|
|
557
|
-
private averageMetrics;
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
interface ParameterConstraint {
|
|
561
|
-
min: number;
|
|
562
|
-
max: number;
|
|
563
|
-
}
|
|
564
|
-
declare class Planner {
|
|
565
|
-
private lockedParams;
|
|
566
|
-
private constraints;
|
|
567
|
-
private cooldowns;
|
|
568
|
-
private typeCooldowns;
|
|
569
|
-
private activePlanCount;
|
|
570
|
-
lock(param: string): void;
|
|
571
|
-
unlock(param: string): void;
|
|
572
|
-
constrain(param: string, constraint: ParameterConstraint): void;
|
|
573
|
-
/**
|
|
574
|
-
* Convert a diagnosis into an ActionPlan.
|
|
575
|
-
* Returns null if:
|
|
576
|
-
* - parameter is locked
|
|
577
|
-
* - parameter is still in cooldown
|
|
578
|
-
* - simulation result failed
|
|
579
|
-
* - complexity budget exceeded
|
|
580
|
-
* - no matching parameter in registry
|
|
581
|
-
*/
|
|
582
|
-
plan(diagnosis: Diagnosis, metrics: EconomyMetrics, simulationResult: SimulationResult, currentParams: Record<string, number>, thresholds: Thresholds, registry?: ParameterRegistry): ActionPlan | null;
|
|
583
|
-
recordApplied(plan: ActionPlan, tick: number): void;
|
|
584
|
-
recordRolledBack(_plan: ActionPlan): void;
|
|
585
|
-
recordSettled(_plan: ActionPlan): void;
|
|
586
|
-
isOnCooldown(param: string, currentTick: number, cooldownTicks: number): boolean;
|
|
587
|
-
/** Reset all cooldowns (useful for testing) */
|
|
588
|
-
resetCooldowns(): void;
|
|
589
|
-
/** V1.5.2: Reset active plan count (e.g., on system restart) */
|
|
590
|
-
resetActivePlans(): void;
|
|
591
|
-
/** V1.5.2: Current active plan count (for diagnostics) */
|
|
592
|
-
getActivePlanCount(): number;
|
|
593
|
-
private typeCooldownKey;
|
|
594
|
-
private isTypeCooldown;
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
type ExecutionResult = 'applied' | 'rolled_back' | 'rollback_skipped';
|
|
598
|
-
declare class Executor {
|
|
599
|
-
private activePlans;
|
|
600
|
-
private maxActiveTicks;
|
|
601
|
-
constructor(settlementWindowTicks?: number);
|
|
602
|
-
apply(plan: ActionPlan, adapter: EconomyAdapter, currentParams: Record<string, number>): Promise<void>;
|
|
603
|
-
/**
|
|
604
|
-
* Check all active plans for rollback conditions.
|
|
605
|
-
* Returns { rolledBack, settled } — plans that were undone and plans that passed their window.
|
|
606
|
-
*/
|
|
607
|
-
checkRollbacks(metrics: EconomyMetrics, adapter: EconomyAdapter): Promise<{
|
|
608
|
-
rolledBack: ActionPlan[];
|
|
609
|
-
settled: ActionPlan[];
|
|
610
|
-
}>;
|
|
611
|
-
private getMetricValue;
|
|
612
|
-
getActivePlans(): ActionPlan[];
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
interface PersonaConfig {
|
|
616
|
-
/** Top X% by holdings = Whale. Default: 0.05 (5%) */
|
|
617
|
-
whalePercentile: number;
|
|
618
|
-
/** Top X% by tx frequency = Active Trader. Default: 0.20 (20%) */
|
|
619
|
-
activeTraderPercentile: number;
|
|
620
|
-
/** Ticks to consider an agent "new." Default: 10 */
|
|
621
|
-
newEntrantWindow: number;
|
|
622
|
-
/** Ticks with zero activity = Dormant. Default: 20 */
|
|
623
|
-
dormantWindow: number;
|
|
624
|
-
/** Activity drop threshold for At-Risk. Default: 0.5 (50% drop) */
|
|
625
|
-
atRiskDropThreshold: number;
|
|
626
|
-
/** Min distinct systems for Power User. Default: 3 */
|
|
627
|
-
powerUserMinSystems: number;
|
|
628
|
-
/** Rolling history window size (ticks). Default: 50 */
|
|
629
|
-
historyWindow: number;
|
|
630
|
-
}
|
|
631
|
-
declare class PersonaTracker {
|
|
632
|
-
private agents;
|
|
633
|
-
private config;
|
|
634
|
-
constructor(config?: Partial<PersonaConfig>);
|
|
635
|
-
/**
|
|
636
|
-
* Ingest a state snapshot + events and update per-agent signals.
|
|
637
|
-
* Call this once per tick BEFORE getDistribution().
|
|
638
|
-
*/
|
|
639
|
-
update(state: EconomyState, events?: EconomicEvent[]): void;
|
|
640
|
-
/**
|
|
641
|
-
* Classify all tracked agents and return the population distribution.
|
|
642
|
-
* Returns { Whale: 0.05, ActiveTrader: 0.18, Passive: 0.42, ... }
|
|
643
|
-
*/
|
|
644
|
-
getDistribution(): Record<string, number>;
|
|
645
|
-
}
|
|
646
|
-
|
|
647
|
-
/**
|
|
648
|
-
* Find the system with the worst metric value.
|
|
649
|
-
* Works with flat Record<string, number> maps like flowBySystem.
|
|
650
|
-
*
|
|
651
|
-
* @param metrics - Current economy metrics snapshot
|
|
652
|
-
* @param check - Function that returns a numeric "badness" score per system (higher = worse)
|
|
653
|
-
* @param tolerancePercent - Only flag if the worst system exceeds the average by this % (default 0)
|
|
654
|
-
* @returns The system name and its score, or undefined if no systems or none exceeds tolerance
|
|
655
|
-
*/
|
|
656
|
-
declare function findWorstSystem(metrics: EconomyMetrics, check: (systemName: string, metrics: EconomyMetrics) => number, tolerancePercent?: number): {
|
|
657
|
-
system: string;
|
|
658
|
-
score: number;
|
|
659
|
-
} | undefined;
|
|
660
|
-
|
|
661
|
-
interface ValidationError {
|
|
662
|
-
path: string;
|
|
663
|
-
expected: string;
|
|
664
|
-
received: string;
|
|
665
|
-
message: string;
|
|
666
|
-
}
|
|
667
|
-
interface ValidationWarning {
|
|
668
|
-
path: string;
|
|
669
|
-
message: string;
|
|
670
|
-
}
|
|
671
|
-
interface ValidationResult {
|
|
672
|
-
valid: boolean;
|
|
673
|
-
errors: ValidationError[];
|
|
674
|
-
warnings: ValidationWarning[];
|
|
675
|
-
}
|
|
676
|
-
declare function validateEconomyState(state: unknown): ValidationResult;
|
|
677
|
-
|
|
678
|
-
declare const DEFAULT_THRESHOLDS: Thresholds;
|
|
679
|
-
declare const PERSONA_HEALTHY_RANGES: Record<string, {
|
|
680
|
-
min: number;
|
|
681
|
-
max: number;
|
|
682
|
-
}>;
|
|
683
|
-
|
|
684
|
-
declare const P1_ProductionMatchesConsumption: Principle;
|
|
685
|
-
declare const P2_ClosedLoopsNeedDirectHandoff: Principle;
|
|
686
|
-
declare const P3_BootstrapCapitalCoversFirstTransaction: Principle;
|
|
687
|
-
declare const P4_MaterialsFlowFasterThanCooldown: Principle;
|
|
688
|
-
declare const P60_SurplusDisposalAsymmetry: Principle;
|
|
689
|
-
declare const SUPPLY_CHAIN_PRINCIPLES: Principle[];
|
|
690
|
-
|
|
691
|
-
declare const P5_ProfitabilityIsRelative: Principle;
|
|
692
|
-
declare const P6_CrowdingMultiplierOnAllRoles: Principle;
|
|
693
|
-
declare const P7_NonSpecialistsSubsidiseSpecialists: Principle;
|
|
694
|
-
declare const P8_RegulatorCannotFightDesign: Principle;
|
|
695
|
-
declare const INCENTIVE_PRINCIPLES: Principle[];
|
|
696
|
-
|
|
697
|
-
declare const P9_RoleSwitchingNeedsFriction: Principle;
|
|
698
|
-
declare const P10_EntryWeightingUsesInversePopulation: Principle;
|
|
699
|
-
declare const P11_TwoTierPressure: Principle;
|
|
700
|
-
declare const P46_PersonaDiversity: Principle;
|
|
701
|
-
declare const POPULATION_PRINCIPLES: Principle[];
|
|
702
|
-
|
|
703
|
-
declare const P12_OnePrimaryFaucet: Principle;
|
|
704
|
-
declare const P13_PotsAreZeroSumAndSelfRegulate: Principle;
|
|
705
|
-
declare const P14_TrackActualInjection: Principle;
|
|
706
|
-
declare const P15_PoolsNeedCapAndDecay: Principle;
|
|
707
|
-
declare const P16_WithdrawalPenaltyScales: Principle;
|
|
708
|
-
declare const P32_VelocityAboveSupply: Principle;
|
|
709
|
-
declare const P58_NoNaturalNumeraire: Principle;
|
|
710
|
-
declare const CURRENCY_FLOW_PRINCIPLES: Principle[];
|
|
711
|
-
|
|
712
|
-
declare const P17_GracePeriodBeforeIntervention: Principle;
|
|
713
|
-
declare const P18_FirstProducerNeedsStartingInventory: Principle;
|
|
714
|
-
declare const P19_StartingSupplyExceedsDemand: Principle;
|
|
715
|
-
declare const BOOTSTRAP_PRINCIPLES: Principle[];
|
|
716
|
-
|
|
717
|
-
declare const P20_DecayPreventsAccumulation: Principle;
|
|
718
|
-
declare const P21_PriceFromGlobalSupply: Principle;
|
|
719
|
-
declare const P22_MarketAwarenessPreventsSurplus: Principle;
|
|
720
|
-
declare const P23_ProfitabilityFactorsFeasibility: Principle;
|
|
721
|
-
declare const P24_BlockedAgentsDecayFaster: Principle;
|
|
722
|
-
declare const FEEDBACK_LOOP_PRINCIPLES: Principle[];
|
|
723
|
-
|
|
724
|
-
declare const P25_CorrectLeversForCorrectProblems: Principle;
|
|
725
|
-
declare const P26_ContinuousPressureBeatsThresholdCuts: Principle;
|
|
726
|
-
declare const P27_AdjustmentsNeedCooldowns: Principle;
|
|
727
|
-
declare const P28_StructuralDominanceIsNotPathological: Principle;
|
|
728
|
-
declare const P38_CommunicationPreventsRevolt: Principle;
|
|
729
|
-
declare const REGULATOR_PRINCIPLES: Principle[];
|
|
730
|
-
|
|
731
|
-
declare const P29_BottleneckDetection: Principle;
|
|
732
|
-
declare const P30_DynamicBottleneckRotation: Principle;
|
|
733
|
-
declare const P57_CombinatorialPriceSpace: Principle;
|
|
734
|
-
declare const MARKET_DYNAMICS_PRINCIPLES: Principle[];
|
|
735
|
-
|
|
736
|
-
declare const P31_AnchorValueTracking: Principle;
|
|
737
|
-
declare const P41_MultiResolutionMonitoring: Principle;
|
|
738
|
-
declare const P55_ArbitrageThermometer: Principle;
|
|
739
|
-
declare const P59_GiftEconomyNoise: Principle;
|
|
740
|
-
declare const MEASUREMENT_PRINCIPLES: Principle[];
|
|
741
|
-
|
|
742
|
-
declare const P42_TheMedianPrinciple: Principle;
|
|
743
|
-
declare const P43_SimulationMinimum: Principle;
|
|
744
|
-
declare const STATISTICAL_PRINCIPLES: Principle[];
|
|
745
|
-
|
|
746
|
-
declare const P39_TheLagPrinciple: Principle;
|
|
747
|
-
declare const P44_ComplexityBudget: Principle;
|
|
748
|
-
declare const SYSTEM_DYNAMICS_PRINCIPLES: Principle[];
|
|
749
|
-
|
|
750
|
-
declare const P35_DestructionCreatesValue: Principle;
|
|
751
|
-
declare const P40_ReplacementRate: Principle;
|
|
752
|
-
declare const P49_IdleAssetTax: Principle;
|
|
753
|
-
declare const RESOURCE_MGMT_PRINCIPLES: Principle[];
|
|
754
|
-
|
|
755
|
-
declare const P33_FairNotEqual: Principle;
|
|
756
|
-
declare const P36_MechanicFrictionDetector: Principle;
|
|
757
|
-
declare const P37_LatecommerProblem: Principle;
|
|
758
|
-
declare const P45_TimeBudget: Principle;
|
|
759
|
-
declare const P50_PayPowerRatio: Principle;
|
|
760
|
-
declare const PARTICIPANT_EXPERIENCE_PRINCIPLES: Principle[];
|
|
761
|
-
|
|
762
|
-
declare const P34_ExtractionRatio: Principle;
|
|
763
|
-
declare const P47_SmokeTest: Principle;
|
|
764
|
-
declare const P48_CurrencyInsulation: Principle;
|
|
765
|
-
declare const OPEN_ECONOMY_PRINCIPLES: Principle[];
|
|
766
|
-
|
|
767
|
-
declare const P51_CyclicalEngagement: Principle;
|
|
768
|
-
declare const P52_EndowmentEffect: Principle;
|
|
769
|
-
declare const P53_EventCompletionRate: Principle;
|
|
770
|
-
declare const P54_OperationalCadence: Principle;
|
|
771
|
-
declare const P56_SupplyShockAbsorption: Principle;
|
|
772
|
-
declare const OPERATIONS_PRINCIPLES: Principle[];
|
|
773
|
-
|
|
774
|
-
/** All 60 built-in principles in priority order (supply chain → operations) */
|
|
775
|
-
declare const ALL_PRINCIPLES: Principle[];
|
|
776
|
-
|
|
777
|
-
export { ALL_PRINCIPLES, type ActionPlan, AgentE, type AgentEConfig, type AgentEMode, BOOTSTRAP_PRINCIPLES, CURRENCY_FLOW_PRINCIPLES, DEFAULT_THRESHOLDS, type DecisionEntry, DecisionLog, type DecisionResult, Diagnoser, type Diagnosis, type EconomicEvent, type EconomicEventType, type EconomyAdapter, type EconomyMetrics, type EconomyState, type ExecutionResult, Executor, FEEDBACK_LOOP_PRINCIPLES, type FlowImpact, INCENTIVE_PRINCIPLES, MARKET_DYNAMICS_PRINCIPLES, MEASUREMENT_PRINCIPLES, type MetricQuery, type MetricQueryResult, type MetricResolution, MetricStore, OPEN_ECONOMY_PRINCIPLES, OPERATIONS_PRINCIPLES, Observer, P10_EntryWeightingUsesInversePopulation, P11_TwoTierPressure, P12_OnePrimaryFaucet, P13_PotsAreZeroSumAndSelfRegulate, P14_TrackActualInjection, P15_PoolsNeedCapAndDecay, P16_WithdrawalPenaltyScales, P17_GracePeriodBeforeIntervention, P18_FirstProducerNeedsStartingInventory, P19_StartingSupplyExceedsDemand, P1_ProductionMatchesConsumption, P20_DecayPreventsAccumulation, P21_PriceFromGlobalSupply, P22_MarketAwarenessPreventsSurplus, P23_ProfitabilityFactorsFeasibility, P24_BlockedAgentsDecayFaster, P25_CorrectLeversForCorrectProblems, P26_ContinuousPressureBeatsThresholdCuts, P27_AdjustmentsNeedCooldowns, P28_StructuralDominanceIsNotPathological, P29_BottleneckDetection, P2_ClosedLoopsNeedDirectHandoff, P30_DynamicBottleneckRotation, P31_AnchorValueTracking, P32_VelocityAboveSupply, P33_FairNotEqual, P34_ExtractionRatio, P35_DestructionCreatesValue, P36_MechanicFrictionDetector, P37_LatecommerProblem, P38_CommunicationPreventsRevolt, P39_TheLagPrinciple, P3_BootstrapCapitalCoversFirstTransaction, P40_ReplacementRate, P41_MultiResolutionMonitoring, P42_TheMedianPrinciple, P43_SimulationMinimum, P44_ComplexityBudget, P45_TimeBudget, P46_PersonaDiversity, P47_SmokeTest, P48_CurrencyInsulation, P49_IdleAssetTax, P4_MaterialsFlowFasterThanCooldown, P50_PayPowerRatio, P51_CyclicalEngagement, P52_EndowmentEffect, P53_EventCompletionRate, P54_OperationalCadence, P55_ArbitrageThermometer, P56_SupplyShockAbsorption, P57_CombinatorialPriceSpace, P58_NoNaturalNumeraire, P59_GiftEconomyNoise, P5_ProfitabilityIsRelative, P60_SurplusDisposalAsymmetry, P6_CrowdingMultiplierOnAllRoles, P7_NonSpecialistsSubsidiseSpecialists, P8_RegulatorCannotFightDesign, P9_RoleSwitchingNeedsFriction, PARTICIPANT_EXPERIENCE_PRINCIPLES, PERSONA_HEALTHY_RANGES, POPULATION_PRINCIPLES, ParameterRegistry, type ParameterScope, type ParameterType, type PersonaConfig, type PersonaProfile, PersonaTracker, type PersonaType, type PinchPointStatus, Planner, type Principle, type PrincipleCategory, type PrincipleOk, type PrincipleResult, type PrincipleViolation, REGULATOR_PRINCIPLES, RESOURCE_MGMT_PRINCIPLES, type RegisteredParameter, type RegistryValidationResult, type RollbackCondition, STATISTICAL_PRINCIPLES, SUPPLY_CHAIN_PRINCIPLES, SYSTEM_DYNAMICS_PRINCIPLES, type SimulationConfig, type SimulationOutcome, type SimulationResult, Simulator, type SuggestedAction, type Thresholds, type TickConfig, type ValidationError, type ValidationResult, type ValidationWarning, emptyMetrics, findWorstSystem, validateEconomyState };
|