@emilia-protocol/gate 0.15.2 → 0.17.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/CHANGELOG.md +62 -0
- package/README.md +31 -0
- package/authority-allocation.js +2 -0
- package/autonomy-control-plane-profile.js +2 -0
- package/consequence-actuator.js +3 -0
- package/discovery-permit-resolver.js +3 -0
- package/dist/authority-allocation.d.ts +200 -0
- package/dist/authority-allocation.d.ts.map +1 -0
- package/dist/authority-allocation.js +984 -0
- package/dist/authority-allocation.js.map +1 -0
- package/dist/autonomy-control-plane-profile.d.ts +18 -0
- package/dist/autonomy-control-plane-profile.d.ts.map +1 -0
- package/dist/autonomy-control-plane-profile.js +352 -0
- package/dist/autonomy-control-plane-profile.js.map +1 -0
- package/dist/consequence-actuator.d.ts +226 -0
- package/dist/consequence-actuator.d.ts.map +1 -0
- package/dist/consequence-actuator.js +685 -0
- package/dist/consequence-actuator.js.map +1 -0
- package/dist/discovery-permit-resolver.d.ts +46 -0
- package/dist/discovery-permit-resolver.d.ts.map +1 -0
- package/dist/discovery-permit-resolver.js +428 -0
- package/dist/discovery-permit-resolver.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +22 -2
- package/src/authority-allocation.ts +1268 -0
- package/src/autonomy-control-plane-profile.ts +371 -0
- package/src/consequence-actuator.ts +1122 -0
- package/src/discovery-permit-resolver.ts +496 -0
- package/src/index.ts +4 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Complete-mediation boundary for provider effects.
|
|
3
|
+
*
|
|
4
|
+
* Gate presents a short-lived signed execution envelope. The actuator verifies
|
|
5
|
+
* every binding under immutable local pins, atomically reserves the envelope,
|
|
6
|
+
* and only then enters a provider callback that owns its credential. Provider
|
|
7
|
+
* credentials are deliberately absent from every public type in this module.
|
|
8
|
+
*/
|
|
9
|
+
import { type KeyObject } from 'node:crypto';
|
|
10
|
+
export declare const CONSEQUENCE_ACTUATOR_ENVELOPE_VERSION = "EP-CONSEQUENCE-ACTUATOR-ENVELOPE-v1";
|
|
11
|
+
export declare const CONSEQUENCE_ACTUATOR_SIGNATURE_ALGORITHM = "Ed25519";
|
|
12
|
+
export declare const CONSEQUENCE_ACTUATOR_SIGNATURE_DOMAIN = "EP-CONSEQUENCE-ACTUATOR-ENVELOPE-v1";
|
|
13
|
+
export declare const DEFAULT_CONSEQUENCE_ACTUATOR_MAX_TTL_MS = 60000;
|
|
14
|
+
export declare const DEFAULT_CONSEQUENCE_ACTUATOR_CLOCK_SKEW_MS = 2000;
|
|
15
|
+
export declare const CONSEQUENCE_ACTUATOR_STORE_TABLE = "public.consequence_actuator_envelopes";
|
|
16
|
+
export declare const CONSEQUENCE_ACTUATOR_EXECUTOR_ROLE = "consequence_actuator_executor";
|
|
17
|
+
export declare const CONSEQUENCE_ACTUATOR_STORE_OWNER_ROLE = "consequence_actuator_store_owner";
|
|
18
|
+
export declare const CONSEQUENCE_ACTUATOR_SQL: {
|
|
19
|
+
reserve: string;
|
|
20
|
+
consume: string;
|
|
21
|
+
};
|
|
22
|
+
type KeyMaterial = KeyObject | string | Buffer;
|
|
23
|
+
export interface ConsequenceExecutionEnvelopePayload {
|
|
24
|
+
'@version': typeof CONSEQUENCE_ACTUATOR_ENVELOPE_VERSION;
|
|
25
|
+
issuer_id: string;
|
|
26
|
+
tenant_id: string;
|
|
27
|
+
attempt_id: string;
|
|
28
|
+
action_digest: string;
|
|
29
|
+
caid: string;
|
|
30
|
+
provider_account_id: string;
|
|
31
|
+
target_digest: string;
|
|
32
|
+
operation: string;
|
|
33
|
+
idempotency_key: string;
|
|
34
|
+
nonce: string;
|
|
35
|
+
issued_at: string;
|
|
36
|
+
expires_at: string;
|
|
37
|
+
}
|
|
38
|
+
export interface ConsequenceExecutionEnvelopeSignature {
|
|
39
|
+
algorithm: typeof CONSEQUENCE_ACTUATOR_SIGNATURE_ALGORITHM;
|
|
40
|
+
key_id: string;
|
|
41
|
+
value: string;
|
|
42
|
+
}
|
|
43
|
+
export interface SignedConsequenceExecutionEnvelope {
|
|
44
|
+
payload: ConsequenceExecutionEnvelopePayload;
|
|
45
|
+
signature: ConsequenceExecutionEnvelopeSignature;
|
|
46
|
+
}
|
|
47
|
+
export interface ConsequenceActuatorPins {
|
|
48
|
+
tenantId: string;
|
|
49
|
+
caid: string;
|
|
50
|
+
providerAccountId: string;
|
|
51
|
+
targetDigest: string;
|
|
52
|
+
operation: string;
|
|
53
|
+
envelopeIssuerId: string;
|
|
54
|
+
envelopeKeyId: string;
|
|
55
|
+
envelopePublicKey: KeyMaterial;
|
|
56
|
+
maxEnvelopeTtlMs?: number;
|
|
57
|
+
clockSkewMs?: number;
|
|
58
|
+
}
|
|
59
|
+
export interface VisibleConsequenceActuatorPins {
|
|
60
|
+
readonly tenantId: string;
|
|
61
|
+
readonly caid: string;
|
|
62
|
+
readonly providerAccountId: string;
|
|
63
|
+
readonly targetDigest: string;
|
|
64
|
+
readonly operation: string;
|
|
65
|
+
readonly envelopeIssuerId: string;
|
|
66
|
+
readonly envelopeKeyId: string;
|
|
67
|
+
readonly envelopePublicKeyFingerprint: string;
|
|
68
|
+
readonly maxEnvelopeTtlMs: number;
|
|
69
|
+
readonly clockSkewMs: number;
|
|
70
|
+
}
|
|
71
|
+
export interface ConsequenceActuatorReservation {
|
|
72
|
+
readonly tenantId: string;
|
|
73
|
+
readonly attemptId: string;
|
|
74
|
+
readonly actionDigest: string;
|
|
75
|
+
readonly caid: string;
|
|
76
|
+
readonly providerAccountId: string;
|
|
77
|
+
readonly targetDigest: string;
|
|
78
|
+
readonly operation: string;
|
|
79
|
+
readonly idempotencyKey: string;
|
|
80
|
+
readonly nonce: string;
|
|
81
|
+
readonly issuedAt: string;
|
|
82
|
+
readonly expiresAt: string;
|
|
83
|
+
readonly envelopeDigest: string;
|
|
84
|
+
}
|
|
85
|
+
export type ConsequenceActuatorOutcome = 'COMMITTED' | 'INDETERMINATE';
|
|
86
|
+
export interface ConsequenceActuatorConsumption extends ConsequenceActuatorReservation {
|
|
87
|
+
readonly outcome: ConsequenceActuatorOutcome;
|
|
88
|
+
}
|
|
89
|
+
export interface ConsequenceActuatorStore {
|
|
90
|
+
/** Explicit marker for the built-in non-production test store. */
|
|
91
|
+
readonly testOnly?: true;
|
|
92
|
+
readonly durable: boolean;
|
|
93
|
+
readonly atomic: boolean;
|
|
94
|
+
readonly ownershipFenced: boolean;
|
|
95
|
+
readonly permanentConsumption: boolean;
|
|
96
|
+
reserve(reservation: ConsequenceActuatorReservation): Promise<boolean>;
|
|
97
|
+
consume(consumption: ConsequenceActuatorConsumption): Promise<boolean>;
|
|
98
|
+
}
|
|
99
|
+
export interface ConsequenceActuatorPgQueryResult {
|
|
100
|
+
readonly rowCount: number | null;
|
|
101
|
+
readonly rows: readonly unknown[];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* A dedicated pool wrapper must label the login principal configured in its
|
|
105
|
+
* connection string. PostgreSQL independently enforces that SESSION_USER is a
|
|
106
|
+
* tenant-mapped member of consequence_actuator_executor.
|
|
107
|
+
*/
|
|
108
|
+
export interface DedicatedConsequenceActuatorExecutorPool {
|
|
109
|
+
readonly principal: string;
|
|
110
|
+
query(text: string, values: readonly unknown[]): Promise<ConsequenceActuatorPgQueryResult>;
|
|
111
|
+
}
|
|
112
|
+
export interface PostgresConsequenceActuatorStoreOptions {
|
|
113
|
+
readonly tenantId: string;
|
|
114
|
+
readonly executorPrincipal: string;
|
|
115
|
+
readonly executorPool: DedicatedConsequenceActuatorExecutorPool;
|
|
116
|
+
}
|
|
117
|
+
export interface ConsequenceActuatorExecutionInput {
|
|
118
|
+
envelope: unknown;
|
|
119
|
+
attemptId: string;
|
|
120
|
+
actionDigest: string;
|
|
121
|
+
idempotencyKey: string;
|
|
122
|
+
}
|
|
123
|
+
export type ConsequenceActuatorRefusalReason = 'malformed_envelope' | 'unsupported_version' | 'signer_key_mismatch' | 'issuer_mismatch' | 'tenant_mismatch' | 'caid_mismatch' | 'provider_account_mismatch' | 'target_mismatch' | 'operation_mismatch' | 'attempt_mismatch' | 'action_digest_mismatch' | 'idempotency_key_mismatch' | 'envelope_not_yet_valid' | 'envelope_expired' | 'envelope_ttl_exceeded' | 'signature_invalid' | 'store_reserve_failed' | 'envelope_replayed' | 'provider_outcome_indeterminate' | 'store_consume_unconfirmed';
|
|
124
|
+
export type ConsequenceActuatorExecutionResult<TResult> = {
|
|
125
|
+
readonly ok: true;
|
|
126
|
+
readonly invoked: true;
|
|
127
|
+
readonly result: TResult;
|
|
128
|
+
readonly envelopeDigest: string;
|
|
129
|
+
} | {
|
|
130
|
+
readonly ok: false;
|
|
131
|
+
readonly invoked: boolean;
|
|
132
|
+
readonly reason: ConsequenceActuatorRefusalReason;
|
|
133
|
+
readonly envelopeDigest?: string;
|
|
134
|
+
};
|
|
135
|
+
export type ConsequenceEnvelopeVerification = {
|
|
136
|
+
readonly ok: true;
|
|
137
|
+
readonly payload: Readonly<ConsequenceExecutionEnvelopePayload>;
|
|
138
|
+
readonly envelopeDigest: string;
|
|
139
|
+
} | {
|
|
140
|
+
readonly ok: false;
|
|
141
|
+
readonly reason: Exclude<ConsequenceActuatorRefusalReason, 'store_reserve_failed' | 'envelope_replayed' | 'provider_outcome_indeterminate' | 'store_consume_unconfirmed'>;
|
|
142
|
+
};
|
|
143
|
+
interface VerifyExpectedBinding {
|
|
144
|
+
attemptId: string;
|
|
145
|
+
actionDigest: string;
|
|
146
|
+
idempotencyKey: string;
|
|
147
|
+
}
|
|
148
|
+
interface VerifyOptions {
|
|
149
|
+
pins: ConsequenceActuatorPins;
|
|
150
|
+
expected: VerifyExpectedBinding;
|
|
151
|
+
now?: number | (() => number);
|
|
152
|
+
}
|
|
153
|
+
interface ConsequenceActuatorOptions<TResult> {
|
|
154
|
+
pins: ConsequenceActuatorPins;
|
|
155
|
+
store: ConsequenceActuatorStore;
|
|
156
|
+
readonly testOnly?: true;
|
|
157
|
+
perform: (binding: Readonly<ConsequenceExecutionEnvelopePayload>) => TResult | Promise<TResult>;
|
|
158
|
+
now?: number | (() => number);
|
|
159
|
+
}
|
|
160
|
+
interface SignEnvelopeOptions {
|
|
161
|
+
privateKey: KeyMaterial;
|
|
162
|
+
keyId: string;
|
|
163
|
+
}
|
|
164
|
+
export interface MemoryConsequenceActuatorSnapshot extends ConsequenceActuatorReservation {
|
|
165
|
+
readonly state: 'RESERVED' | 'CONSUMED';
|
|
166
|
+
readonly outcome: ConsequenceActuatorOutcome | null;
|
|
167
|
+
readonly reservedAt: string;
|
|
168
|
+
readonly consumedAt: string | null;
|
|
169
|
+
}
|
|
170
|
+
/** Create a closed Ed25519 execution envelope for an already-authorized effect. */
|
|
171
|
+
export declare function signConsequenceExecutionEnvelope(payload: ConsequenceExecutionEnvelopePayload, options: SignEnvelopeOptions): SignedConsequenceExecutionEnvelope;
|
|
172
|
+
/** Verify an envelope without invoking a provider or mutating replay state. */
|
|
173
|
+
export declare function verifyConsequenceExecutionEnvelope(envelope: unknown, options: VerifyOptions): ConsequenceEnvelopeVerification;
|
|
174
|
+
/**
|
|
175
|
+
* Credential-owning actuator. `perform` captures the provider credential in
|
|
176
|
+
* the actuator process; callers cannot submit or replace that credential.
|
|
177
|
+
*/
|
|
178
|
+
export declare class ConsequenceActuator<TResult = unknown> {
|
|
179
|
+
#private;
|
|
180
|
+
readonly pins: VisibleConsequenceActuatorPins;
|
|
181
|
+
constructor(options: ConsequenceActuatorOptions<TResult>);
|
|
182
|
+
execute(input: ConsequenceActuatorExecutionInput): Promise<ConsequenceActuatorExecutionResult<TResult>>;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Race-safe, process-local reference store for tests. Map mutations occur
|
|
186
|
+
* before each async method yields, so concurrent calls have one reservation
|
|
187
|
+
* winner. Production must use the RPC-only durable store from the migration.
|
|
188
|
+
*/
|
|
189
|
+
export declare class MemoryConsequenceActuatorStore implements ConsequenceActuatorStore {
|
|
190
|
+
#private;
|
|
191
|
+
readonly testOnly: true;
|
|
192
|
+
readonly durable = false;
|
|
193
|
+
readonly atomic = true;
|
|
194
|
+
readonly ownershipFenced = false;
|
|
195
|
+
readonly permanentConsumption = false;
|
|
196
|
+
constructor(options?: {
|
|
197
|
+
now?: number | (() => number);
|
|
198
|
+
});
|
|
199
|
+
reserve(reservation: ConsequenceActuatorReservation): Promise<boolean>;
|
|
200
|
+
consume(consumption: ConsequenceActuatorConsumption): Promise<boolean>;
|
|
201
|
+
snapshot(tenantId: string, nonce: string): MemoryConsequenceActuatorSnapshot | null;
|
|
202
|
+
get size(): number;
|
|
203
|
+
}
|
|
204
|
+
export declare function createMemoryConsequenceActuatorStore(options?: {
|
|
205
|
+
now?: number | (() => number);
|
|
206
|
+
}): MemoryConsequenceActuatorStore;
|
|
207
|
+
/**
|
|
208
|
+
* Production adapter for the RPC-only PostgreSQL store. The supplied pool must
|
|
209
|
+
* be dedicated to one tenant-mapped executor login; the adapter never emits
|
|
210
|
+
* direct table SQL.
|
|
211
|
+
*/
|
|
212
|
+
export declare class PostgresConsequenceActuatorStore implements ConsequenceActuatorStore {
|
|
213
|
+
#private;
|
|
214
|
+
readonly durable = true;
|
|
215
|
+
readonly atomic = true;
|
|
216
|
+
readonly ownershipFenced = true;
|
|
217
|
+
readonly permanentConsumption = true;
|
|
218
|
+
readonly tenantId: string;
|
|
219
|
+
readonly executorPrincipal: string;
|
|
220
|
+
constructor(options: PostgresConsequenceActuatorStoreOptions);
|
|
221
|
+
reserve(reservation: ConsequenceActuatorReservation): Promise<boolean>;
|
|
222
|
+
consume(consumption: ConsequenceActuatorConsumption): Promise<boolean>;
|
|
223
|
+
}
|
|
224
|
+
export declare function createPostgresConsequenceActuatorStore(options: PostgresConsequenceActuatorStoreOptions): PostgresConsequenceActuatorStore;
|
|
225
|
+
export {};
|
|
226
|
+
//# sourceMappingURL=consequence-actuator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consequence-actuator.d.ts","sourceRoot":"","sources":["../src/consequence-actuator.ts"],"names":[],"mappings":"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"}
|