mirror of
https://github.com/whyour/qinglong.git
synced 2026-09-21 01:32:44 +08:00
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import type { RuntimeRolloutPolicy } from '../domain/runtimeRollout';
|
|
import type { RuntimeRolloutManifest } from '../domain/runtimeRolloutManifest';
|
|
import type { LegacyShadowPrimaryGateReceipt } from '../domain/legacyShadowPrimaryGate';
|
|
|
|
export type RuntimeRolloutLoadStatus =
|
|
| 'missing'
|
|
| 'disabled'
|
|
| 'accepted'
|
|
| 'rejected';
|
|
|
|
export interface RuntimeRolloutLoadAudit {
|
|
event: 'runtime.rollout_config_evaluated';
|
|
evaluatedAtMs: number;
|
|
sourcePath: string;
|
|
status: RuntimeRolloutLoadStatus;
|
|
sourceSha256?: string;
|
|
revision?: string;
|
|
reasonCode?:
|
|
| 'FILE_MISSING'
|
|
| 'FILE_READ_FAILED'
|
|
| 'FILE_TOO_LARGE'
|
|
| 'INVALID_JSON'
|
|
| 'INVALID_MANIFEST'
|
|
| 'PRIMARY_GATE_READ_FAILED'
|
|
| 'PRIMARY_GATE_INVALID';
|
|
}
|
|
|
|
export interface RuntimeRolloutLoadResult {
|
|
status: RuntimeRolloutLoadStatus;
|
|
policy: RuntimeRolloutPolicy;
|
|
audit: RuntimeRolloutLoadAudit;
|
|
manifest?: RuntimeRolloutManifest;
|
|
primaryGateReceipt?: LegacyShadowPrimaryGateReceipt;
|
|
}
|
|
|
|
export interface RuntimeRolloutLoader {
|
|
load(): Promise<RuntimeRolloutLoadResult>;
|
|
}
|