feat(ai-scribe): Fix cannot parsing AI capability from Session

This commit is contained in:
dab246
2025-12-16 18:35:45 +07:00
committed by Dat H. Pham
parent 63d9a5d740
commit 7ddccf2e1c
9 changed files with 52 additions and 15 deletions
@@ -12,6 +12,7 @@ import 'package:jmap_dart_client/jmap/core/capability/web_socket_ticket_capabili
import 'package:jmap_dart_client/jmap/core/capability/websocket_capability.dart';
import 'package:model/saas/saas_account_capability.dart';
import 'package:model/support/contact_support_capability.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_capability.dart';
class CapabilityPropertiesConverter {
@@ -38,6 +39,8 @@ class CapabilityPropertiesConverter {
return properties.toJson();
} else if (properties is SaaSAccountCapability) {
return properties.toJson();
} else if (properties is AICapability) {
return properties.toJson();
} else if (properties is DefaultCapability) {
return properties.properties;
} else if (properties is EmptyCapability) {
@@ -12,11 +12,11 @@ import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart
import 'package:jmap_dart_client/jmap/core/capability/capability_properties.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
import 'package:model/ai/ai_capability.dart';
import 'package:model/ai/capability_ai.dart';
import 'package:model/download_all/download_all_capability.dart';
import 'package:model/mailbox/mailbox_constants.dart';
import 'package:model/model.dart';
import 'package:scribe/scribe/ai/presentation/model/ai_capability.dart';
import 'package:scribe/scribe/ai/presentation/utils/ai_scribe_constants.dart';
import 'package:server_settings/server_settings/capability_server_settings.dart';
import 'package:tmail_ui_user/features/home/data/model/session_hive_obj.dart';
import 'package:tmail_ui_user/features/home/domain/converter/session_account_converter.dart';
@@ -35,7 +35,7 @@ extension SessionExtensions on Session {
linagoraDownloadAllCapability: DownloadAllCapability.deserialize,
capabilityServerSettings: SettingsCapability.deserialize,
linagoraSaaSCapability: SaaSAccountCapability.deserialize,
capabilityAI: AICapability.deserialize,
AiScribeConstants.aiCapability: AICapability.deserialize,
};
Map<String, dynamic> toJson() {
@@ -173,7 +173,7 @@ extension SessionExtensions on Session {
try {
final aiCapability = getCapabilityProperties<AICapability>(
accountId,
capabilityAI,
AiScribeConstants.aiCapability,
);
log('SessionExtensions::getAICapability:aiCapability = $aiCapability');
return aiCapability;
-3
View File
@@ -1,3 +0,0 @@
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
final capabilityAI = CapabilityIdentifier(Uri.parse('com:linagora:params:jmap:aibot'));
+6 -2
View File
@@ -4,7 +4,11 @@ export 'scribe/ai/domain/usecases/generate_ai_text_interactor.dart';
export 'scribe/ai/domain/repository/ai_scribe_repository.dart';
export 'scribe/ai/domain/model/ai_response.dart';
export 'scribe/ai/domain/state/generate_ai_text_state.dart';
export 'scribe/ai/presentation/model/ai_action.dart';
export 'scribe/ai/presentation/model/ai_scribe_menu_action.dart';
export 'scribe/ai/data/repository/ai_repository_impl.dart';
export 'scribe/ai/data/datasource/ai_datasource.dart';
export 'scribe/ai/presentation/model/ai_action.dart';
export 'scribe/ai/presentation/model/ai_scribe_menu_action.dart';
export 'scribe/ai/presentation/model/ai_capability.dart';
export 'scribe/ai/presentation/utils/ai_scribe_constants.dart';
+1 -1
View File
@@ -1,5 +1,5 @@
{
"@@last_modified": "2025-12-15T14:32:54.358333",
"@@last_modified": "2025-12-16T18:07:47.039649",
"categoryCorrectGrammar": "Correct grammar",
"@categoryCorrectGrammar": {
"type": "text",
@@ -0,0 +1,8 @@
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
class AiScribeConstants {
AiScribeConstants._();
static final CapabilityIdentifier aiCapability =
CapabilityIdentifier(Uri.parse('com:linagora:params:jmap:aibot'));
}
+22 -5
View File
@@ -109,10 +109,10 @@ packages:
dependency: transitive
description:
name: build_runner_core
sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0
sha256: "0671ad4162ed510b70d0eb4ad6354c249f8429cab4ae7a4cec86bbc2886eb76e"
url: "https://pub.dev"
source: hosted
version: "7.3.2"
version: "7.2.7+1"
built_collection:
dependency: transitive
description:
@@ -669,6 +669,15 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.5"
jmap_dart_client:
dependency: "direct main"
description:
path: "."
ref: main
resolved-ref: "446efbbccdde981371b4d2a636762184adf6e926"
url: "https://github.com/linagora/jmap-dart-client.git"
source: git
version: "0.3.6"
js:
dependency: transitive
description:
@@ -678,13 +687,13 @@ packages:
source: hosted
version: "0.7.2"
json_annotation:
dependency: transitive
dependency: "direct main"
description:
name: json_annotation
sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
url: "https://pub.dev"
source: hosted
version: "4.8.1"
version: "4.8.0"
json_serializable:
dependency: "direct dev"
description:
@@ -981,6 +990,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.2"
quiver:
dependency: transitive
description:
name: quiver
sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
url: "https://pub.dev"
source: hosted
version: "3.2.1"
sanitize_html:
dependency: transitive
description:
+8
View File
@@ -17,6 +17,12 @@ dependencies:
core:
path: ../core
### Dependencies from git ###
jmap_dart_client:
git:
url: https://github.com/linagora/jmap-dart-client.git
ref: main
### Dependencies from pub.dev ###
dartz: 0.10.1
@@ -28,6 +34,8 @@ dependencies:
intl: 0.20.2
json_annotation: 4.8.0
dev_dependencies:
flutter_test:
sdk: flutter