@orbe-agro/client-core 5.6.238 → 5.6.240
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/dist/@ecme/assets/styles/app.css +116 -3
- package/dist/@ecme/assets/styles/tailwind/index.css +119 -3
- package/dist/@ecme/components/template/Footer.js +1 -1
- package/dist/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.js +0 -2
- package/dist/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.js.map +1 -1
- package/dist/@ecme/components/view/ChatBox/ChatBox.js +2 -0
- package/dist/@ecme/components/view/ChatBox/ChatBox.js.map +1 -1
- package/dist/@ecme/components/view/ChatBox/components/MessageList.js +2 -1
- package/dist/@ecme/components/view/ChatBox/components/MessageList.js.map +1 -1
- package/dist/@ecme/index.js +3 -4
- package/dist/@ecme/services/AiService.js +53 -24
- package/dist/@ecme/services/AiService.js.map +1 -1
- package/dist/@ecme/services/aiAuthHeaders.js +35 -0
- package/dist/@ecme/services/aiAuthHeaders.js.map +1 -0
- package/dist/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.js +4 -27
- package/dist/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.js.map +1 -1
- package/dist/@ecme/services/index.js +4 -5
- package/dist/@ecme/services/sseParser.js +42 -0
- package/dist/@ecme/services/sseParser.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.js +15 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/ApprovalCard.js +73 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/ApprovalCard.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatView.js +37 -10
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatView.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ToolCallChip.js +153 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/ToolCallChip.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/toolPresentation.js +99 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/toolPresentation.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/hooks/useChatSend.js +111 -17
- package/dist/@ecme/views/concepts/ai/Chat/hooks/useChatSend.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/store/generativeChatStore.js +29 -13
- package/dist/@ecme/views/concepts/ai/Chat/store/generativeChatStore.js.map +1 -1
- package/dist/@types/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.d.ts.map +1 -1
- package/dist/@types/@ecme/components/view/ChatBox/ChatBox.d.ts.map +1 -1
- package/dist/@types/@ecme/components/view/ChatBox/components/MessageList.d.ts +2 -0
- package/dist/@types/@ecme/components/view/ChatBox/components/MessageList.d.ts.map +1 -1
- package/dist/@types/@ecme/services/AiService.d.ts +28 -15
- package/dist/@types/@ecme/services/AiService.d.ts.map +1 -1
- package/dist/@types/@ecme/services/aiAuthHeaders.d.ts +12 -0
- package/dist/@types/@ecme/services/aiAuthHeaders.d.ts.map +1 -0
- package/dist/@types/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.d.ts +6 -0
- package/dist/@types/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.d.ts.map +1 -1
- package/dist/@types/@ecme/services/sseParser.d.ts +20 -0
- package/dist/@types/@ecme/services/sseParser.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.d.ts +8 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ApprovalCard.d.ts +15 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ApprovalCard.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatView.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ToolCallChip.d.ts +7 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ToolCallChip.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/toolPresentation.d.ts +14 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/toolPresentation.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/hooks/useChatSend.d.ts +2 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/hooks/useChatSend.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/store/generativeChatStore.d.ts +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/store/generativeChatStore.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/types.d.ts +96 -23
- package/dist/@types/@ecme/views/concepts/ai/Chat/types.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.d.ts +1 -1
- package/dist/@types/base/services/modules/HubFiscal/NfeService.d.ts +1 -1
- package/dist/@types/base/services/modules/HubFiscal/NfeService.d.ts.map +1 -1
- package/dist/base/assets/styles/init.css +128 -3
- package/dist/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.js +1 -1
- package/dist/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.js.map +1 -1
- package/dist/base/services/modules/HubFiscal/NfeService.js +3 -3
- package/dist/base/services/modules/HubFiscal/NfeService.js.map +1 -1
- package/lib/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.tsx +0 -2
- package/lib/@ecme/components/view/ChatBox/ChatBox.tsx +2 -0
- package/lib/@ecme/components/view/ChatBox/components/MessageList.tsx +8 -4
- package/lib/@ecme/services/AiService.ts +89 -44
- package/lib/@ecme/services/aiAuthHeaders.ts +58 -0
- package/lib/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.ts +10 -39
- package/lib/@ecme/services/sseParser.ts +75 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.tsx +28 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/ApprovalCard.tsx +103 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/ChatView.tsx +74 -10
- package/lib/@ecme/views/concepts/ai/Chat/components/ToolCallChip.tsx +218 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/toolPresentation.ts +137 -0
- package/lib/@ecme/views/concepts/ai/Chat/hooks/useChatSend.ts +175 -23
- package/lib/@ecme/views/concepts/ai/Chat/store/generativeChatStore.ts +41 -13
- package/lib/@ecme/views/concepts/ai/Chat/types.ts +82 -29
- package/lib/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.ts +1 -1
- package/lib/base/services/modules/HubFiscal/NfeService.ts +2 -2
- package/package.json +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ModelSelect.js +0 -48
- package/dist/@ecme/views/concepts/ai/Chat/components/ModelSelect.js.map +0 -1
- package/dist/@ecme/views/concepts/ai/Chat/store/aiModelStore.js +0 -15
- package/dist/@ecme/views/concepts/ai/Chat/store/aiModelStore.js.map +0 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ModelSelect.d.ts +0 -8
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ModelSelect.d.ts.map +0 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/store/aiModelStore.d.ts +0 -25
- package/dist/@types/@ecme/views/concepts/ai/Chat/store/aiModelStore.d.ts.map +0 -1
- package/lib/@ecme/views/concepts/ai/Chat/components/ModelSelect.tsx +0 -66
- package/lib/@ecme/views/concepts/ai/Chat/store/aiModelStore.ts +0 -23
|
@@ -33,19 +33,35 @@ const usGenerativeChatStore = create((set, get) => ({
|
|
|
33
33
|
}
|
|
34
34
|
return { selectedConversationRecord: record };
|
|
35
35
|
}),
|
|
36
|
-
pushChatHistory: (payload) => set(() => ({ chatHistory: [
|
|
37
|
-
pushConversation: (id, conversation) => set(() => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
36
|
+
pushChatHistory: (payload) => set(() => ({ chatHistory: [payload, ...get().chatHistory] })),
|
|
37
|
+
pushConversation: (id, conversation) => set(() => ({
|
|
38
|
+
chatHistory: get().chatHistory.map(
|
|
39
|
+
(chat) => chat.id === id ? {
|
|
40
|
+
...chat,
|
|
41
|
+
conversation: [
|
|
42
|
+
...chat.conversation ?? [],
|
|
43
|
+
conversation
|
|
44
|
+
]
|
|
45
|
+
} : chat
|
|
46
|
+
)
|
|
47
|
+
})),
|
|
48
|
+
/**
|
|
49
|
+
* Atualiza UMA mensagem de uma conversa.
|
|
50
|
+
*
|
|
51
|
+
* Imutavel de proposito: o streaming chama isto a cada token, e mutar o
|
|
52
|
+
* objeto no lugar faria o React perder atualizacoes — a re-renderizacao
|
|
53
|
+
* dependeria da identidade do array externo mudar por acaso.
|
|
54
|
+
*/
|
|
55
|
+
updateConversation: (chatId, messageId, patch) => set(() => ({
|
|
56
|
+
chatHistory: get().chatHistory.map(
|
|
57
|
+
(chat) => chat.id === chatId ? {
|
|
58
|
+
...chat,
|
|
59
|
+
conversation: chat.conversation?.map(
|
|
60
|
+
(mensagem) => mensagem.id === messageId ? { ...mensagem, ...patch } : mensagem
|
|
61
|
+
)
|
|
62
|
+
} : chat
|
|
63
|
+
)
|
|
64
|
+
})),
|
|
49
65
|
setIsTyping: (payload) => set(() => ({ isTyping: payload })),
|
|
50
66
|
disabledChatFresh: () => set(() => {
|
|
51
67
|
const chatHistory = get().chatHistory.map((chat) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generativeChatStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/ai/Chat/store/generativeChatStore.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type { ChatHistories, ChatHistory, Conversation } from '../types'\n\ntype RenameDialog = {\n id: string\n title: string\n open: boolean\n}\n\nexport type GenerativeChatState = {\n selectedConversation: string\n selectedConversationRecord: string[]\n chatHistory: ChatHistories\n renameDialog: RenameDialog\n isTyping: boolean\n}\n\ntype GenerativeChatAction = {\n setSelectedConversation: (payload: string) => void\n setSelectedConversationRecord: (payload: string) => void\n setChatHistory: (payload: ChatHistories) => void\n setChatHistoryName: (payload: { id: string; title: string }) => void\n setRenameDialog: (payload: RenameDialog) => void\n setIsTyping: (payload: boolean) => void\n pushChatHistory: (payload: ChatHistory) => void\n pushConversation: (id: string, conversation: Conversation) => void\n disabledChatFresh: (id: string) => void\n}\n\nconst initialState: GenerativeChatState = {\n selectedConversation: '',\n selectedConversationRecord: [],\n chatHistory: [],\n renameDialog: {\n id: '',\n title: '',\n open: false,\n },\n isTyping: false,\n}\n\nexport const usGenerativeChatStore = create<\n GenerativeChatState & GenerativeChatAction\n>((set, get) => ({\n ...initialState,\n setSelectedConversation: (payload) =>\n set(() => ({ selectedConversation: payload })),\n setChatHistory: (payload) => set(() => ({ chatHistory: payload })),\n setChatHistoryName: (payload) =>\n set(() => {\n const chatHistory = get().chatHistory.map((chat) => {\n if (chat.id === payload.id) {\n chat.title = payload.title\n }\n return chat\n })\n return { chatHistory }\n }),\n setRenameDialog: (payload) => set(() => ({ renameDialog: payload })),\n setSelectedConversationRecord: (payload) =>\n set(() => {\n let record = get().selectedConversationRecord\n\n if (record.includes(payload)) {\n record = record.filter((item) => item !== payload)\n } else {\n record.push(payload)\n }\n\n return { selectedConversationRecord: record }\n }),\n pushChatHistory: (payload) =>\n set(() => ({ chatHistory: [
|
|
1
|
+
{"version":3,"file":"generativeChatStore.js","sources":["../../../../../../../lib/@ecme/views/concepts/ai/Chat/store/generativeChatStore.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type { ChatHistories, ChatHistory, Conversation } from '../types'\n\ntype RenameDialog = {\n id: string\n title: string\n open: boolean\n}\n\nexport type GenerativeChatState = {\n selectedConversation: string\n selectedConversationRecord: string[]\n chatHistory: ChatHistories\n renameDialog: RenameDialog\n isTyping: boolean\n}\n\ntype GenerativeChatAction = {\n setSelectedConversation: (payload: string) => void\n setSelectedConversationRecord: (payload: string) => void\n setChatHistory: (payload: ChatHistories) => void\n setChatHistoryName: (payload: { id: string; title: string }) => void\n setRenameDialog: (payload: RenameDialog) => void\n setIsTyping: (payload: boolean) => void\n pushChatHistory: (payload: ChatHistory) => void\n pushConversation: (id: string, conversation: Conversation) => void\n updateConversation: (\n chatId: string,\n messageId: string,\n patch: Partial<Conversation>,\n ) => void\n disabledChatFresh: (id: string) => void\n}\n\nconst initialState: GenerativeChatState = {\n selectedConversation: '',\n selectedConversationRecord: [],\n chatHistory: [],\n renameDialog: {\n id: '',\n title: '',\n open: false,\n },\n isTyping: false,\n}\n\nexport const usGenerativeChatStore = create<\n GenerativeChatState & GenerativeChatAction\n>((set, get) => ({\n ...initialState,\n setSelectedConversation: (payload) =>\n set(() => ({ selectedConversation: payload })),\n setChatHistory: (payload) => set(() => ({ chatHistory: payload })),\n setChatHistoryName: (payload) =>\n set(() => {\n const chatHistory = get().chatHistory.map((chat) => {\n if (chat.id === payload.id) {\n chat.title = payload.title\n }\n return chat\n })\n return { chatHistory }\n }),\n setRenameDialog: (payload) => set(() => ({ renameDialog: payload })),\n setSelectedConversationRecord: (payload) =>\n set(() => {\n let record = get().selectedConversationRecord\n\n if (record.includes(payload)) {\n record = record.filter((item) => item !== payload)\n } else {\n record.push(payload)\n }\n\n return { selectedConversationRecord: record }\n }),\n pushChatHistory: (payload) =>\n set(() => ({ chatHistory: [payload, ...get().chatHistory] })),\n pushConversation: (id, conversation) =>\n set(() => ({\n chatHistory: get().chatHistory.map((chat) =>\n chat.id === id\n ? {\n ...chat,\n conversation: [\n ...(chat.conversation ?? []),\n conversation,\n ],\n }\n : chat,\n ),\n })),\n /**\n * Atualiza UMA mensagem de uma conversa.\n *\n * Imutavel de proposito: o streaming chama isto a cada token, e mutar o\n * objeto no lugar faria o React perder atualizacoes — a re-renderizacao\n * dependeria da identidade do array externo mudar por acaso.\n */\n updateConversation: (chatId, messageId, patch) =>\n set(() => ({\n chatHistory: get().chatHistory.map((chat) =>\n chat.id === chatId\n ? {\n ...chat,\n conversation: chat.conversation?.map((mensagem) =>\n mensagem.id === messageId\n ? { ...mensagem, ...patch }\n : mensagem,\n ),\n }\n : chat,\n ),\n })),\n setIsTyping: (payload) => set(() => ({ isTyping: payload })),\n disabledChatFresh: () =>\n set(() => {\n const chatHistory = get().chatHistory.map((chat) => {\n if (chat.id === get().selectedConversation) {\n chat.conversation = chat.conversation?.map(\n (conversation) => {\n if (conversation.fresh) {\n conversation.fresh = false\n }\n return conversation\n },\n )\n }\n return chat\n })\n return { chatHistory }\n }),\n}))\n"],"names":[],"mappings":";AAkCA,MAAM,eAAoC;AAAA,EACtC,sBAAsB;AAAA,EACtB,4BAA4B,CAAA;AAAA,EAC5B,aAAa,CAAA;AAAA,EACb,cAAc;AAAA,IACV,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,EAAA;AAAA,EAEV,UAAU;AACd;AAEO,MAAM,wBAAwB,OAEnC,CAAC,KAAK,SAAS;AAAA,EACb,GAAG;AAAA,EACH,yBAAyB,CAAC,YACtB,IAAI,OAAO,EAAE,sBAAsB,UAAU;AAAA,EACjD,gBAAgB,CAAC,YAAY,IAAI,OAAO,EAAE,aAAa,UAAU;AAAA,EACjE,oBAAoB,CAAC,YACjB,IAAI,MAAM;AACN,UAAM,cAAc,IAAA,EAAM,YAAY,IAAI,CAAC,SAAS;AAChD,UAAI,KAAK,OAAO,QAAQ,IAAI;AACxB,aAAK,QAAQ,QAAQ;AAAA,MACzB;AACA,aAAO;AAAA,IACX,CAAC;AACD,WAAO,EAAE,YAAA;AAAA,EACb,CAAC;AAAA,EACL,iBAAiB,CAAC,YAAY,IAAI,OAAO,EAAE,cAAc,UAAU;AAAA,EACnE,+BAA+B,CAAC,YAC5B,IAAI,MAAM;AACN,QAAI,SAAS,MAAM;AAEnB,QAAI,OAAO,SAAS,OAAO,GAAG;AAC1B,eAAS,OAAO,OAAO,CAAC,SAAS,SAAS,OAAO;AAAA,IACrD,OAAO;AACH,aAAO,KAAK,OAAO;AAAA,IACvB;AAEA,WAAO,EAAE,4BAA4B,OAAA;AAAA,EACzC,CAAC;AAAA,EACL,iBAAiB,CAAC,YACd,IAAI,OAAO,EAAE,aAAa,CAAC,SAAS,GAAG,IAAA,EAAM,WAAW,IAAI;AAAA,EAChE,kBAAkB,CAAC,IAAI,iBACnB,IAAI,OAAO;AAAA,IACP,aAAa,MAAM,YAAY;AAAA,MAAI,CAAC,SAChC,KAAK,OAAO,KACN;AAAA,QACI,GAAG;AAAA,QACH,cAAc;AAAA,UACV,GAAI,KAAK,gBAAgB,CAAA;AAAA,UACzB;AAAA,QAAA;AAAA,MACJ,IAEJ;AAAA,IAAA;AAAA,EACV,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQN,oBAAoB,CAAC,QAAQ,WAAW,UACpC,IAAI,OAAO;AAAA,IACP,aAAa,MAAM,YAAY;AAAA,MAAI,CAAC,SAChC,KAAK,OAAO,SACN;AAAA,QACI,GAAG;AAAA,QACH,cAAc,KAAK,cAAc;AAAA,UAAI,CAAC,aAClC,SAAS,OAAO,YACV,EAAE,GAAG,UAAU,GAAG,UAClB;AAAA,QAAA;AAAA,MACV,IAEJ;AAAA,IAAA;AAAA,EACV,EACF;AAAA,EACN,aAAa,CAAC,YAAY,IAAI,OAAO,EAAE,UAAU,UAAU;AAAA,EAC3D,mBAAmB,MACf,IAAI,MAAM;AACN,UAAM,cAAc,IAAA,EAAM,YAAY,IAAI,CAAC,SAAS;AAChD,UAAI,KAAK,OAAO,IAAA,EAAM,sBAAsB;AACxC,aAAK,eAAe,KAAK,cAAc;AAAA,UACnC,CAAC,iBAAiB;AACd,gBAAI,aAAa,OAAO;AACpB,2BAAa,QAAQ;AAAA,YACzB;AACA,mBAAO;AAAA,UACX;AAAA,QAAA;AAAA,MAER;AACA,aAAO;AAAA,IACX,CAAC;AACD,WAAO,EAAE,YAAA;AAAA,EACb,CAAC;AACT,EAAE;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrbeAiWidget.d.ts","sourceRoot":"","sources":["../../../../../../lib/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OrbeAiWidget.d.ts","sourceRoot":"","sources":["../../../../../../lib/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.tsx"],"names":[],"mappings":"AAgBA,QAAA,MAAM,YAAY,+CAwGjB,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatBox.d.ts","sourceRoot":"","sources":["../../../../../../lib/@ecme/components/view/ChatBox/ChatBox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAElD,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACrC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;CAC1B,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAC9B,cAAc,CAAA;AAElB,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"ChatBox.d.ts","sourceRoot":"","sources":["../../../../../../lib/@ecme/components/view/ChatBox/ChatBox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAElD,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACrC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;CAC1B,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAC9B,cAAc,CAAA;AAElB,QAAA,MAAM,OAAO,wIAoDX,CAAA;AAIF,eAAe,OAAO,CAAA"}
|
|
@@ -2,6 +2,7 @@ import type { ReactNode } from 'react';
|
|
|
2
2
|
import type { MessageProps } from './Message';
|
|
3
3
|
type List = MessageProps & {
|
|
4
4
|
fresh?: boolean;
|
|
5
|
+
isError?: boolean;
|
|
5
6
|
};
|
|
6
7
|
export type MessageListProps = {
|
|
7
8
|
list: List[];
|
|
@@ -17,6 +18,7 @@ export type MessageListProps = {
|
|
|
17
18
|
bubbleClass?: string;
|
|
18
19
|
myBubbleClass?: string;
|
|
19
20
|
botBubbleClass?: string;
|
|
21
|
+
errorBubbleClass?: string;
|
|
20
22
|
renderTyping?: () => ReactNode;
|
|
21
23
|
messageListClass?: string;
|
|
22
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../../../../lib/@ecme/components/view/ChatBox/components/MessageList.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,KAAK,IAAI,GAAG,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../../../../lib/@ecme/components/view/ChatBox/components/MessageList.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,KAAK,IAAI,GAAG,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,IAAI,EAAE,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EACD;QACI,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,cAAc,CAAC,EAAE,MAAM,CAAA;KAC1B,GACD,KAAK,CAAA;IACX,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IACrE,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,SAAS,CAAA;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,QAAA,MAAM,WAAW,+HA2Ef,CAAA;AAIF,eAAe,WAAW,CAAA"}
|
|
@@ -1,21 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const AI_MODEL_HEADER = "X-Ai-Model";
|
|
1
|
+
import type { ChatEvent } from '@/views/concepts/ai/Chat/types';
|
|
3
2
|
export declare const AI_API_URL: string;
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
export declare function apiGetChatHistory<T>(conversationId?: string): Promise<T>;
|
|
4
|
+
export type StreamChatParams = {
|
|
5
|
+
prompt: string;
|
|
6
|
+
/** Identifica a conversa; o backend usa como thread da memoria. */
|
|
7
|
+
conversationId?: string;
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
onEvent: (evento: ChatEvent) => void;
|
|
9
10
|
};
|
|
10
|
-
export type
|
|
11
|
-
|
|
11
|
+
export type ResumeChatParams = {
|
|
12
|
+
/** true = aprovar a operacao pendente, false = negar. */
|
|
13
|
+
approved: boolean;
|
|
14
|
+
conversationId?: string;
|
|
15
|
+
signal?: AbortSignal;
|
|
16
|
+
onEvent: (evento: ChatEvent) => void;
|
|
12
17
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Envia a mensagem e consome a resposta em streaming (SSE).
|
|
20
|
+
*
|
|
21
|
+
* Usa `fetch`, e nao o Axios, porque o Axios no browser so resolve a Promise
|
|
22
|
+
* com a resposta inteira — nao ha como ler o corpo enquanto ele chega.
|
|
23
|
+
*/
|
|
24
|
+
export declare function streamChat({ prompt, conversationId, signal, onEvent, }: StreamChatParams): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Retoma uma conversa parada num pedido de aprovacao.
|
|
27
|
+
*
|
|
28
|
+
* Devolve o mesmo tipo de stream do `streamChat`, e a resposta continua na
|
|
29
|
+
* MESMA mensagem do chat — o backend so volta do ponto onde parou.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resumeChat({ approved, conversationId, signal, onEvent, }: ResumeChatParams): Promise<void>;
|
|
19
32
|
export declare function apiGetImages<T, U extends Record<string, unknown>>(params: U): Promise<T>;
|
|
20
33
|
export declare function apiPostImages<T, U extends Record<string, unknown>>(data: U): Promise<T>;
|
|
21
34
|
//# sourceMappingURL=AiService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiService.d.ts","sourceRoot":"","sources":["../../../../lib/@ecme/services/AiService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AiService.d.ts","sourceRoot":"","sources":["../../../../lib/@ecme/services/AiService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AA0B/D,eAAO,MAAM,UAAU,QAAgB,CAAA;AAcvC,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,cAMjE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,yDAAyD;IACzD,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;CACvC,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,EAC7B,MAAM,EACN,cAAc,EACd,MAAM,EACN,OAAO,GACV,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlC;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,EAC7B,QAAQ,EACR,cAAc,EACd,MAAM,EACN,OAAO,GACV,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlC;AAiCD,wBAAsB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,MAAM,EAAE,CAAC,cAOZ;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,IAAI,EAAE,CAAC,cAOV"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Headers de autenticacao lidos do storage.
|
|
3
|
+
*
|
|
4
|
+
* Existe porque o chat de IA usa `fetch` (o Axios nao faz streaming no
|
|
5
|
+
* browser) e portanto nao passa pelo interceptor. Em vez de duplicar as regras
|
|
6
|
+
* de onde mora o token, o interceptor e o fetch chamam esta funcao — uma
|
|
7
|
+
* verdade so.
|
|
8
|
+
*
|
|
9
|
+
* Ver AxiosRequestIntrceptorConfigCallback, que a consome.
|
|
10
|
+
*/
|
|
11
|
+
export declare const authHeaders: () => Record<string, string>;
|
|
12
|
+
//# sourceMappingURL=aiAuthHeaders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aiAuthHeaders.d.ts","sourceRoot":"","sources":["../../../../lib/@ecme/services/aiAuthHeaders.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,QAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAqBnD,CAAA"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { InternalAxiosRequestConfig } from 'axios';
|
|
2
|
+
/**
|
|
3
|
+
* Injeta Authorization e X-User-Id em toda requisicao do Axios.
|
|
4
|
+
*
|
|
5
|
+
* As regras de onde o token mora vivem em `authHeaders` — compartilhadas com o
|
|
6
|
+
* chat de IA, que usa `fetch` e nao passa por aqui.
|
|
7
|
+
*/
|
|
2
8
|
declare const AxiosRequestIntrceptorConfigCallback: (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig<any, any>;
|
|
3
9
|
export default AxiosRequestIntrceptorConfigCallback;
|
|
4
10
|
//# sourceMappingURL=AxiosRequestIntrceptorConfigCallback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxiosRequestIntrceptorConfigCallback.d.ts","sourceRoot":"","sources":["../../../../../lib/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AxiosRequestIntrceptorConfigCallback.d.ts","sourceRoot":"","sources":["../../../../../lib/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,OAAO,CAAA;AAEvD;;;;;GAKG;AACH,QAAA,MAAM,oCAAoC,GACtC,QAAQ,0BAA0B,yCAOrC,CAAA;AAED,eAAe,oCAAoC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser de Server-Sent Events sobre um ReadableStream.
|
|
3
|
+
*
|
|
4
|
+
* O EventSource nativo do browser nao serve aqui: ele so faz GET e nao aceita
|
|
5
|
+
* headers, e o chat e um POST autenticado. Entao lemos o corpo do `fetch` na
|
|
6
|
+
* mao.
|
|
7
|
+
*
|
|
8
|
+
* Duas bordas do protocolo que uma implementacao ingenua erra:
|
|
9
|
+
*
|
|
10
|
+
* 1. um chunk da rede pode cortar um evento no meio — por isso o resto fica no
|
|
11
|
+
* buffer ate chegar o proximo `\n\n`;
|
|
12
|
+
* 2. um chunk pode trazer varios eventos de uma vez.
|
|
13
|
+
*/
|
|
14
|
+
export type SseEvent = {
|
|
15
|
+
event: string;
|
|
16
|
+
data: string;
|
|
17
|
+
};
|
|
18
|
+
/** Le o stream ate o fim, chamando `onEvent` a cada evento completo. */
|
|
19
|
+
export declare function readSse(body: ReadableStream<Uint8Array>, onEvent: (evento: SseEvent) => void): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=sseParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sseParser.d.ts","sourceRoot":"","sources":["../../../../lib/@ecme/services/sseParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAID,wEAAwE;AACxE,wBAAsB,OAAO,CACzB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,GACpC,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mensagem de erro do agente Orbe AI — exibida no lugar da resposta quando a
|
|
3
|
+
* comunicação com o serviço de IA falha, com acento vermelho para sinalizar
|
|
4
|
+
* o erro sem quebrar o tom visual do chat.
|
|
5
|
+
*/
|
|
6
|
+
declare const AiErrorMessage: () => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default AiErrorMessage;
|
|
8
|
+
//# sourceMappingURL=AiErrorMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiErrorMessage.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,QAAA,MAAM,cAAc,+CAkBnB,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PendingApproval } from '../types';
|
|
2
|
+
type ApprovalCardProps = {
|
|
3
|
+
approval: PendingApproval;
|
|
4
|
+
onDecide: (approved: boolean) => void;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Confirmacao de uma operacao que grava no ERP.
|
|
8
|
+
*
|
|
9
|
+
* O agente fica PARADO enquanto este card estiver na tela — so volta a
|
|
10
|
+
* responder depois do clique. Por isso ele nao usa a paleta de alerta: nao e um
|
|
11
|
+
* aviso de erro, e uma decisao de negocio que o usuario precisa tomar.
|
|
12
|
+
*/
|
|
13
|
+
declare const ApprovalCard: ({ approval, onDecide }: ApprovalCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export default ApprovalCard;
|
|
15
|
+
//# sourceMappingURL=ApprovalCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApprovalCard.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/components/ApprovalCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,KAAK,iBAAiB,GAAG;IACrB,QAAQ,EAAE,eAAe,CAAA;IACzB,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;CACxC,CAAA;AAED;;;;;;GAMG;AACH,QAAA,MAAM,YAAY,GAAI,wBAAwB,iBAAiB,4CAkF9D,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatView.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/components/ChatView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChatView.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/components/ChatView.tsx"],"names":[],"mappings":"AAgCA,QAAA,MAAM,QAAQ,+CA+Ib,CAAA;AAED,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ToolCall } from '../types';
|
|
2
|
+
type ToolCallChipProps = {
|
|
3
|
+
tool: ToolCall;
|
|
4
|
+
};
|
|
5
|
+
declare const ToolCallChip: ({ tool }: ToolCallChipProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export default ToolCallChip;
|
|
7
|
+
//# sourceMappingURL=ToolCallChip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolCallChip.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/components/ToolCallChip.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AA0DxC,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,QAAA,MAAM,YAAY,GAAI,UAAU,iBAAiB,4CAgFhD,CAAA;AA4DD,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IconType } from 'react-icons';
|
|
2
|
+
export declare const rotularFerramenta: (nome: string) => string;
|
|
3
|
+
export declare const rotularExecucao: (nome: string) => string;
|
|
4
|
+
export declare const iconeFerramenta: (nome: string) => IconType;
|
|
5
|
+
export declare const rotularCampo: (chave: string) => string;
|
|
6
|
+
/** Converte o valor tecnico no que o usuario espera ler. */
|
|
7
|
+
export declare const formatarValor: (chave: string, valor: unknown) => string;
|
|
8
|
+
/** Pares (rotulo, valor) prontos para exibir, ignorando o que esta vazio. */
|
|
9
|
+
export declare const camposVisiveis: (args: Record<string, unknown>) => {
|
|
10
|
+
chave: string;
|
|
11
|
+
rotulo: string;
|
|
12
|
+
valor: string;
|
|
13
|
+
}[];
|
|
14
|
+
//# sourceMappingURL=toolPresentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolPresentation.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/components/toolPresentation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AA4C3C,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,WACE,CAAA;AAEhD,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,WACQ,CAAA;AAEpD,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,QACT,CAAA;AAmBtC,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,WAAsC,CAAA;AAchF,4DAA4D;AAC5D,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,OAAO,OAAO,KAAG,MAiC7D,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;GAajD,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
declare const useChatSend: () => {
|
|
2
|
-
handleSend: (prompt: string
|
|
2
|
+
handleSend: (prompt: string) => Promise<void>;
|
|
3
|
+
handleApproval: (chatId: string, messageId: string, approved: boolean) => Promise<void>;
|
|
3
4
|
};
|
|
4
5
|
export default useChatSend;
|
|
5
6
|
//# sourceMappingURL=useChatSend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatSend.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/hooks/useChatSend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useChatSend.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/hooks/useChatSend.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,WAAW;yBA4KqB,MAAM;6BA2B5B,MAAM,aACH,MAAM,YACP,OAAO;CA6BxB,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -23,6 +23,7 @@ type GenerativeChatAction = {
|
|
|
23
23
|
setIsTyping: (payload: boolean) => void;
|
|
24
24
|
pushChatHistory: (payload: ChatHistory) => void;
|
|
25
25
|
pushConversation: (id: string, conversation: Conversation) => void;
|
|
26
|
+
updateConversation: (chatId: string, messageId: string, patch: Partial<Conversation>) => void;
|
|
26
27
|
disabledChatFresh: (id: string) => void;
|
|
27
28
|
};
|
|
28
29
|
export declare const usGenerativeChatStore: import("zustand").UseBoundStore<import("zustand").StoreApi<GenerativeChatState & GenerativeChatAction>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generativeChatStore.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/store/generativeChatStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAExE,KAAK,YAAY,GAAG;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,0BAA0B,EAAE,MAAM,EAAE,CAAA;IACpC,WAAW,EAAE,aAAa,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,QAAQ,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,6BAA6B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxD,cAAc,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;IAChD,kBAAkB,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACpE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAA;IAChD,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IAC/C,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,KAAK,IAAI,CAAA;IAClE,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAA;AAcD,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"generativeChatStore.d.ts","sourceRoot":"","sources":["../../../../../../../../lib/@ecme/views/concepts/ai/Chat/store/generativeChatStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAExE,KAAK,YAAY,GAAG;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,0BAA0B,EAAE,MAAM,EAAE,CAAA;IACpC,WAAW,EAAE,aAAa,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,QAAQ,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,6BAA6B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxD,cAAc,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;IAChD,kBAAkB,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACpE,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAA;IAChD,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IAC/C,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,KAAK,IAAI,CAAA;IAClE,kBAAkB,EAAE,CAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAC3B,IAAI,CAAA;IACT,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAA;AAcD,eAAO,MAAM,qBAAqB,yGAsF/B,CAAA"}
|
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
/** Uma ferramenta que o agente chamou durante a resposta. */
|
|
2
|
+
export type ToolCall = {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
args: Record<string, unknown>;
|
|
6
|
+
/** Retorno da ferramenta; so existe depois do tool_end. */
|
|
7
|
+
result?: string;
|
|
8
|
+
isError?: boolean;
|
|
9
|
+
/** true enquanto a ferramenta esta executando. */
|
|
10
|
+
running: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* true quando a ferramenta esta parada esperando o usuario aprovar.
|
|
13
|
+
*
|
|
14
|
+
* O backend emite `tool_start` assim que o modelo DECIDE chamar a
|
|
15
|
+
* ferramenta — antes de saber se ela precisa de aprovacao. Sem esta flag, o
|
|
16
|
+
* chip ficaria girando "executando" enquanto na verdade espera um clique.
|
|
17
|
+
*/
|
|
18
|
+
awaitingApproval?: boolean;
|
|
19
|
+
};
|
|
20
|
+
/** Operacao de escrita parada, esperando o usuario aprovar ou negar. */
|
|
21
|
+
export type PendingApproval = {
|
|
22
|
+
id: string;
|
|
23
|
+
calls: {
|
|
24
|
+
id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
args: Record<string, unknown>;
|
|
27
|
+
}[];
|
|
28
|
+
};
|
|
1
29
|
export type Conversation = {
|
|
2
30
|
id: string;
|
|
3
31
|
sender: {
|
|
@@ -14,31 +42,76 @@ export type Conversation = {
|
|
|
14
42
|
mediaUrl: string;
|
|
15
43
|
}>;
|
|
16
44
|
isMyMessage?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Liga a animacao de maquina de escrever do ChatCustomContent.
|
|
47
|
+
*
|
|
48
|
+
* Mensagens vindas do streaming devem usar `false`: o texto ja chega
|
|
49
|
+
* progressivamente do servidor, e a animacao reinicia do zero a cada token
|
|
50
|
+
* novo (ela reseta a posicao quando o conteudo muda).
|
|
51
|
+
*/
|
|
17
52
|
fresh?: boolean;
|
|
53
|
+
isError?: boolean;
|
|
54
|
+
/** Ferramentas chamadas pelo agente nesta resposta. */
|
|
55
|
+
tools?: ToolCall[];
|
|
56
|
+
/** Preenchido quando o agente pausou esperando aprovacao humana. */
|
|
57
|
+
pendingApproval?: PendingApproval;
|
|
18
58
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Eventos do stream de /ai/chat/stream.
|
|
61
|
+
*
|
|
62
|
+
* Ordem tipica de uma resposta que consulta o ERP:
|
|
63
|
+
*
|
|
64
|
+
* token* tool_start tool_end token* done
|
|
65
|
+
*
|
|
66
|
+
* `done` sempre fecha o stream e traz a resposta final completa. Concatenar os
|
|
67
|
+
* `token` da o mesmo texto — o front pode usar qualquer um dos dois caminhos.
|
|
68
|
+
*/
|
|
69
|
+
export type ChatEvent = {
|
|
70
|
+
type: 'token';
|
|
71
|
+
data: {
|
|
72
|
+
content: string;
|
|
73
|
+
};
|
|
74
|
+
} | {
|
|
75
|
+
type: 'tool_start';
|
|
76
|
+
data: {
|
|
77
|
+
id: string;
|
|
78
|
+
name: string;
|
|
79
|
+
args: Record<string, unknown>;
|
|
80
|
+
};
|
|
81
|
+
} | {
|
|
82
|
+
type: 'tool_end';
|
|
83
|
+
data: {
|
|
84
|
+
id: string;
|
|
85
|
+
name: string;
|
|
86
|
+
content: string;
|
|
87
|
+
is_error: boolean;
|
|
88
|
+
};
|
|
89
|
+
} | {
|
|
90
|
+
/**
|
|
91
|
+
* O agente parou antes de uma operacao de escrita e espera decisao.
|
|
92
|
+
*
|
|
93
|
+
* Quando este evento chega, o `done` NAO vem: o turno nao terminou,
|
|
94
|
+
* esta pausado. Retomar e chamar `resumeChat`.
|
|
95
|
+
*/
|
|
96
|
+
type: 'approval_required';
|
|
97
|
+
data: {
|
|
98
|
+
id: string;
|
|
99
|
+
calls: {
|
|
100
|
+
id: string;
|
|
101
|
+
name: string;
|
|
102
|
+
args: Record<string, unknown>;
|
|
103
|
+
}[];
|
|
104
|
+
};
|
|
105
|
+
} | {
|
|
106
|
+
type: 'done';
|
|
107
|
+
data: {
|
|
108
|
+
content: string;
|
|
109
|
+
};
|
|
110
|
+
} | {
|
|
111
|
+
type: 'error';
|
|
112
|
+
data: {
|
|
113
|
+
message: string;
|
|
114
|
+
};
|
|
42
115
|
};
|
|
43
116
|
export type ChatHistory = {
|
|
44
117
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../lib/@ecme/views/concepts/ai/Chat/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE;QACJ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,cAAc,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;IACjD,WAAW,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;QAC1C,MAAM,EAAE,IAAI,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;KACnB,CAAC,CAAA;IACF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../lib/@ecme/views/concepts/ai/Chat/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ export declare function apiGetNfes(body: any): Promise<unknown>;
|
|
|
2
2
|
export declare function apiGetPdf(id: any): Promise<unknown>;
|
|
3
3
|
export declare function apiAddObservacao(body: any): Promise<unknown>;
|
|
4
4
|
export declare function apiGetEventosNfe(chaveAcesso: any): Promise<unknown>;
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function apiAddEvento(body: any): Promise<unknown>;
|
|
6
6
|
export declare function apiMontaRelatorioNfeRecebidas(fileName: any, body: any): Promise<unknown>;
|
|
7
7
|
export declare function apiDownloadRelatorioNfeRecebidas(fileName: any): Promise<unknown>;
|
|
8
8
|
//# sourceMappingURL=NfeService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NfeService.d.ts","sourceRoot":"","sources":["../../../../../../lib/base/services/modules/HubFiscal/NfeService.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,CAAC,IAAI,KAAA,oBAMpC;AAED,wBAAsB,SAAS,CAAC,EAAE,KAAA,oBAKjC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,KAAA,oBAM1C;AAED,wBAAsB,gBAAgB,CAAC,WAAW,KAAA,oBAKjD;AAED,wBAAsB,
|
|
1
|
+
{"version":3,"file":"NfeService.d.ts","sourceRoot":"","sources":["../../../../../../lib/base/services/modules/HubFiscal/NfeService.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,CAAC,IAAI,KAAA,oBAMpC;AAED,wBAAsB,SAAS,CAAC,EAAE,KAAA,oBAKjC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,KAAA,oBAM1C;AAED,wBAAsB,gBAAgB,CAAC,WAAW,KAAA,oBAKjD;AAED,wBAAsB,YAAY,CAAC,IAAI,KAAA,oBAMtC;AAED,wBAAsB,6BAA6B,CAAC,QAAQ,KAAA,EAAE,IAAI,KAAA,oBAMjE;AAED,wBAAsB,gCAAgC,CAAC,QAAQ,KAAA,oBAM9D"}
|