cozy-search 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,12 +17,8 @@ var _Avatar = _interopRequireDefault(require("cozy-ui/transpiled/react/Avatar"))
17
17
 
18
18
  var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
19
19
 
20
- var _Assistant = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Assistant"));
21
-
22
20
  var _AssistantColor = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/AssistantColor"));
23
21
 
24
- var _constants = require("../constants");
25
-
26
22
  var styles = {
27
23
  "assistant-container": "styles__assistant-container___2WDzp",
28
24
  "knowledge-panel--light": "styles__knowledge-panel--light___1dZvc",
@@ -34,6 +30,7 @@ var styles = {
34
30
  "menu-item": "styles__menu-item___1jvWN",
35
31
  "create-item": "styles__create-item___3ZARq",
36
32
  "menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
33
+ "menu-item-actions": "styles__menu-item-actions___1ykUi",
37
34
  "chip": "styles__chip___16BPR",
38
35
  "selected-item--mobile": "styles__selected-item--mobile___gxVpw"
39
36
  };
@@ -45,17 +42,14 @@ var AssistantAvatar = function AssistantAvatar(_ref) {
45
42
  if (!assistant) return null;
46
43
  var iconClassName = (0, _classnames.default)(styles['assistant-icon'], (0, _defineProperty2.default)({}, styles['assistant-icon--small'], isSmall), className);
47
44
 
48
- if (assistant._id !== _constants.DEFAULT_ASSISTANT._id && !assistant.icon) {
45
+ if (!assistant.icon) {
49
46
  return /*#__PURE__*/_react.default.createElement(_Icon.default, {
50
- icon: _Assistant.default,
47
+ icon: _AssistantColor.default,
51
48
  className: iconClassName
52
49
  });
53
50
  }
54
51
 
55
- return assistant.id === _constants.DEFAULT_ASSISTANT.id ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
56
- icon: _AssistantColor.default,
57
- className: iconClassName
58
- }) : /*#__PURE__*/_react.default.createElement(_Avatar.default, {
52
+ return /*#__PURE__*/_react.default.createElement(_Avatar.default, {
59
53
  src: assistant.icon,
60
54
  alt: assistant.name,
61
55
  size: isSmall ? 12 : 24,
@@ -40,6 +40,7 @@ var styles = {
40
40
  "menu-item": "styles__menu-item___1jvWN",
41
41
  "create-item": "styles__create-item___3ZARq",
42
42
  "menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
43
+ "menu-item-actions": "styles__menu-item-actions___1ykUi",
43
44
  "chip": "styles__chip___16BPR",
44
45
  "selected-item--mobile": "styles__selected-item--mobile___gxVpw"
45
46
  };
@@ -60,6 +60,7 @@ var styles = {
60
60
  "menu-item": "styles__menu-item___1jvWN",
61
61
  "create-item": "styles__create-item___3ZARq",
62
62
  "menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
63
+ "menu-item-actions": "styles__menu-item-actions___1ykUi",
63
64
  "chip": "styles__chip___16BPR",
64
65
  "selected-item--mobile": "styles__selected-item--mobile___gxVpw"
65
66
  };
@@ -173,11 +174,12 @@ var AssistantSelection = function AssistantSelection(_ref) {
173
174
  className: (0, _classnames.default)(styles['menu-item'], styles['create-item'])
174
175
  }, /*#__PURE__*/_react.default.createElement("div", {
175
176
  className: "u-flex u-flex-items-center"
177
+ }, /*#__PURE__*/_react.default.createElement("div", {
178
+ className: "u-flex u-flex-justify-center u-w-1-half u-mr-half"
176
179
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
177
180
  icon: _Plus.default,
178
- size: 16,
179
- className: "u-mr-half"
180
- }), /*#__PURE__*/_react.default.createElement(_Typography.default, {
181
+ size: 16
182
+ })), /*#__PURE__*/_react.default.createElement(_Typography.default, {
181
183
  variant: "body1"
182
184
  }, t('assistant_create.title'))))));
183
185
  };
@@ -48,6 +48,7 @@ var styles = {
48
48
  "menu-item": "styles__menu-item___1jvWN",
49
49
  "create-item": "styles__create-item___3ZARq",
50
50
  "menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
51
+ "menu-item-actions": "styles__menu-item-actions___1ykUi",
51
52
  "chip": "styles__chip___16BPR",
52
53
  "selected-item--mobile": "styles__selected-item--mobile___gxVpw"
53
54
  };
@@ -123,7 +124,9 @@ var AssistantSelectionItem = function AssistantSelectionItem(_ref) {
123
124
  }, isSelected && !isMobile && /*#__PURE__*/_react.default.createElement(_Icon.default, {
124
125
  icon: _Check.default,
125
126
  className: "u-success"
126
- }), !disableActions && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
127
+ }), !disableActions && /*#__PURE__*/_react.default.createElement("div", {
128
+ className: styles['menu-item-actions']
129
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
127
130
  "aria-label": "Edit assistant",
128
131
  size: "small",
129
132
  className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, styles['menu-item-icon-button'], !isMobile || !isSelected && isMobile), (0, _defineProperty2.default)(_cx, 'u-db', isSelected && isMobile), _cx)),
@@ -44,7 +44,13 @@
44
44
 
45
45
  &:hover
46
46
  .menu-item-icon-button
47
- display block !important
47
+ display inline-flex !important
48
+
49
+ .menu-item-actions
50
+ display flex
51
+ align-items center
52
+ min-width 64px
53
+ justify-content flex-end
48
54
 
49
55
  .menu-item-icon-button
50
56
  display none !important
@@ -1,6 +1,6 @@
1
1
  export default ApiKeyStep;
2
- declare function ApiKeyStep({ apiKey, selectedProvider, onChange }: {
3
- apiKey: any;
2
+ declare function ApiKeyStep({ formData, selectedProvider, onChange }: {
3
+ formData: any;
4
4
  selectedProvider: any;
5
5
  onChange: any;
6
6
  }): JSX.Element;
@@ -29,12 +29,14 @@ var _CozyTheme = require("cozy-ui-plus/dist/providers/CozyTheme");
29
29
 
30
30
  var _twakeI18n = require("twake-i18n");
31
31
 
32
+ var _helpers = require("./helpers");
33
+
32
34
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
35
 
34
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
37
 
36
38
  var ApiKeyStep = function ApiKeyStep(_ref) {
37
- var apiKey = _ref.apiKey,
39
+ var formData = _ref.formData,
38
40
  selectedProvider = _ref.selectedProvider,
39
41
  onChange = _ref.onChange;
40
42
 
@@ -51,11 +53,20 @@ var ApiKeyStep = function ApiKeyStep(_ref) {
51
53
 
52
54
  var _ref2 = selectedProvider || {},
53
55
  id = _ref2.id,
54
- providerName = _ref2.name,
55
- model = _ref2.model,
56
- baseUrl = _ref2.baseUrl;
56
+ providerName = _ref2.name;
57
+
58
+ var _ref3 = formData || {},
59
+ _ref3$model = _ref3.model,
60
+ model = _ref3$model === void 0 ? '' : _ref3$model,
61
+ _ref3$baseUrl = _ref3.baseUrl,
62
+ baseUrl = _ref3$baseUrl === void 0 ? '' : _ref3$baseUrl,
63
+ _ref3$apiKey = _ref3.apiKey,
64
+ apiKey = _ref3$apiKey === void 0 ? '' : _ref3$apiKey,
65
+ _ref3$encryptedApiKey = _ref3.encryptedApiKey,
66
+ encryptedApiKey = _ref3$encryptedApiKey === void 0 ? '' : _ref3$encryptedApiKey;
57
67
 
58
68
  var isCustomModel = id === 'custom';
69
+ var isModelUnsupported = (0, _helpers.checkIfModelUnsupported)(selectedProvider, model);
59
70
  return /*#__PURE__*/_react.default.createElement("div", {
60
71
  className: "u-flex u-flex-column u-gap-1"
61
72
  }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
@@ -66,18 +77,6 @@ var ApiKeyStep = function ApiKeyStep(_ref) {
66
77
  }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
67
78
  variant: "h6",
68
79
  className: "u-mb-half"
69
- }, t('assistant_create.steps.configuration.provider.label')), /*#__PURE__*/_react.default.createElement(_TextField.default, {
70
- fullWidth: true,
71
- placeholder: t('assistant_create.steps.configuration.provider.placeholder'),
72
- value: providerName,
73
- onChange: onChange('model'),
74
- variant: "outlined",
75
- type: "text"
76
- })), isCustomModel && /*#__PURE__*/_react.default.createElement("div", {
77
- className: "u-mb-1"
78
- }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
79
- variant: "h6",
80
- className: "u-mb-half"
81
80
  }, t('assistant_create.steps.configuration.url.label')), /*#__PURE__*/_react.default.createElement(_TextField.default, {
82
81
  fullWidth: true,
83
82
  placeholder: t('assistant_create.steps.configuration.url.placeholder'),
@@ -85,7 +84,7 @@ var ApiKeyStep = function ApiKeyStep(_ref) {
85
84
  onChange: onChange('baseUrl'),
86
85
  variant: "outlined",
87
86
  type: "text"
88
- })), !isCustomModel && /*#__PURE__*/_react.default.createElement("div", {
87
+ })), /*#__PURE__*/_react.default.createElement("div", {
89
88
  className: "u-mb-1"
90
89
  }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
91
90
  variant: "h6",
@@ -96,7 +95,9 @@ var ApiKeyStep = function ApiKeyStep(_ref) {
96
95
  value: model,
97
96
  onChange: onChange('model'),
98
97
  variant: "outlined",
99
- type: "text"
98
+ type: "text",
99
+ error: isModelUnsupported,
100
+ helperText: isModelUnsupported ? t('assistant_create.steps.configuration.model.unsupported') : undefined
100
101
  })), /*#__PURE__*/_react.default.createElement("div", {
101
102
  className: "u-mb-1"
102
103
  }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
@@ -104,7 +105,7 @@ var ApiKeyStep = function ApiKeyStep(_ref) {
104
105
  className: "u-mb-half"
105
106
  }, t('assistant_create.steps.configuration.api_key.label')), /*#__PURE__*/_react.default.createElement(_TextField.default, {
106
107
  fullWidth: true,
107
- placeholder: t('assistant_create.steps.configuration.api_key.placeholder'),
108
+ placeholder: encryptedApiKey ? '••••••••••••' : t('assistant_create.steps.configuration.api_key.placeholder'),
108
109
  value: apiKey,
109
110
  onChange: onChange('apiKey'),
110
111
  variant: "outlined",
@@ -44,7 +44,7 @@ var AssistantDialogContent = function AssistantDialogContent(_ref) {
44
44
 
45
45
  case _useAssistantDialog.STEPS.API_KEY:
46
46
  return /*#__PURE__*/_react.default.createElement(_ApiKeyStep.default, {
47
- apiKey: formData.apiKey,
47
+ formData: formData,
48
48
  selectedProvider: selectedProvider,
49
49
  onChange: onChange,
50
50
  onModelSelect: onModelSelect
@@ -48,21 +48,6 @@ var styles = {
48
48
  "close-button": "styles__close-button___3jc_w"
49
49
  };
50
50
 
51
- var AnthropicLogo = function AnthropicLogo(props) {
52
- return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("desc", null, "Anthropic Icon Streamline Icon: https://streamlinehq.com"), /*#__PURE__*/_react.default.createElement("path", {
53
- fill: "#181818",
54
- d: "M13.789 3.932l6.433 16.136h3.528L17.317 3.932h-3.528zM6.325 13.683l2.202-5.67 2.2 5.67H6.326zm.357-9.751L.25 20.068h3.597l1.315-3.389h6.73l1.315 3.39h3.596L10.371 3.931H6.682z"
55
- }));
56
- };
57
-
58
- AnthropicLogo.defaultProps = {
59
- xmlns: "http://www.w3.org/2000/svg",
60
- fill: "none",
61
- viewBox: "0 0 24 24",
62
- height: "24",
63
- width: "24"
64
- };
65
-
66
51
  var GeminiLogo = function GeminiLogo(props) {
67
52
  return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("g", {
68
53
  clipPath: "url(#clip0_20306_34597)"
@@ -478,7 +463,6 @@ var ICONS = {
478
463
  GeminiLogo: GeminiLogo,
479
464
  OpenAILogo: OpenAILogo,
480
465
  MistralLogo: MistralLogo,
481
- AnthropicLogo: AnthropicLogo,
482
466
  MetaLogo: MetaLogo,
483
467
  PlusSmallIcon: _PlusSmall.default
484
468
  };
@@ -42,6 +42,7 @@ var providers = [{
42
42
  id: "openai",
43
43
  name: "OpenAI",
44
44
  models: ["gpt-5.1", "gpt-5-2025-11-14", "o3", "o4-mini", "gpt-5-mini", "gpt-4.1-mini", "sora-v2"],
45
+ unsupportedModels: ["o1", "o1-mini", "o1-preview"],
45
46
  description: "assistant_create.steps.provider_selection.openai.description",
46
47
  icon: "OpenAILogo",
47
48
  baseUrl: "https://api.openai.com/v1",
@@ -54,20 +55,6 @@ var providers = [{
54
55
  icon: "MistralLogo",
55
56
  baseUrl: "https://api.mistral.ai/v1",
56
57
  external: true
57
- }, {
58
- id: "anthropic",
59
- name: "Anthropic",
60
- models: ["claude-4-5-opus-20251124", "claude-4-5-sonnet-20250929", "claude-4-5-haiku-20251015", "claude-3-7-sonnet-20250219"],
61
- description: "assistant_create.steps.provider_selection.anthropic.description",
62
- icon: "AnthropicLogo",
63
- baseUrl: "https://api.anthropic.com/v1",
64
- external: true
65
- }, {
66
- id: "custom",
67
- name: "assistant_create.steps.provider_selection.custom.name",
68
- description: "assistant_create.steps.provider_selection.custom.description",
69
- icon: "PlusSmallIcon",
70
- external: true
71
58
  }, {
72
59
  id: "meta",
73
60
  name: "Meta",
@@ -76,6 +63,12 @@ var providers = [{
76
63
  icon: "MetaLogo",
77
64
  baseUrl: "https://api.llama.com/v1",
78
65
  external: true
66
+ }, {
67
+ id: "custom",
68
+ name: "assistant_create.steps.provider_selection.custom.name",
69
+ description: "assistant_create.steps.provider_selection.custom.description",
70
+ icon: "PlusSmallIcon",
71
+ external: true
79
72
  }];
80
73
  var styles = {
81
74
  "BasicInfoStep": "styles__BasicInfoStep___2r0eM",
@@ -1 +1,2 @@
1
1
  export function getSelectedProviderById(providerId: string): object;
2
+ export function checkIfModelUnsupported(provider: object, model: string): boolean;
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.getSelectedProviderById = void 0;
8
+ exports.getSelectedProviderById = exports.checkIfModelUnsupported = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
@@ -32,6 +32,7 @@ var providers = [{
32
32
  id: "openai",
33
33
  name: "OpenAI",
34
34
  models: ["gpt-5.1", "gpt-5-2025-11-14", "o3", "o4-mini", "gpt-5-mini", "gpt-4.1-mini", "sora-v2"],
35
+ unsupportedModels: ["o1", "o1-mini", "o1-preview"],
35
36
  description: "assistant_create.steps.provider_selection.openai.description",
36
37
  icon: "OpenAILogo",
37
38
  baseUrl: "https://api.openai.com/v1",
@@ -44,20 +45,6 @@ var providers = [{
44
45
  icon: "MistralLogo",
45
46
  baseUrl: "https://api.mistral.ai/v1",
46
47
  external: true
47
- }, {
48
- id: "anthropic",
49
- name: "Anthropic",
50
- models: ["claude-4-5-opus-20251124", "claude-4-5-sonnet-20250929", "claude-4-5-haiku-20251015", "claude-3-7-sonnet-20250219"],
51
- description: "assistant_create.steps.provider_selection.anthropic.description",
52
- icon: "AnthropicLogo",
53
- baseUrl: "https://api.anthropic.com/v1",
54
- external: true
55
- }, {
56
- id: "custom",
57
- name: "assistant_create.steps.provider_selection.custom.name",
58
- description: "assistant_create.steps.provider_selection.custom.description",
59
- icon: "PlusSmallIcon",
60
- external: true
61
48
  }, {
62
49
  id: "meta",
63
50
  name: "Meta",
@@ -66,6 +53,12 @@ var providers = [{
66
53
  icon: "MetaLogo",
67
54
  baseUrl: "https://api.llama.com/v1",
68
55
  external: true
56
+ }, {
57
+ id: "custom",
58
+ name: "assistant_create.steps.provider_selection.custom.name",
59
+ description: "assistant_create.steps.provider_selection.custom.description",
60
+ icon: "PlusSmallIcon",
61
+ external: true
69
62
  }];
70
63
  /**
71
64
  * Get the provider corresponding to a given model name.
@@ -81,5 +74,19 @@ var getSelectedProviderById = function getSelectedProviderById(providerId) {
81
74
  return provider.id === 'custom';
82
75
  }));
83
76
  };
77
+ /**
78
+ * Check whether the given model is unsupported by the provider.
79
+ * @param {object} provider - The provider object.
80
+ * @param {string} model - The model name.
81
+ * @returns {boolean} True if the model is unsupported.
82
+ */
83
+
84
+
85
+ exports.getSelectedProviderById = getSelectedProviderById;
86
+
87
+ var checkIfModelUnsupported = function checkIfModelUnsupported(provider, model) {
88
+ var unsupportedModels = (provider === null || provider === void 0 ? void 0 : provider.unsupportedModels) || [];
89
+ return unsupportedModels.includes(model === null || model === void 0 ? void 0 : model.trim());
90
+ };
84
91
 
85
- exports.getSelectedProviderById = getSelectedProviderById;
92
+ exports.checkIfModelUnsupported = checkIfModelUnsupported;
@@ -20,6 +20,7 @@
20
20
  "id": "openai",
21
21
  "name": "OpenAI",
22
22
  "models": ["gpt-5.1", "gpt-5-2025-11-14", "o3", "o4-mini", "gpt-5-mini", "gpt-4.1-mini", "sora-v2"],
23
+ "unsupportedModels": ["o1", "o1-mini", "o1-preview"],
23
24
  "description": "assistant_create.steps.provider_selection.openai.description",
24
25
  "icon": "OpenAILogo",
25
26
  "baseUrl": "https://api.openai.com/v1",
@@ -35,12 +36,12 @@
35
36
  "external": true
36
37
  },
37
38
  {
38
- "id": "anthropic",
39
- "name": "Anthropic",
40
- "models": ["claude-4-5-opus-20251124", "claude-4-5-sonnet-20250929", "claude-4-5-haiku-20251015", "claude-3-7-sonnet-20250219"],
41
- "description": "assistant_create.steps.provider_selection.anthropic.description",
42
- "icon": "AnthropicLogo",
43
- "baseUrl": "https://api.anthropic.com/v1",
39
+ "id": "meta",
40
+ "name": "Meta",
41
+ "models": ["meta-llama/Llama-4-Scout-17B-16E-Instruct", "meta-llama/Llama-4-Maverick-402B-Instruct", "meta-llama/Llama-3.3-70B-Instruct", "meta-llama/Llama-3.2-90B-Vision-Instruct"],
42
+ "description": "assistant_create.steps.provider_selection.meta.description",
43
+ "icon": "MetaLogo",
44
+ "baseUrl": "https://api.llama.com/v1",
44
45
  "external": true
45
46
  },
46
47
  {
@@ -49,14 +50,5 @@
49
50
  "description": "assistant_create.steps.provider_selection.custom.description",
50
51
  "icon": "PlusSmallIcon",
51
52
  "external": true
52
- },
53
- {
54
- "id": "meta",
55
- "name": "Meta",
56
- "models": ["meta-llama/Llama-4-Scout-17B-16E-Instruct", "meta-llama/Llama-4-Maverick-402B-Instruct", "meta-llama/Llama-3.3-70B-Instruct", "meta-llama/Llama-3.2-90B-Vision-Instruct"],
57
- "description": "assistant_create.steps.provider_selection.meta.description",
58
- "icon": "MetaLogo",
59
- "baseUrl": "https://api.llama.com/v1",
60
- "external": true
61
53
  }
62
54
  ]
@@ -27,6 +27,8 @@ var _locales = require("../../locales");
27
27
 
28
28
  var _constants = require("../constants");
29
29
 
30
+ var _helpers = require("./helpers");
31
+
30
32
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
33
 
32
34
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -117,13 +119,12 @@ var useAssistantDialog = function useAssistantDialog(_ref) {
117
119
  };
118
120
 
119
121
  var handleProviderSelection = function handleProviderSelection(provider) {
120
- var isOpenrag = provider.id === _constants.OPENRAG_MODEL;
121
122
  setFormData(function (prev) {
122
- var _provider$baseUrl;
123
+ var _provider$baseUrl, _provider$models$, _provider$models;
123
124
 
124
125
  return _objectSpread(_objectSpread({}, prev), {}, {
125
126
  baseUrl: (_provider$baseUrl = provider.baseUrl) !== null && _provider$baseUrl !== void 0 ? _provider$baseUrl : '',
126
- model: isOpenrag ? provider.models[0] : '',
127
+ model: (_provider$models$ = (_provider$models = provider.models) === null || _provider$models === void 0 ? void 0 : _provider$models[0]) !== null && _provider$models$ !== void 0 ? _provider$models$ : '',
127
128
  apiKey: '',
128
129
  encryptedApiKey: '',
129
130
  providerId: provider.id
@@ -202,7 +203,7 @@ var useAssistantDialog = function useAssistantDialog(_ref) {
202
203
  }();
203
204
 
204
205
  var isNextDisabled = function isNextDisabled(isAllowToSkipApiKey) {
205
- var _formData$name, _formData$apiKey;
206
+ var _formData$name;
206
207
 
207
208
  switch (step) {
208
209
  case STEPS.BASIC_INFO:
@@ -212,7 +213,16 @@ var useAssistantDialog = function useAssistantDialog(_ref) {
212
213
  return !selectedProvider;
213
214
 
214
215
  case STEPS.API_KEY:
215
- return !((_formData$apiKey = formData.apiKey) !== null && _formData$apiKey !== void 0 && _formData$apiKey.trim()) && !isAllowToSkipApiKey;
216
+ {
217
+ var _formData$apiKey, _formData$model, _formData$baseUrl;
218
+
219
+ var isCustom = (selectedProvider === null || selectedProvider === void 0 ? void 0 : selectedProvider.id) === 'custom';
220
+ var apiKeyMissing = !((_formData$apiKey = formData.apiKey) !== null && _formData$apiKey !== void 0 && _formData$apiKey.trim()) && !isAllowToSkipApiKey;
221
+ var modelMissing = !((_formData$model = formData.model) !== null && _formData$model !== void 0 && _formData$model.trim());
222
+ var baseUrlMissing = isCustom && !((_formData$baseUrl = formData.baseUrl) !== null && _formData$baseUrl !== void 0 && _formData$baseUrl.trim());
223
+ var modelUnsupported = (0, _helpers.checkIfModelUnsupported)(selectedProvider, formData.model);
224
+ return apiKeyMissing || modelMissing || baseUrlMissing || modelUnsupported;
225
+ }
216
226
 
217
227
  default:
218
228
  return false;
@@ -85,7 +85,8 @@ var EditAssistantDialog = function EditAssistantDialog(_ref) {
85
85
  var client = (0, _cozyClient.useClient)();
86
86
 
87
87
  var _useAssistant = (0, _AssistantProvider.useAssistant)(),
88
- assistantIdInAction = _useAssistant.assistantIdInAction;
88
+ assistantIdInAction = _useAssistant.assistantIdInAction,
89
+ setSelectedAssistantId = _useAssistant.setSelectedAssistantId;
89
90
 
90
91
  var _useAlert = (0, _Alert.useAlert)(),
91
92
  showAlert = _useAlert.showAlert;
@@ -189,12 +190,13 @@ var EditAssistantDialog = function EditAssistantDialog(_ref) {
189
190
  });
190
191
 
191
192
  case 2:
193
+ setSelectedAssistantId(assistantIdInAction);
192
194
  showAlert({
193
195
  message: t('assistant_edit.success'),
194
196
  severity: 'success'
195
197
  });
196
198
 
197
- case 3:
199
+ case 4:
198
200
  case "end":
199
201
  return _context2.stop();
200
202
  }
@@ -114,19 +114,16 @@
114
114
  "description": "The AI assistant integrated into Twake, letting you work on your data without ever letting it leave your Workplace"
115
115
  },
116
116
  "google": {
117
- "description": "Google's most capable model for text and multimodal tasks"
117
+ "description": "Gemini models provided by Google"
118
118
  },
119
119
  "openai": {
120
- "description": "Most capable GPT model, great for complex reasoning and creative tasks"
120
+ "description": "GPT models provided by OpenAI"
121
121
  },
122
122
  "mistral_ai": {
123
- "description": "Efficient and powerful model with strong performance"
124
- },
125
- "anthropic": {
126
- "description": "Helpful, harmless, and honest AI assistant with strong reasoning"
123
+ "description": "Mistral models provided by Mistral AI"
127
124
  },
128
125
  "meta": {
129
- "description": "Open-source large language model for various applications"
126
+ "description": "Llama open models, provided by Meta"
130
127
  },
131
128
  "custom": {
132
129
  "name": "Add custom provider",
@@ -139,11 +136,8 @@
139
136
  "custom_provider_description": "Configure your custom AI provider settings",
140
137
  "model": {
141
138
  "label": "Model",
142
- "placeholder": "Enter the model name of the provider"
143
- },
144
- "provider": {
145
- "label": "Provider name",
146
- "placeholder": "Custom OpenAI"
139
+ "placeholder": "Enter the model name of the provider",
140
+ "unsupported": "This model is not supported yet."
147
141
  },
148
142
  "url": {
149
143
  "label": "Base URL",
@@ -114,19 +114,16 @@
114
114
  "description": "L'assistant IA intégré à Twake, pour travailler sur vos données sans jamais les faire sortir de votre Workplace"
115
115
  },
116
116
  "google": {
117
- "description": "Le modèle le plus performant de Google pour les tâches textuelles et multimodales"
117
+ "description": "Modèles Gemini fournis par Google"
118
118
  },
119
119
  "openai": {
120
- "description": "Le modèle GPT le plus performant, idéal pour le raisonnement complexe et les tâches créatives"
120
+ "description": "Modèles GPT fournis par OpenAI"
121
121
  },
122
122
  "mistral_ai": {
123
- "description": "Modèle efficace et puissant avec de très bonnes performances"
124
- },
125
- "anthropic": {
126
- "description": "Assistant IA utile, inoffensif et honnête avec de solides capacités de raisonnement"
123
+ "description": "Modèles Mistral fournis par Mistral AI"
127
124
  },
128
125
  "meta": {
129
- "description": "Grand modèle de langage open source pour diverses applications"
126
+ "description": "Modèles ouverts Llama, fournis par Meta"
130
127
  },
131
128
  "custom": {
132
129
  "name": "Ajouter un fournisseur personnalisé",
@@ -139,11 +136,8 @@
139
136
  "custom_provider_description": "Configurez les paramètres de votre fournisseur d'IA personnalisé",
140
137
  "model": {
141
138
  "label": "Modèle",
142
- "placeholder": "Entrez le nom du modèle du fournisseur"
143
- },
144
- "provider": {
145
- "label": "Nom du fournisseur",
146
- "placeholder": "OpenAI personnalisé"
139
+ "placeholder": "Entrez le nom du modèle du fournisseur",
140
+ "unsupported": "Ce modèle n'est pas encore pris en charge."
147
141
  },
148
142
  "url": {
149
143
  "label": "URL de base",
@@ -120,19 +120,16 @@ var en = {
120
120
  description: "The AI assistant integrated into Twake, letting you work on your data without ever letting it leave your Workplace"
121
121
  },
122
122
  google: {
123
- description: "Google's most capable model for text and multimodal tasks"
123
+ description: "Gemini models provided by Google"
124
124
  },
125
125
  openai: {
126
- description: "Most capable GPT model, great for complex reasoning and creative tasks"
126
+ description: "GPT models provided by OpenAI"
127
127
  },
128
128
  mistral_ai: {
129
- description: "Efficient and powerful model with strong performance"
130
- },
131
- anthropic: {
132
- description: "Helpful, harmless, and honest AI assistant with strong reasoning"
129
+ description: "Mistral models provided by Mistral AI"
133
130
  },
134
131
  meta: {
135
- description: "Open-source large language model for various applications"
132
+ description: "Llama open models, provided by Meta"
136
133
  },
137
134
  custom: {
138
135
  name: "Add custom provider",
@@ -145,11 +142,8 @@ var en = {
145
142
  custom_provider_description: "Configure your custom AI provider settings",
146
143
  model: {
147
144
  label: "Model",
148
- placeholder: "Enter the model name of the provider"
149
- },
150
- provider: {
151
- label: "Provider name",
152
- placeholder: "Custom OpenAI"
145
+ placeholder: "Enter the model name of the provider",
146
+ unsupported: "This model is not supported yet."
153
147
  },
154
148
  url: {
155
149
  label: "Base URL",
@@ -323,19 +317,16 @@ var fr = {
323
317
  description: "L'assistant IA int\xE9gr\xE9 \xE0 Twake, pour travailler sur vos donn\xE9es sans jamais les faire sortir de votre Workplace"
324
318
  },
325
319
  google: {
326
- description: "Le mod\xE8le le plus performant de Google pour les t\xE2ches textuelles et multimodales"
320
+ description: "Mod\xE8les Gemini fournis par Google"
327
321
  },
328
322
  openai: {
329
- description: "Le mod\xE8le GPT le plus performant, id\xE9al pour le raisonnement complexe et les t\xE2ches cr\xE9atives"
323
+ description: "Mod\xE8les GPT fournis par OpenAI"
330
324
  },
331
325
  mistral_ai: {
332
- description: "Mod\xE8le efficace et puissant avec de tr\xE8s bonnes performances"
333
- },
334
- anthropic: {
335
- description: "Assistant IA utile, inoffensif et honn\xEAte avec de solides capacit\xE9s de raisonnement"
326
+ description: "Mod\xE8les Mistral fournis par Mistral AI"
336
327
  },
337
328
  meta: {
338
- description: "Grand mod\xE8le de langage open source pour diverses applications"
329
+ description: "Mod\xE8les ouverts Llama, fournis par Meta"
339
330
  },
340
331
  custom: {
341
332
  name: "Ajouter un fournisseur personnalis\xE9",
@@ -348,11 +339,8 @@ var fr = {
348
339
  custom_provider_description: "Configurez les param\xE8tres de votre fournisseur d'IA personnalis\xE9",
349
340
  model: {
350
341
  label: "Mod\xE8le",
351
- placeholder: "Entrez le nom du mod\xE8le du fournisseur"
352
- },
353
- provider: {
354
- label: "Nom du fournisseur",
355
- placeholder: "OpenAI personnalis\xE9"
342
+ placeholder: "Entrez le nom du mod\xE8le du fournisseur",
343
+ unsupported: "Ce mod\xE8le n'est pas encore pris en charge."
356
344
  },
357
345
  url: {
358
346
  label: "URL de base",
@@ -522,19 +510,16 @@ var ru = {
522
510
  description: "\u0418\u0418-\u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442, \u0438\u043D\u0442\u0435\u0433\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0432 Twake, \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u0435\u0442 \u0432\u0430\u043C \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441\u043E \u0441\u0432\u043E\u0438\u043C\u0438 \u0434\u0430\u043D\u043D\u044B\u043C\u0438, \u0433\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0443\u044F, \u0447\u0442\u043E \u043E\u043D\u0438 \u043D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u043F\u043E\u043A\u0438\u043D\u0443\u0442 \u043F\u0440\u0435\u0434\u0435\u043B\u044B \u0432\u0430\u0448\u0435\u0433\u043E \u0440\u0430\u0431\u043E\u0447\u0435\u0433\u043E \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430"
523
511
  },
524
512
  google: {
525
- description: "\u0421\u0430\u043C\u0430\u044F \u043C\u043E\u0449\u043D\u0430\u044F \u043C\u043E\u0434\u0435\u043B\u044C Google \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0445 \u0438 \u043C\u0443\u043B\u044C\u0442\u0438\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447"
513
+ description: "\u041C\u043E\u0434\u0435\u043B\u0438 Gemini \u043E\u0442 Google"
526
514
  },
527
515
  openai: {
528
- description: "\u0421\u0430\u043C\u0430\u044F \u043C\u043E\u0449\u043D\u0430\u044F \u043C\u043E\u0434\u0435\u043B\u044C GPT, \u043E\u0442\u043B\u0438\u0447\u043D\u043E \u043F\u043E\u0434\u0445\u043E\u0434\u0438\u0442 \u0434\u043B\u044F \u0441\u043B\u043E\u0436\u043D\u044B\u0445 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0439 \u0438 \u0442\u0432\u043E\u0440\u0447\u0435\u0441\u043A\u0438\u0445 \u0437\u0430\u0434\u0430\u0447"
516
+ description: "\u041C\u043E\u0434\u0435\u043B\u0438 GPT \u043E\u0442 OpenAI"
529
517
  },
530
518
  mistral_ai: {
531
- description: "\u042D\u0444\u0444\u0435\u043A\u0442\u0438\u0432\u043D\u0430\u044F \u0438 \u043C\u043E\u0449\u043D\u0430\u044F \u043C\u043E\u0434\u0435\u043B\u044C \u0441 \u0432\u044B\u0441\u043E\u043A\u043E\u0439 \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C\u044E"
532
- },
533
- anthropic: {
534
- description: "\u041F\u043E\u043B\u0435\u0437\u043D\u044B\u0439, \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439 \u0438 \u0447\u0435\u0441\u0442\u043D\u044B\u0439 \u0418\u0418-\u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442 \u0441 \u0441\u0438\u043B\u044C\u043D\u044B\u043C \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u043C \u043C\u044B\u0448\u043B\u0435\u043D\u0438\u0435\u043C"
519
+ description: "\u041C\u043E\u0434\u0435\u043B\u0438 Mistral \u043E\u0442 Mistral AI"
535
520
  },
536
521
  meta: {
537
- description: "\u041E\u0442\u043A\u0440\u044B\u0442\u0430\u044F \u0431\u043E\u043B\u044C\u0448\u0430\u044F \u044F\u0437\u044B\u043A\u043E\u0432\u0430\u044F \u043C\u043E\u0434\u0435\u043B\u044C \u0434\u043B\u044F \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447"
522
+ description: "\u041E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u043C\u043E\u0434\u0435\u043B\u0438 Llama \u043E\u0442 Meta"
538
523
  },
539
524
  custom: {
540
525
  name: "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430",
@@ -547,11 +532,8 @@ var ru = {
547
532
  custom_provider_description: "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0418\u0418",
548
533
  model: {
549
534
  label: "\u041C\u043E\u0434\u0435\u043B\u044C",
550
- placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043C\u043E\u0434\u0435\u043B\u0438 \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430"
551
- },
552
- provider: {
553
- label: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430",
554
- placeholder: "\u041A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0439 OpenAI"
535
+ placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043C\u043E\u0434\u0435\u043B\u0438 \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430",
536
+ unsupported: "\u042D\u0442\u0430 \u043C\u043E\u0434\u0435\u043B\u044C \u043F\u043E\u043A\u0430 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F."
555
537
  },
556
538
  url: {
557
539
  label: "\u0411\u0430\u0437\u043E\u0432\u044B\u0439 URL",
@@ -721,19 +703,16 @@ var vi = {
721
703
  description: "Tr\u1EE3 l\xFD AI \u0111\u01B0\u1EE3c t\xEDch h\u1EE3p v\xE0o Twake, cho ph\xE9p b\u1EA1n x\u1EED l\xFD d\u1EEF li\u1EC7u c\u1EE7a m\xECnh m\xE0 kh\xF4ng bao gi\u1EDD ph\u1EA3i \u0111\u01B0a d\u1EEF li\u1EC7u ra kh\u1ECFi Kh\xF4ng gian l\xE0m vi\u1EC7c c\u1EE7a b\u1EA1n"
722
704
  },
723
705
  google: {
724
- description: "M\xF4 h\xECnh m\u1EA1nh nh\u1EA5t c\u1EE7a Google cho t\xE1c v\u1EE5 v\u0103n b\u1EA3n v\xE0 \u0111a ph\u01B0\u01A1ng th\u1EE9c"
706
+ description: "C\xE1c m\xF4 h\xECnh Gemini do Google cung c\u1EA5p"
725
707
  },
726
708
  openai: {
727
- description: "M\xF4 h\xECnh GPT m\u1EA1nh nh\u1EA5t, ph\xF9 h\u1EE3p cho suy lu\u1EADn ph\u1EE9c t\u1EA1p v\xE0 t\xE1c v\u1EE5 s\xE1ng t\u1EA1o"
709
+ description: "C\xE1c m\xF4 h\xECnh GPT do OpenAI cung c\u1EA5p"
728
710
  },
729
711
  mistral_ai: {
730
- description: "M\xF4 h\xECnh hi\u1EC7u qu\u1EA3 v\xE0 m\u1EA1nh m\u1EBD v\u1EDBi hi\u1EC7u n\u0103ng cao"
731
- },
732
- anthropic: {
733
- description: "Tr\u1EE3 l\xFD AI h\u1EEFu \xEDch, an to\xE0n v\xE0 trung th\u1EF1c v\u1EDBi kh\u1EA3 n\u0103ng suy lu\u1EADn m\u1EA1nh"
712
+ description: "C\xE1c m\xF4 h\xECnh Mistral do Mistral AI cung c\u1EA5p"
734
713
  },
735
714
  meta: {
736
- description: "M\xF4 h\xECnh ng\xF4n ng\u1EEF l\u1EDBn m\xE3 ngu\u1ED3n m\u1EDF cho nhi\u1EC1u \u1EE9ng d\u1EE5ng"
715
+ description: "C\xE1c m\xF4 h\xECnh m\u1EDF Llama do Meta cung c\u1EA5p"
737
716
  },
738
717
  custom: {
739
718
  name: "Th\xEAm nh\xE0 cung c\u1EA5p t\xF9y ch\u1EC9nh",
@@ -746,11 +725,8 @@ var vi = {
746
725
  custom_provider_description: "C\u1EA5u h\xECnh c\xE0i \u0111\u1EB7t nh\xE0 cung c\u1EA5p AI t\xF9y ch\u1EC9nh",
747
726
  model: {
748
727
  label: "M\xF4 h\xECnh",
749
- placeholder: "Nh\u1EADp t\xEAn m\xF4 h\xECnh c\u1EE7a nh\xE0 cung c\u1EA5p"
750
- },
751
- provider: {
752
- label: "T\xEAn nh\xE0 cung c\u1EA5p",
753
- placeholder: "Tu\u1EF3 ch\u1EC9nh OpenAI"
728
+ placeholder: "Nh\u1EADp t\xEAn m\xF4 h\xECnh c\u1EE7a nh\xE0 cung c\u1EA5p",
729
+ unsupported: "M\xF4 h\xECnh n\xE0y ch\u01B0a \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3."
754
730
  },
755
731
  url: {
756
732
  label: "URL",
@@ -110,19 +110,16 @@
110
110
  "description": "ИИ-ассистент, интегрированный в Twake, позволяет вам работать со своими данными, гарантируя, что они никогда не покинут пределы вашего рабочего пространства"
111
111
  },
112
112
  "google": {
113
- "description": "Самая мощная модель Google для текстовых и мультимодальных задач"
113
+ "description": "Модели Gemini от Google"
114
114
  },
115
115
  "openai": {
116
- "description": "Самая мощная модель GPT, отлично подходит для сложных рассуждений и творческих задач"
116
+ "description": "Модели GPT от OpenAI"
117
117
  },
118
118
  "mistral_ai": {
119
- "description": "Эффективная и мощная модель с высокой производительностью"
120
- },
121
- "anthropic": {
122
- "description": "Полезный, безопасный и честный ИИ-ассистент с сильным логическим мышлением"
119
+ "description": "Модели Mistral от Mistral AI"
123
120
  },
124
121
  "meta": {
125
- "description": "Открытая большая языковая модель для различных задач"
122
+ "description": "Открытые модели Llama от Meta"
126
123
  },
127
124
  "custom": {
128
125
  "name": "Добавить собственного провайдера",
@@ -135,11 +132,8 @@
135
132
  "custom_provider_description": "Настройте параметры вашего собственного провайдера ИИ",
136
133
  "model": {
137
134
  "label": "Модель",
138
- "placeholder": "Введите название модели провайдера"
139
- },
140
- "provider": {
141
- "label": "Название провайдера",
142
- "placeholder": "Кастомный OpenAI"
135
+ "placeholder": "Введите название модели провайдера",
136
+ "unsupported": "Эта модель пока не поддерживается."
143
137
  },
144
138
  "url": {
145
139
  "label": "Базовый URL",
@@ -110,19 +110,16 @@
110
110
  "description": "Trợ lý AI được tích hợp vào Twake, cho phép bạn xử lý dữ liệu của mình mà không bao giờ phải đưa dữ liệu ra khỏi Không gian làm việc của bạn"
111
111
  },
112
112
  "google": {
113
- "description": "Mô hình mạnh nhất của Google cho tác vụ văn bản và đa phương thức"
113
+ "description": "Các mô hình Gemini do Google cung cấp"
114
114
  },
115
115
  "openai": {
116
- "description": "Mô hình GPT mạnh nhất, phù hợp cho suy luận phức tạp và tác vụ sáng tạo"
116
+ "description": "Các mô hình GPT do OpenAI cung cấp"
117
117
  },
118
118
  "mistral_ai": {
119
- "description": "Mô hình hiệu quả và mạnh mẽ với hiệu năng cao"
120
- },
121
- "anthropic": {
122
- "description": "Trợ lý AI hữu ích, an toàn và trung thực với khả năng suy luận mạnh"
119
+ "description": "Các mô hình Mistral do Mistral AI cung cấp"
123
120
  },
124
121
  "meta": {
125
- "description": "Mô hình ngôn ngữ lớn mã nguồn mở cho nhiều ứng dụng"
122
+ "description": "Các mô hình mở Llama do Meta cung cấp"
126
123
  },
127
124
  "custom": {
128
125
  "name": "Thêm nhà cung cấp tùy chỉnh",
@@ -135,11 +132,8 @@
135
132
  "custom_provider_description": "Cấu hình cài đặt nhà cung cấp AI tùy chỉnh",
136
133
  "model": {
137
134
  "label": "Mô hình",
138
- "placeholder": "Nhập tên mô hình của nhà cung cấp"
139
- },
140
- "provider": {
141
- "label": "Tên nhà cung cấp",
142
- "placeholder": "Tuỳ chỉnh OpenAI"
135
+ "placeholder": "Nhập tên mô hình của nhà cung cấp",
136
+ "unsupported": "Mô hình này chưa được hỗ trợ."
143
137
  },
144
138
  "url": {
145
139
  "label": "URL",
@@ -44,7 +44,13 @@
44
44
  border-top: 1px solid var(--dividerColor);
45
45
  }
46
46
  .styles__menu-item___1jvWN:hover .styles__menu-item-icon-button___2q_ct {
47
- display: block !important;
47
+ display: inline-flex !important;
48
+ }
49
+ .styles__menu-item-actions___1ykUi {
50
+ display: flex;
51
+ align-items: center;
52
+ min-width: 64px;
53
+ justify-content: flex-end;
48
54
  }
49
55
  .styles__menu-item-icon-button___2q_ct {
50
56
  display: none !important;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cozy-search",
3
3
  "description": "UI components about search bar and IA assistant",
4
- "version": "0.28.0",
4
+ "version": "0.29.0",
5
5
  "author": {
6
6
  "name": "Cozy Cloud",
7
7
  "url": "https://github.com/cozy"
@@ -26,7 +26,7 @@
26
26
  "babel-plugin-module-resolver": "^4.0.0",
27
27
  "babel-plugin-tsconfig-paths": "^1.0.3",
28
28
  "babel-preset-cozy-app": "^2.8.4",
29
- "cozy-client": "60.23.0",
29
+ "cozy-client": "60.26.0",
30
30
  "cozy-device-helper": "^4.0.3",
31
31
  "cozy-flags": "^4.9.1",
32
32
  "cozy-intent": "^2.31.1",
@@ -60,7 +60,7 @@
60
60
  "./dist/stylesheet.css": "./dist/stylesheet.css"
61
61
  },
62
62
  "peerDependencies": {
63
- "cozy-client": ">=60.21.0",
63
+ "cozy-client": ">=60.26.0",
64
64
  "cozy-device-helper": ">=3.7.1",
65
65
  "cozy-flags": ">=4.6.1",
66
66
  "cozy-intent": ">=2.26.0",
@@ -92,5 +92,5 @@
92
92
  "lint": "cd .. && yarn eslint --ext js,jsx,ts packages/cozy-search"
93
93
  },
94
94
  "types": "dist/index.d.ts",
95
- "gitHead": "c886e4b9e1cae92afa470829cf7f56695903f4b5"
95
+ "gitHead": "8a7bc36fc1aa0b267ed6b9a36585510997ee7da8"
96
96
  }
@@ -1,7 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="Anthropic-Icon--Streamline-Svg-Logos" height="24" width="24">
2
- <desc>
3
- Anthropic Icon Streamline Icon: https://streamlinehq.com
4
- </desc>
5
- <path fill="#181818" d="m13.788825 3.932 6.43325 16.136075h3.5279L17.316725 3.932H13.788825Z" stroke-width="0.25"></path>
6
- <path fill="#181818" d="m6.325375 13.682775 2.20125 -5.67065 2.201275 5.67065H6.325375ZM6.68225 3.932 0.25 20.068075h3.596525l1.3155 -3.3886h6.729425l1.315275 3.3886h3.59655L10.371 3.932H6.68225Z" stroke-width="0.25"></path>
7
- </svg>