@epam/ai-dial-chat-hooks 1.1.0-dev.256 → 1.1.0-dev.262

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.
package/index.d.ts CHANGED
@@ -22,5 +22,6 @@ export * from './usePageFileDrag/usePageFileDrag';
22
22
  export * from './usePanelMaxWidth/usePanelMaxWidth';
23
23
  export * from './useShareLink/useShareLink';
24
24
  export * from './useShareRecipientsCount/useShareRecipientsCount';
25
+ export * from './useToolsMenu/useToolsMenu';
25
26
  export * from './useViewportWidth/useViewportWidth';
26
27
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sDAAsD,CAAC;AACrE,cAAc,8DAA8D,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAC3F,OAAO,EACL,YAAY,EACZ,aAAa,GACd,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wDAAwD,CAAC;AACvE,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,0DAA0D,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,uDAAuD,CAAC;AAC/D,cAAc,gEAAgE,CAAC;AAC/E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,wDAAwD,CAAC;AACpG,cAAc,4DAA4D,CAAC;AAC3E,cAAc,sEAAsE,CAAC;AACrF,cAAc,uDAAuD,CAAC;AACtE,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mDAAmD,CAAC;AAClE,cAAc,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sDAAsD,CAAC;AACrE,cAAc,8DAA8D,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAC3F,OAAO,EACL,YAAY,EACZ,aAAa,GACd,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wDAAwD,CAAC;AACvE,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,0DAA0D,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,uDAAuD,CAAC;AAC/D,cAAc,gEAAgE,CAAC;AAC/E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,wDAAwD,CAAC;AACpG,cAAc,4DAA4D,CAAC;AAC3E,cAAc,sEAAsE,CAAC;AACrF,cAAc,uDAAuD,CAAC;AACtE,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mDAAmD,CAAC;AAClE,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC"}
package/index.js CHANGED
@@ -1612,6 +1612,46 @@ var k = (e) => e.startsWith("files/"), A = (e) => e.url != null && k(e.url) || e
1612
1612
  r.current.delete(e), n(({ [e]: t, ...n }) => n);
1613
1613
  }, [])
1614
1614
  };
1615
+ }, jt = { deepResearchFallback: "Deep research" }, Mt = (e) => {
1616
+ let { deepResearchToolId: t, selectedItemId: n, selectedDeploymentConfiguration: r } = e, i = _(() => ({
1617
+ ...jt,
1618
+ ...e.labels
1619
+ }), [e.labels]), a = e.toolIcon, o = _(() => {
1620
+ if (t == null || r == null) return null;
1621
+ let e = r.properties?.[t];
1622
+ return e == null || !(e.type === "boolean" || e.type == null && typeof e.default == "boolean") ? null : e;
1623
+ }, [t, r]), s = _(() => typeof o?.default == "boolean" ? o.default : !1, [o]), [c, l] = y(s);
1624
+ h(() => {
1625
+ l(s);
1626
+ }, [n, s]);
1627
+ let u = m((e) => {
1628
+ e === t && l((e) => !e);
1629
+ }, [t]), d = m((e) => {
1630
+ if (t == null) return;
1631
+ let n = e?.[t];
1632
+ typeof n == "boolean" && l(n);
1633
+ }, [t]);
1634
+ return {
1635
+ toolsMenuItems: _(() => o == null || t == null ? [] : [{
1636
+ id: t,
1637
+ label: typeof o.title == "string" && o.title || i.deepResearchFallback,
1638
+ icon: a ?? null,
1639
+ isSelected: c
1640
+ }], [
1641
+ o,
1642
+ t,
1643
+ c,
1644
+ i,
1645
+ a
1646
+ ]),
1647
+ onToolToggle: u,
1648
+ toolConfigurationValue: _(() => t == null || o == null ? {} : { [t]: c }, [
1649
+ t,
1650
+ o,
1651
+ c
1652
+ ]),
1653
+ restoreToolConfiguration: d
1654
+ };
1615
1655
  };
1616
1656
  //#endregion
1617
- export { re as AttachmentValidationErrorReason, oe as ConversationExportMode, V as ConversationTransferErrorCode, z as ConversationTransferJobStatus, B as ConversationTransferSubjectKind, H as ConversationTransferWarningCode, U as EXPORT_APP_NAME, R as ExportFileNameKind, Ot as RecipientsCountStatus, Re as attachmentToDto, J as attachmentsToDtos, Y as createMessagePair, j as downloadAttachment, L as formatDateYM, ae as formatDateYMD, xe as formatQuotedNameList, Q as getConversationPath, Ve as getStarterConversationText, He as getStarterSubmitText, X as hasActiveToolConfig, $ as isAwaitingGenerationResume, k as isDialFileId, A as isDownloadableAttachment, ze as isMessageChanged, P as useAttachmentAction, Oe as useAttachmentUpload, ie as useAttachmentValidation, bt as useChatSettingsFormConfig, Le as useConversationExport, Ue as useConversationHandlers, ot as useConversationImport, lt as useConversationScroll, _t as useConversationSources, ht as useConversationStream, xt as usePageFileDrag, wt as usePanelMaxWidth, Dt as useShareLink, At as useShareRecipientsCount, Ct as useViewportWidth };
1657
+ export { re as AttachmentValidationErrorReason, oe as ConversationExportMode, V as ConversationTransferErrorCode, z as ConversationTransferJobStatus, B as ConversationTransferSubjectKind, H as ConversationTransferWarningCode, U as EXPORT_APP_NAME, R as ExportFileNameKind, Ot as RecipientsCountStatus, Re as attachmentToDto, J as attachmentsToDtos, Y as createMessagePair, j as downloadAttachment, L as formatDateYM, ae as formatDateYMD, xe as formatQuotedNameList, Q as getConversationPath, Ve as getStarterConversationText, He as getStarterSubmitText, X as hasActiveToolConfig, $ as isAwaitingGenerationResume, k as isDialFileId, A as isDownloadableAttachment, ze as isMessageChanged, P as useAttachmentAction, Oe as useAttachmentUpload, ie as useAttachmentValidation, bt as useChatSettingsFormConfig, Le as useConversationExport, Ue as useConversationHandlers, ot as useConversationImport, lt as useConversationScroll, _t as useConversationSources, ht as useConversationStream, xt as usePageFileDrag, wt as usePanelMaxWidth, Dt as useShareLink, At as useShareRecipientsCount, Mt as useToolsMenu, Ct as useViewportWidth };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-chat-hooks",
3
3
  "description": "Framework-level React hooks extracted from AI DIAL Chat for building custom chat interfaces",
4
- "version": "1.1.0-dev.256",
4
+ "version": "1.1.0-dev.262",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -17,14 +17,14 @@
17
17
  },
18
18
  "peerDependencies": {
19
19
  "react": "^19.2.6",
20
- "@epam/ai-dial-attachment-canvas": "1.1.0-dev.256",
21
- "@epam/ai-dial-attachment-input": "1.1.0-dev.256",
22
- "@epam/ai-dial-chat-api-client": "1.1.0-dev.256",
23
- "@epam/ai-dial-chat-shared": "1.1.0-dev.256",
24
- "@epam/ai-dial-quotations": "1.1.0-dev.256",
20
+ "@epam/ai-dial-attachment-canvas": "1.1.0-dev.262",
21
+ "@epam/ai-dial-attachment-input": "1.1.0-dev.262",
22
+ "@epam/ai-dial-chat-api-client": "1.1.0-dev.262",
23
+ "@epam/ai-dial-chat-shared": "1.1.0-dev.262",
24
+ "@epam/ai-dial-quotations": "1.1.0-dev.262",
25
25
  "@epam/ai-dial-react-file-manager": "*",
26
- "@epam/ai-dial-share": "1.1.0-dev.256",
27
- "@epam/ai-dial-source-panel": "1.1.0-dev.256",
26
+ "@epam/ai-dial-share": "1.1.0-dev.262",
27
+ "@epam/ai-dial-source-panel": "1.1.0-dev.262",
28
28
  "fflate": "^0.8.3"
29
29
  },
30
30
  "repository": {
@@ -0,0 +1,40 @@
1
+ import { DeploymentConfigurationSchema, ToolMenuItem } from '@epam/ai-dial-chat-shared';
2
+ import { ReactNode } from 'react';
3
+ /** Translatable strings the tools menu surfaces. */
4
+ export interface ToolsMenuLabels {
5
+ /** Fallback label for the deep-research tool when the schema defines no `title`. */
6
+ deepResearchFallback: string;
7
+ }
8
+ /** Host-supplied inputs to {@link useToolsMenu}. */
9
+ export interface UseToolsMenuParams {
10
+ /** Operator-configured deep-research tool id, or `null` when none is configured. */
11
+ deepResearchToolId: string | null;
12
+ /** Id of the currently selected deployment, or `null` when none is selected. */
13
+ selectedItemId: string | null;
14
+ /** JSON-schema configuration for the selected deployment, or `null` when none. */
15
+ selectedDeploymentConfiguration: DeploymentConfigurationSchema | null;
16
+ /** Translated labels. Fields not provided fall back to English defaults. */
17
+ labels?: Partial<ToolsMenuLabels>;
18
+ /** Icon element rendered on the tool menu item. Defaults to `null`. */
19
+ toolIcon?: ReactNode;
20
+ }
21
+ /** Result returned by {@link useToolsMenu}. */
22
+ export type UseToolsMenuResult = {
23
+ /** Derived submenu items (empty until a boolean tool property is found). */
24
+ toolsMenuItems: ToolMenuItem[];
25
+ /** Toggles the tool with the given id; ignores unknown ids. */
26
+ onToolToggle: (id: string) => void;
27
+ /** Stable record of tool ids to their current on/off state, for completion requests. */
28
+ toolConfigurationValue: Record<string, boolean>;
29
+ /** Restores toggle state from a persisted tool configuration record. */
30
+ restoreToolConfiguration: (configurationValue: Record<string, unknown> | undefined) => void;
31
+ };
32
+ /**
33
+ * Derives the tools submenu from the active deployment's configuration schema
34
+ * and the operator-configured tool id. Manages toggle state locally, resets on
35
+ * deployment change, and exposes a stable `toolConfigurationValue` record for
36
+ * inclusion in completion requests. Headless: translation and the tool icon are
37
+ * the host's responsibility, supplied via `labels` and `toolIcon`.
38
+ */
39
+ export declare const useToolsMenu: (params: UseToolsMenuParams) => UseToolsMenuResult;
40
+ //# sourceMappingURL=useToolsMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToolsMenu.d.ts","sourceRoot":"","sources":["../../src/useToolsMenu/useToolsMenu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,YAAY,EACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAEf,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gFAAgF;IAChF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kFAAkF;IAClF,+BAA+B,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACtE,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4EAA4E;IAC5E,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,+DAA+D;IAC/D,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wFAAwF;IACxF,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,wEAAwE;IACxE,wBAAwB,EAAE,CACxB,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACpD,IAAI,CAAC;CACX,CAAC;AAMF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,QAAQ,kBAAkB,KACzB,kBA0FF,CAAC"}