feat(ai-scribe): Fix cannot parsing AI capability from Session
This commit is contained in:
@@ -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:jmap_dart_client/jmap/core/capability/websocket_capability.dart';
|
||||||
import 'package:model/saas/saas_account_capability.dart';
|
import 'package:model/saas/saas_account_capability.dart';
|
||||||
import 'package:model/support/contact_support_capability.dart';
|
import 'package:model/support/contact_support_capability.dart';
|
||||||
|
import 'package:scribe/scribe/ai/presentation/model/ai_capability.dart';
|
||||||
|
|
||||||
class CapabilityPropertiesConverter {
|
class CapabilityPropertiesConverter {
|
||||||
|
|
||||||
@@ -38,6 +39,8 @@ class CapabilityPropertiesConverter {
|
|||||||
return properties.toJson();
|
return properties.toJson();
|
||||||
} else if (properties is SaaSAccountCapability) {
|
} else if (properties is SaaSAccountCapability) {
|
||||||
return properties.toJson();
|
return properties.toJson();
|
||||||
|
} else if (properties is AICapability) {
|
||||||
|
return properties.toJson();
|
||||||
} else if (properties is DefaultCapability) {
|
} else if (properties is DefaultCapability) {
|
||||||
return properties.properties;
|
return properties.properties;
|
||||||
} else if (properties is EmptyCapability) {
|
} 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/capability/capability_properties.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.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/download_all/download_all_capability.dart';
|
||||||
import 'package:model/mailbox/mailbox_constants.dart';
|
import 'package:model/mailbox/mailbox_constants.dart';
|
||||||
import 'package:model/model.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: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/data/model/session_hive_obj.dart';
|
||||||
import 'package:tmail_ui_user/features/home/domain/converter/session_account_converter.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,
|
linagoraDownloadAllCapability: DownloadAllCapability.deserialize,
|
||||||
capabilityServerSettings: SettingsCapability.deserialize,
|
capabilityServerSettings: SettingsCapability.deserialize,
|
||||||
linagoraSaaSCapability: SaaSAccountCapability.deserialize,
|
linagoraSaaSCapability: SaaSAccountCapability.deserialize,
|
||||||
capabilityAI: AICapability.deserialize,
|
AiScribeConstants.aiCapability: AICapability.deserialize,
|
||||||
};
|
};
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
@@ -173,7 +173,7 @@ extension SessionExtensions on Session {
|
|||||||
try {
|
try {
|
||||||
final aiCapability = getCapabilityProperties<AICapability>(
|
final aiCapability = getCapabilityProperties<AICapability>(
|
||||||
accountId,
|
accountId,
|
||||||
capabilityAI,
|
AiScribeConstants.aiCapability,
|
||||||
);
|
);
|
||||||
log('SessionExtensions::getAICapability:aiCapability = $aiCapability');
|
log('SessionExtensions::getAICapability:aiCapability = $aiCapability');
|
||||||
return aiCapability;
|
return aiCapability;
|
||||||
|
|||||||
@@ -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'));
|
|
||||||
@@ -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/repository/ai_scribe_repository.dart';
|
||||||
export 'scribe/ai/domain/model/ai_response.dart';
|
export 'scribe/ai/domain/model/ai_response.dart';
|
||||||
export 'scribe/ai/domain/state/generate_ai_text_state.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/repository/ai_repository_impl.dart';
|
||||||
export 'scribe/ai/data/datasource/ai_datasource.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,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"@@last_modified": "2025-12-15T14:32:54.358333",
|
"@@last_modified": "2025-12-16T18:07:47.039649",
|
||||||
"categoryCorrectGrammar": "Correct grammar",
|
"categoryCorrectGrammar": "Correct grammar",
|
||||||
"@categoryCorrectGrammar": {
|
"@categoryCorrectGrammar": {
|
||||||
"type": "text",
|
"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
@@ -109,10 +109,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: build_runner_core
|
name: build_runner_core
|
||||||
sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0
|
sha256: "0671ad4162ed510b70d0eb4ad6354c249f8429cab4ae7a4cec86bbc2886eb76e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.3.2"
|
version: "7.2.7+1"
|
||||||
built_collection:
|
built_collection:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -669,6 +669,15 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.5"
|
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:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -678,13 +687,13 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.2"
|
version: "0.7.2"
|
||||||
json_annotation:
|
json_annotation:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: json_annotation
|
name: json_annotation
|
||||||
sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
|
sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.8.1"
|
version: "4.8.0"
|
||||||
json_serializable:
|
json_serializable:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -981,6 +990,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.2"
|
version: "3.0.2"
|
||||||
|
quiver:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: quiver
|
||||||
|
sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.2.1"
|
||||||
sanitize_html:
|
sanitize_html:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -17,6 +17,12 @@ dependencies:
|
|||||||
core:
|
core:
|
||||||
path: ../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 ###
|
### Dependencies from pub.dev ###
|
||||||
dartz: 0.10.1
|
dartz: 0.10.1
|
||||||
|
|
||||||
@@ -28,6 +34,8 @@ dependencies:
|
|||||||
|
|
||||||
intl: 0.20.2
|
intl: 0.20.2
|
||||||
|
|
||||||
|
json_annotation: 4.8.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|||||||
Reference in New Issue
Block a user