ProjectConfig.fromJson constructor
ProjectConfig.fromJson(
- Map<String, dynamic> json
)
Implementation
factory ProjectConfig.fromJson(Map<String, dynamic> json) {
Map<String, ModelUsageMetrics>? modelUsage;
final raw = json['lastModelUsage'] as Map<String, dynamic>?;
if (raw != null) {
modelUsage = raw.map(
(k, v) =>
MapEntry(k, ModelUsageMetrics.fromJson(v as Map<String, dynamic>)),
);
}
return ProjectConfig(
allowedTools: (json['allowedTools'] as List?)?.cast<String>() ?? [],
mcpContextUris: (json['mcpContextUris'] as List?)?.cast<String>() ?? [],
mcpServers: json['mcpServers'] as Map<String, dynamic>?,
lastAPIDuration: (json['lastAPIDuration'] as num?)?.toDouble(),
lastAPIDurationWithoutRetries:
(json['lastAPIDurationWithoutRetries'] as num?)?.toDouble(),
lastToolDuration: (json['lastToolDuration'] as num?)?.toDouble(),
lastCost: (json['lastCost'] as num?)?.toDouble(),
lastDuration: (json['lastDuration'] as num?)?.toDouble(),
lastLinesAdded: json['lastLinesAdded'] as int?,
lastLinesRemoved: json['lastLinesRemoved'] as int?,
lastTotalInputTokens: json['lastTotalInputTokens'] as int?,
lastTotalOutputTokens: json['lastTotalOutputTokens'] as int?,
lastTotalCacheCreationInputTokens:
json['lastTotalCacheCreationInputTokens'] as int?,
lastTotalCacheReadInputTokens:
json['lastTotalCacheReadInputTokens'] as int?,
lastTotalWebSearchRequests: json['lastTotalWebSearchRequests'] as int?,
lastFpsAverage: (json['lastFpsAverage'] as num?)?.toDouble(),
lastFpsLow1Pct: (json['lastFpsLow1Pct'] as num?)?.toDouble(),
lastSessionId: json['lastSessionId'] as String?,
lastModelUsage: modelUsage,
lastSessionMetrics: (json['lastSessionMetrics'] as Map<String, dynamic>?)
?.map((k, v) => MapEntry(k, (v as num).toInt())),
exampleFiles: (json['exampleFiles'] as List?)?.cast<String>(),
exampleFilesGeneratedAt: json['exampleFilesGeneratedAt'] as int?,
hasTrustDialogAccepted: json['hasTrustDialogAccepted'] as bool? ?? false,
hasCompletedProjectOnboarding:
json['hasCompletedProjectOnboarding'] as bool? ?? false,
projectOnboardingSeenCount:
json['projectOnboardingSeenCount'] as int? ?? 0,
hasNeomageMdExternalIncludesApproved:
json['hasNeomageMdExternalIncludesApproved'] as bool? ?? false,
hasNeomageMdExternalIncludesWarningShown:
json['hasNeomageMdExternalIncludesWarningShown'] as bool? ?? false,
enabledMcpjsonServers: (json['enabledMcpjsonServers'] as List?)
?.cast<String>(),
disabledMcpjsonServers: (json['disabledMcpjsonServers'] as List?)
?.cast<String>(),
enableAllProjectMcpServers: json['enableAllProjectMcpServers'] as bool?,
disabledMcpServers: (json['disabledMcpServers'] as List?)?.cast<String>(),
enabledMcpServers: (json['enabledMcpServers'] as List?)?.cast<String>(),
activeWorktreeSession:
json['activeWorktreeSession'] as Map<String, dynamic>?,
remoteControlSpawnMode: json['remoteControlSpawnMode'] as String?,
);
}