Revert SCUM real data management change

This commit is contained in:
npc0-hue
2026-08-13 15:33:34 +08:00
parent d831e4ade9
commit b07a792784
163 changed files with 5443 additions and 9174 deletions
+1 -156
View File
@@ -43,7 +43,6 @@ export type RunCapability =
| "remote.run.process.start"
| "remote.run.process.stop"
| "remote.run.db.mysql.query"
| "remote.run.db.sqlite.probe"
| "remote.run.db.sqlite.query"
| "remote.run.logs.transfer"
| "remote.run.rcon.command"
@@ -269,146 +268,6 @@ export interface GameClientBridgeQueryTemplateDeclaration {
export type GameClientBridgeOperationKind = "rcon" | "sqlite-mutation";
export type SCUMLiveDataCapability =
| "schema-probe"
| "players.read"
| "player-details.read"
| "squads.read"
| "squad-members.read"
| "vehicles.read"
| "flags.read"
| "positions.read"
| "profile-xml.write"
| "economy-command.write"
| "gift-command.write";
export type SCUMLiveDataGateState = "disabled" | "enabled";
export type SCUMLiveDataEvidenceStatus = "missing" | "compatible" | "incompatible" | "failed";
export interface SCUMLiveDataCapabilityGateDeclaration {
capability: SCUMLiveDataCapability;
gate: SCUMLiveDataGateState;
adapterVersion: string;
requiredSchemaFingerprint?: string;
requiredAssetDigests?: `sha256:${string}`[];
evidenceStatus: SCUMLiveDataEvidenceStatus;
safeReason: string;
}
export interface SCUMSchemaProbeBoundsDeclaration {
maxObjects: number;
maxColumnsPerObject: number;
maxIndexesPerObject: number;
maxForeignKeys: number;
maxCardinalityReads: number;
maxSampleRows: number;
timeoutMs: number;
maxResultBytes: number;
}
export interface SCUMSchemaProbeDeclaration {
capability: Extract<RunCapability, "remote.run.db.sqlite.probe">;
targetKey: string;
bounds: SCUMSchemaProbeBoundsDeclaration;
}
export type SCUMVersionedAssetDigest = `sha256:${string}`;
export type SCUMLiveDataReadCapability = Extract<SCUMLiveDataCapability, "players.read" | "player-details.read" | "squads.read" | "squad-members.read" | "vehicles.read" | "flags.read" | "positions.read">;
export type SCUMLiveDataWriteCapability = Extract<SCUMLiveDataCapability, "profile-xml.write" | "economy-command.write" | "gift-command.write">;
export interface SCUMVersionedAssetDeclaration {
key: string;
adapterVersion: string;
assetPath: string;
digest: SCUMVersionedAssetDigest;
}
export interface SCUMLoginLogParserDeclaration extends SCUMVersionedAssetDeclaration {
parserVersion: string;
sourceKey: string;
eventType: string;
eventSchemaRef: string;
maxLineBytes: number;
cursorPolicy: "source-generation-sequence";
privacy: { stripNetworkIdentifiers: true; logicalEventIdentity: "native-or-sanitized-fields" };
}
export interface SCUMSQLiteQueryAssetDeclaration extends SCUMVersionedAssetDeclaration {
capability: SCUMLiveDataReadCapability;
requiredSchemaFingerprint: string;
transportKey: string;
targetKey: string;
parameterSchemaRef: string;
resultSchemaRef: string;
maxRows: number;
timeoutMs: number;
maxResultBytes: number;
}
export interface SCUMLiveDataSyncCadenceDeclaration {
capability: SCUMLiveDataReadCapability;
intervalSeconds: number;
jitterPercent: number;
timeoutMs: number;
maxConcurrentPerServer: number;
}
export interface SCUMTypedRCONTemplateDeclaration extends SCUMVersionedAssetDeclaration {
capability: Extract<SCUMLiveDataWriteCapability, "economy-command.write" | "gift-command.write">;
requiredSchemaFingerprint?: string;
transportKey: string;
targetKey: string;
permission: Extract<PluginPermission, "server.game-client.command">;
payloadSchemaRef: string;
resultSchemaRef: string;
confirmationSchemaRef: string;
timeoutMs: number;
maxPayloadBytes: number;
}
export interface SCUMGuardedMutationDeclaration extends SCUMVersionedAssetDeclaration {
capability: Extract<SCUMLiveDataWriteCapability, "profile-xml.write">;
requiredSchemaFingerprint: string;
transportKey: string;
targetKey: string;
permission: Extract<PluginPermission, "server.game-client.maintenance">;
payloadSchemaRef: string;
resultSchemaRef: string;
confirmationSchemaRef: string;
timeoutMs: number;
maxPayloadBytes: number;
maxRowsAffected: 1;
safety: { requiresExpectedChecksum: true; requiresBackupEvidence: true; requiresOfflineOrMaintenance: true; requiresReadAfterWrite: true };
}
export interface SCUMMapAssetDeclaration extends SCUMVersionedAssetDeclaration {
requiredSchemaFingerprint: string;
metadataSchemaRef: string;
transformAssetPath: string;
transformDigest: SCUMVersionedAssetDigest;
worldBounds: { minX: number; minY: number; maxX: number; maxY: number };
image: { width: number; height: number };
}
export interface SCUMGiftCatalogDeclaration extends SCUMVersionedAssetDeclaration {
catalogVersion: string;
itemSchemaRef: string;
transportTemplateKeys: string[];
}
export interface SCUMLiveDataManifestDeclaration {
schemaVersion: "1";
probe: SCUMSchemaProbeDeclaration;
capabilityGates: SCUMLiveDataCapabilityGateDeclaration[];
logParsers?: SCUMLoginLogParserDeclaration[];
sqliteQueries?: SCUMSQLiteQueryAssetDeclaration[];
syncCadences?: SCUMLiveDataSyncCadenceDeclaration[];
typedRconTemplates?: SCUMTypedRCONTemplateDeclaration[];
guardedMutations?: SCUMGuardedMutationDeclaration[];
mapAssets?: SCUMMapAssetDeclaration[];
giftCatalogs?: SCUMGiftCatalogDeclaration[];
}
export interface GameClientBridgeOperationSafety {
requiresApproval?: boolean;
requiresOfflinePlayer?: boolean;
@@ -655,23 +514,11 @@ export interface RuntimeLogEventDeclaration {
export interface RuntimeTransportProfile {
key: string;
kind: "file" | "ftp" | "rsync" | "mysql" | "sqlite" | "rcon" | "program";
kind: "file" | "ftp" | "rsync" | "mysql" | "sqlite" | "rcon";
targetKey?: string;
capabilities: RunCapability[];
}
export interface RuntimeDataTargetDeclaration {
key: string;
kind: "sqlite.snapshot";
transportKey: string;
sourceRootKey: string;
sourcePath: string;
workspaceKey: string;
refreshPolicy: "on-demand-snapshot";
maxBytes: number;
platforms?: RuntimePlatform[];
}
export interface RuntimeClientManagerProfile {
key: string;
displayName?: string;
@@ -751,7 +598,6 @@ export interface GamePluginRuntimeProfiles {
logSources?: RuntimeLogSource[];
logEvents?: RuntimeLogEventDeclaration[];
transportProfiles?: RuntimeTransportProfile[];
dataTargets?: RuntimeDataTargetDeclaration[];
clientManagers?: RuntimeClientManagerProfile[];
dllExtensions?: RuntimeDLLExtensionProfile[];
}
@@ -876,7 +722,6 @@ export interface GamePluginManifest {
remoteAccess?: GamePluginRemoteAccess;
runtimeProfiles?: GamePluginRuntimeProfiles;
gameClientBridge?: GameClientBridgeManifest;
scumLiveData?: SCUMLiveDataManifestDeclaration;
actions?: GamePluginActions;
assetFiles?: PluginAssetFile[];
productionLifecycle: {