@e-llm-studio/citation 0.0.252 → 0.0.254

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.
Files changed (76) hide show
  1. package/dist/cjs/features/ChatDrawer/ChatDrawer.js +1 -1
  2. package/dist/cjs/features/ChatDrawer/ChatDrawer.js.map +1 -1
  3. package/dist/cjs/features/IngestionStatus/IngestionStatusComponent.js +1 -1
  4. package/dist/cjs/features/IngestionStatus/IngestionStatusComponent.js.map +1 -1
  5. package/dist/cjs/features/IngestionStatus/useIngestionStatus.js +1 -1
  6. package/dist/cjs/features/IngestionStatus/useIngestionStatus.js.map +1 -1
  7. package/dist/cjs/features/PdfViewer/PdfContainer.js +1 -1
  8. package/dist/cjs/features/PdfViewer/PdfContainer.js.map +1 -1
  9. package/dist/cjs/features/PdfViewer/PdfViewer.js +1 -1
  10. package/dist/cjs/features/PdfViewer/PdfViewer.js.map +1 -1
  11. package/dist/cjs/features/PdfViewer/usePdfHighlight.js +1 -1
  12. package/dist/cjs/features/PdfViewer/usePdfHighlight.js.map +1 -1
  13. package/dist/cjs/features/SegmentReviewComponents/ApprovalDescriptionBanner.js +2 -0
  14. package/dist/cjs/features/SegmentReviewComponents/ApprovalDescriptionBanner.js.map +1 -0
  15. package/dist/cjs/features/SegmentReviewComponents/CognitiveIntegrity.js +1 -1
  16. package/dist/cjs/features/SegmentReviewComponents/CognitiveIntegrity.js.map +1 -1
  17. package/dist/cjs/features/SegmentReviewComponents/RevertCard.js +1 -1
  18. package/dist/cjs/features/SegmentReviewComponents/RevertCard.js.map +1 -1
  19. package/dist/cjs/features/SegmentReviewComponents/SaveAsLearningCard.js +2 -0
  20. package/dist/cjs/features/SegmentReviewComponents/SaveAsLearningCard.js.map +1 -0
  21. package/dist/cjs/features/SegmentReviewComponents/SegmentReviewPdfWrapper.js +1 -1
  22. package/dist/cjs/features/SegmentReviewComponents/SegmentReviewPdfWrapper.js.map +1 -1
  23. package/dist/cjs/hooks/useOnDemandCitationFetch.js +1 -1
  24. package/dist/cjs/hooks/useOnDemandCitationFetch.js.map +1 -1
  25. package/dist/cjs/service/onDemandApi.js +1 -1
  26. package/dist/cjs/service/onDemandApi.js.map +1 -1
  27. package/dist/features/ChatDrawer/ChatDrawer.js +1 -1
  28. package/dist/features/ChatDrawer/ChatDrawer.js.map +1 -1
  29. package/dist/features/IngestionStatus/IngestionStatusComponent.js +1 -1
  30. package/dist/features/IngestionStatus/IngestionStatusComponent.js.map +1 -1
  31. package/dist/features/IngestionStatus/useIngestionStatus.js +1 -1
  32. package/dist/features/IngestionStatus/useIngestionStatus.js.map +1 -1
  33. package/dist/features/PdfViewer/PdfContainer.js +1 -1
  34. package/dist/features/PdfViewer/PdfContainer.js.map +1 -1
  35. package/dist/features/PdfViewer/PdfViewer.js +1 -1
  36. package/dist/features/PdfViewer/PdfViewer.js.map +1 -1
  37. package/dist/features/PdfViewer/usePdfHighlight.js +1 -1
  38. package/dist/features/PdfViewer/usePdfHighlight.js.map +1 -1
  39. package/dist/features/SegmentReviewComponents/ApprovalDescriptionBanner.js +2 -0
  40. package/dist/features/SegmentReviewComponents/ApprovalDescriptionBanner.js.map +1 -0
  41. package/dist/features/SegmentReviewComponents/CognitiveIntegrity.js +1 -1
  42. package/dist/features/SegmentReviewComponents/CognitiveIntegrity.js.map +1 -1
  43. package/dist/features/SegmentReviewComponents/RevertCard.js +1 -1
  44. package/dist/features/SegmentReviewComponents/RevertCard.js.map +1 -1
  45. package/dist/features/SegmentReviewComponents/SaveAsLearningCard.js +2 -0
  46. package/dist/features/SegmentReviewComponents/SaveAsLearningCard.js.map +1 -0
  47. package/dist/features/SegmentReviewComponents/SegmentReviewPdfWrapper.js +1 -1
  48. package/dist/features/SegmentReviewComponents/SegmentReviewPdfWrapper.js.map +1 -1
  49. package/dist/hooks/useOnDemandCitationFetch.js +1 -1
  50. package/dist/hooks/useOnDemandCitationFetch.js.map +1 -1
  51. package/dist/service/onDemandApi.js +1 -1
  52. package/dist/service/onDemandApi.js.map +1 -1
  53. package/dist/types/features/ChatDrawer/ChatDrawer.d.ts.map +1 -1
  54. package/dist/types/features/IngestionStatus/IngestionStatusComponent.d.ts +1 -0
  55. package/dist/types/features/IngestionStatus/IngestionStatusComponent.d.ts.map +1 -1
  56. package/dist/types/features/IngestionStatus/useIngestionStatus.d.ts +1 -1
  57. package/dist/types/features/IngestionStatus/useIngestionStatus.d.ts.map +1 -1
  58. package/dist/types/features/PdfViewer/PdfContainer.d.ts +3 -2
  59. package/dist/types/features/PdfViewer/PdfContainer.d.ts.map +1 -1
  60. package/dist/types/features/PdfViewer/PdfViewer.d.ts +3 -2
  61. package/dist/types/features/PdfViewer/PdfViewer.d.ts.map +1 -1
  62. package/dist/types/features/PdfViewer/usePdfHighlight.d.ts +1 -0
  63. package/dist/types/features/PdfViewer/usePdfHighlight.d.ts.map +1 -1
  64. package/dist/types/features/SegmentReviewComponents/ApprovalDescriptionBanner.d.ts +11 -0
  65. package/dist/types/features/SegmentReviewComponents/ApprovalDescriptionBanner.d.ts.map +1 -0
  66. package/dist/types/features/SegmentReviewComponents/CognitiveIntegrity.d.ts +6 -1
  67. package/dist/types/features/SegmentReviewComponents/CognitiveIntegrity.d.ts.map +1 -1
  68. package/dist/types/features/SegmentReviewComponents/RevertCard.d.ts +9 -1
  69. package/dist/types/features/SegmentReviewComponents/RevertCard.d.ts.map +1 -1
  70. package/dist/types/features/SegmentReviewComponents/SaveAsLearningCard.d.ts +16 -0
  71. package/dist/types/features/SegmentReviewComponents/SaveAsLearningCard.d.ts.map +1 -0
  72. package/dist/types/features/SegmentReviewComponents/SegmentReviewPdfWrapper.d.ts +19 -1
  73. package/dist/types/features/SegmentReviewComponents/SegmentReviewPdfWrapper.d.ts.map +1 -1
  74. package/dist/types/hooks/useOnDemandCitationFetch.d.ts.map +1 -1
  75. package/dist/types/service/onDemandApi.d.ts.map +1 -1
  76. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{useMemo as t}from"react";import{useQuery as n}from"@tanstack/react-query";import{fetchOnDemandCitation as i}from"../service/onDemandApi.js";const a=(t,n,i)=>Array.isArray(t)?Array.isArray(n)&&0!==n.length?Number.isNaN(i)?(console.warn("[findCitation] citationNumber is NaN"),null):t.find(t=>{const a=(t=>{if(null==t)return console.warn("[getCitationType] received null or undefined citation"),"";const n=t?.customMetaData?.type??t?.customMetadata?.type??t?.type??"";return n||console.warn("[getCitationType] citation has no resolvable type field",t),n})(t);return(t=>null==t?(console.warn("[getCitationNumber] received null or undefined citation"),""):(null==t.citation_number&&console.warn("[getCitationNumber] citation is missing citation_number field",t),t?.citation_number??""))(t)?.toString()===i.toString()&&n.some(t=>a?.includes(t))})??null:(console.warn("[findCitation] citationTypes is empty or falsy",n),null):(console.warn("[findCitation] citations is not an array",t),null),e=({msg:e,citationType:o,citationNumber:c,enabled:r=!1,accessToken:s,baseUrl:d,orgName:u,citationAssistantProcessingName:l,citationAgentName:_})=>{const m=e?.requestId||e?.id||"",f=t(()=>(t=>{switch(t){case"artifact_chunks":return["artifact_chunks","scanned_doc_citation","scanned_doc_citations"];case"rai_artifact_citation":return["rai_artifact_citation","rai_artifact_citations"];case"json_chunks":return["json_chunks"];case"scanned_doc_citation":return["scanned_doc_citation","scanned_doc_citations","artifact_chunks"];case"scanned_doc_citations":return["scanned_doc_citations","scanned_doc_citation","artifact_chunks"];default:return[t]}})(o),[o]),y=(()=>{switch(o){case"artifact_chunks":case"scanned_doc_citations":return"scanned_doc_citation";case"rai_artifact_citation":return"rai_artifact_citation";default:return o}})(),g=e?.isEcgPayloadActive?t(()=>["onDemandCitationFetch",m,y,e?.customCitationId,e?.ecg_agent_name],[m,y,e?.customCitationId,e?.ecg_agent_name]):t(()=>["onDemandCitationFetch",m,y,"gpt_citation"===o?e?.id:c],[m,y,c]),h=t(()=>a(e?.citations,f,c),[e?.citations,f,c]),p=Boolean(r&&m&&y&&d&&u&&!Number.isNaN(c)&&!h),C=s,b=n({queryKey:g,queryFn:async()=>{const t=await i(m,y,c,e?.content??"",C,d,l??"",u,_??"",e?.isEcgPayloadActive??!1,"boolean"==typeof e?.isReqPayloadActive&&e.isReqPayloadActive,e?.ecg_agent_name??"",e?.customCitationId??"",e?.plan_id??"",e?.ui_chat_history??void 0,e?.mmvf_list??void 0,Array.isArray(e?.files)?e.files:[],"string"==typeof e?.metadata&&e.metadata.trim()?e.metadata:"",e?.checkPossibleCitationPayload,e?.ui_request_body);if(t.error||!t.responseData)throw new Error(t.error?.errorMessage||"Failed to fetch on-demand citation");return t.responseData},enabled:p&&!0===e?.isStreamEnd&&Boolean(e?.content),staleTime:1/0,gcTime:1/0,refetchOnMount:!1,refetchOnWindowFocus:!1,retry:!1}),A=t(()=>{const t=b.data?.result?.citations??[];return Array.isArray(t)&&0!==t.length?e?.customCitationId?t.find(t=>{const n=t?.title??t?.display_name??"";return"string"==typeof n&&n.includes(e.customCitationId)})??t[0]??null:a(t,f,c)??t[0]??null:null},[e?.customCitationId,c,f,b.data]);return{citation:h??A,isFetching:b.isFetching,isLoading:b.isLoading,isComplete:b.isSuccess,status:b.status,refetch:b.refetch}};export{e as useOnDemandCitationFetch};
1
+ import{useMemo as t}from"react";import{useQuery as n}from"@tanstack/react-query";import{fetchOnDemandCitation as i}from"../service/onDemandApi.js";const a=(t,n,i)=>Array.isArray(t)?Array.isArray(n)&&0!==n.length?Number.isNaN(i)?(console.warn("[findCitation] citationNumber is NaN"),null):t.find(t=>{const a=(t=>{if(null==t)return console.warn("[getCitationType] received null or undefined citation"),"";const n=t?.customMetaData?.type??t?.customMetadata?.type??t?.type??"";return n||console.warn("[getCitationType] citation has no resolvable type field",t),n})(t);return(t=>null==t?(console.warn("[getCitationNumber] received null or undefined citation"),""):(null==t.citation_number&&console.warn("[getCitationNumber] citation is missing citation_number field",t),t?.citation_number??""))(t)?.toString()===i.toString()&&n.some(t=>a?.includes(t))})??null:(console.warn("[findCitation] citationTypes is empty or falsy",n),null):(console.warn("[findCitation] citations is not an array",t),null),e=({msg:e,citationType:o,citationNumber:c,enabled:r=!1,accessToken:s,baseUrl:d,orgName:u,citationAssistantProcessingName:l,citationAgentName:_})=>{const m=e?.requestId||e?.id||"",f=t(()=>(t=>{switch(t){case"artifact_chunks":return["artifact_chunks","scanned_doc_citation","scanned_doc_citations"];case"rai_artifact_citation":return["rai_artifact_citation","rai_artifact_citations"];case"json_chunks":return["json_chunks"];case"scanned_doc_citation":return["scanned_doc_citation","scanned_doc_citations","artifact_chunks"];case"scanned_doc_citations":return["scanned_doc_citations","scanned_doc_citation","artifact_chunks"];default:return[t]}})(o),[o]),y=(()=>{switch(o){case"artifact_chunks":case"scanned_doc_citations":return"scanned_doc_citation";case"rai_artifact_citation":return"rai_artifact_citation";default:return o}})(),g=e?.isEcgPayloadActive?t(()=>["onDemandCitationFetch",m,y,e?.customCitationId,e?.ecg_agent_name],[m,y,e?.customCitationId,e?.ecg_agent_name]):t(()=>["onDemandCitationFetch",m,y,"gpt_citation"===o?e?.id:c],[m,y,c]),h=t(()=>a(e?.citations,f,c),[e?.citations,f,c]),p=Boolean(r&&m&&y&&d&&u&&!Number.isNaN(c)&&!h),C=s,b=n({queryKey:g,queryFn:async()=>{C&&C.trim()||console.warn("[useOnDemandCitationFetch] no accessToken passed in props");const t=await i(m,y,c,e?.content??"",C,d,l??"",u,_??"",e?.isEcgPayloadActive??!1,"boolean"==typeof e?.isReqPayloadActive&&e.isReqPayloadActive,e?.ecg_agent_name??"",e?.customCitationId??"",e?.plan_id??"",e?.ui_chat_history??void 0,e?.mmvf_list??void 0,Array.isArray(e?.files)?e.files:[],"string"==typeof e?.metadata&&e.metadata.trim()?e.metadata:"",e?.checkPossibleCitationPayload,e?.ui_request_body);if(t.error||!t.responseData)throw new Error(t.error?.errorMessage||"Failed to fetch on-demand citation");return t.responseData},enabled:p&&!0===e?.isStreamEnd&&Boolean(e?.content),staleTime:1/0,gcTime:1/0,refetchOnMount:!1,refetchOnWindowFocus:!1,retry:!1}),A=t(()=>{const t=b.data?.result?.citations??[];return Array.isArray(t)&&0!==t.length?e?.customCitationId?t.find(t=>{const n=t?.title??t?.display_name??"";return"string"==typeof n&&n.includes(e.customCitationId)})??t[0]??null:a(t,f,c)??t[0]??null:null},[e?.customCitationId,c,f,b.data]);return{citation:h??A,isFetching:b.isFetching,isLoading:b.isLoading,isComplete:b.isSuccess,status:b.status,refetch:b.refetch}};export{e as useOnDemandCitationFetch};
2
2
  //# sourceMappingURL=useOnDemandCitationFetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnDemandCitationFetch.js","sources":["../../src/hooks/useOnDemandCitationFetch.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { fetchOnDemandCitation } from '../service/onDemandApi';\nimport type {\n OnDemandCitationPayload,\n UseOnDemandCitationFetchParams,\n} from '../types/useOnDemandCitationFetch.types';\n\nexport type {\n OnDemandCitationPayload,\n ShareChatToMode,\n IntermediateStep,\n ShareChat,\n ArtifactData,\n PowerActionMetadata,\n UseOnDemandCitationFetchParams,\n} from '../types/useOnDemandCitationFetch.types';\n\nconst getCitationType = (citation: any) => {\n if (citation == null) {\n console.warn('[getCitationType] received null or undefined citation');\n return '';\n }\n const type =\n citation?.customMetaData?.type ??\n citation?.customMetadata?.type ??\n citation?.type ??\n '';\n if (!type) {\n console.warn('[getCitationType] citation has no resolvable type field', citation);\n }\n return type;\n};\n\nconst getCitationNumber = (citation: any) => {\n if (citation == null) {\n console.warn('[getCitationNumber] received null or undefined citation');\n return '';\n }\n if (citation.citation_number == null) {\n console.warn('[getCitationNumber] citation is missing citation_number field', citation);\n }\n return citation?.citation_number ?? '';\n};\n\nconst getCitationTypeCandidates = (citationType: string) => {\n switch (citationType) {\n case 'artifact_chunks':\n return ['artifact_chunks', 'scanned_doc_citation', 'scanned_doc_citations'];\n case 'rai_artifact_citation':\n return ['rai_artifact_citation', 'rai_artifact_citations'];\n case 'json_chunks':\n return ['json_chunks'];\n case 'scanned_doc_citation':\n return ['scanned_doc_citation', 'scanned_doc_citations', 'artifact_chunks'];\n case 'scanned_doc_citations':\n return ['scanned_doc_citations', 'scanned_doc_citation', 'artifact_chunks'];\n default:\n return [citationType];\n }\n};\n\nconst findCitation = (\n citations: any[] | undefined,\n citationTypes: string[],\n citationNumber: number\n) => {\n if (!Array.isArray(citations)) {\n console.warn('[findCitation] citations is not an array', citations);\n return null;\n }\n if (!Array.isArray(citationTypes) || citationTypes.length === 0) {\n console.warn('[findCitation] citationTypes is empty or falsy', citationTypes);\n return null;\n }\n if (Number.isNaN(citationNumber)) {\n console.warn('[findCitation] citationNumber is NaN');\n return null;\n }\n\n return (\n citations.find((citation: any) => {\n const type = getCitationType(citation);\n return (\n getCitationNumber(citation)?.toString() === citationNumber.toString() &&\n citationTypes.some((citationType) => type?.includes(citationType))\n );\n }) ?? null\n );\n};\n\nexport const useOnDemandCitationFetch = ({\n msg,\n citationType,\n citationNumber,\n enabled = false,\n accessToken,\n baseUrl,\n orgName,\n citationAssistantProcessingName,\n citationAgentName,\n}: UseOnDemandCitationFetchParams) => {\n const requestId = msg?.requestId || msg?.id || '';\n const citationTypesForMatching = useMemo(() => getCitationTypeCandidates(citationType), [citationType]);\n const citationTypeForRequest = (() => {\n switch (citationType) {\n case 'artifact_chunks': return 'scanned_doc_citation';\n case 'rai_artifact_citation': return 'rai_artifact_citation';\n case 'scanned_doc_citations': return 'scanned_doc_citation';\n default: return citationType;\n }\n })();\n\n\t// Each (requestId, citationType, citationNumber) triple gets its own cache entry\n\tconst queryKey =msg?.isEcgPayloadActive ? useMemo(\n\t () => ['onDemandCitationFetch', requestId, citationTypeForRequest, msg?.customCitationId, msg?.ecg_agent_name],\n\t [requestId, citationTypeForRequest, msg?.customCitationId, msg?.ecg_agent_name]) \n\t : useMemo(\n\t () => ['onDemandCitationFetch', requestId, citationTypeForRequest, citationType === 'gpt_citation' ? msg?.id : citationNumber],\n\t [requestId, citationTypeForRequest, citationNumber]\n\t);\n\n // If the citation already exists on the message, no need to fetch\n const existingCitation = useMemo(\n () => findCitation(msg?.citations, citationTypesForMatching, citationNumber),\n [msg?.citations, citationTypesForMatching, citationNumber]\n );\n\n const shouldFetch = Boolean(enabled && requestId && citationTypeForRequest && baseUrl && orgName && !Number.isNaN(citationNumber) && !existingCitation);\n const token = accessToken;\n const isMessageComplete = msg?.isStreamEnd === true;\n\n const query = useQuery<OnDemandCitationPayload>({\n queryKey,\n queryFn: async () => {\n // if(!token) {\n // console.error('[useOnDemandCitationFetch] No auth token available, cannot fetch citation');\n // throw new Error('No auth token available, cannot fetch citation');\n // }\n const response = await fetchOnDemandCitation(\n requestId,\n citationTypeForRequest,\n citationNumber,\n msg?.content ?? '',\n token,\n baseUrl,\n citationAssistantProcessingName ?? '',\n orgName,\n citationAgentName ?? '',\n msg?.isEcgPayloadActive ?? false,\n (typeof msg?.isReqPayloadActive === 'boolean' ? msg.isReqPayloadActive : false),\n msg?.ecg_agent_name ?? '',\n msg?.customCitationId ?? '',\n msg?.plan_id ?? '',\n msg?.ui_chat_history ?? undefined,\n msg?.mmvf_list ?? undefined,\n Array.isArray(msg?.files) ? msg.files : [],\n (typeof msg?.metadata === 'string' && msg.metadata.trim()) ? msg.metadata : '',\n msg?.checkPossibleCitationPayload,\n msg?.ui_request_body\n );\n\n if (response.error || !response.responseData) {\n throw new Error(response.error?.errorMessage || 'Failed to fetch on-demand citation');\n }\n\n return response.responseData;\n },\n enabled: shouldFetch && isMessageComplete && Boolean(msg?.content),\n staleTime: Infinity,\n gcTime: Infinity,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n retry: false,\n });\n const fetchedCitation = useMemo(() => {\n const citations = query.data?.result?.citations ?? [];\n if (!Array.isArray(citations) || citations.length === 0) return null;\n\n if (msg?.customCitationId) {\n return (\n citations.find((c: any) => {\n const title = c?.title ?? c?.display_name ?? '';\n return typeof title === 'string' && title.includes(msg.customCitationId);\n }) ?? citations[0] ?? null\n );\n }\n\n return (\n findCitation(citations, citationTypesForMatching, citationNumber) ??\n citations[0] ??\n null\n );\n}, [msg?.customCitationId, citationNumber, citationTypesForMatching, query.data]);\n const resolvedCitation = existingCitation ?? fetchedCitation;\n\n return {\n citation: resolvedCitation,\n isFetching: query.isFetching,\n isLoading: query.isLoading,\n isComplete: query.isSuccess,\n status: query.status,\n refetch: query.refetch,\n };\n};\n"],"names":["findCitation","citations","citationTypes","citationNumber","Array","isArray","length","Number","isNaN","console","warn","find","citation","type","customMetaData","customMetadata","getCitationType","citation_number","getCitationNumber","toString","some","citationType","includes","useOnDemandCitationFetch","msg","enabled","accessToken","baseUrl","orgName","citationAssistantProcessingName","citationAgentName","requestId","id","citationTypesForMatching","useMemo","getCitationTypeCandidates","citationTypeForRequest","queryKey","isEcgPayloadActive","customCitationId","ecg_agent_name","existingCitation","shouldFetch","Boolean","token","query","useQuery","queryFn","async","response","fetchOnDemandCitation","content","isReqPayloadActive","plan_id","ui_chat_history","mmvf_list","files","metadata","trim","checkPossibleCitationPayload","ui_request_body","error","responseData","Error","errorMessage","isStreamEnd","staleTime","Infinity","gcTime","refetchOnMount","refetchOnWindowFocus","retry","fetchedCitation","data","result","c","title","display_name","isFetching","isLoading","isComplete","isSuccess","status","refetch"],"mappings":"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"}
1
+ {"version":3,"file":"useOnDemandCitationFetch.js","sources":["../../src/hooks/useOnDemandCitationFetch.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { fetchOnDemandCitation } from '../service/onDemandApi';\nimport type {\n OnDemandCitationPayload,\n UseOnDemandCitationFetchParams,\n} from '../types/useOnDemandCitationFetch.types';\n\nexport type {\n OnDemandCitationPayload,\n ShareChatToMode,\n IntermediateStep,\n ShareChat,\n ArtifactData,\n PowerActionMetadata,\n UseOnDemandCitationFetchParams,\n} from '../types/useOnDemandCitationFetch.types';\n\nconst getCitationType = (citation: any) => {\n if (citation == null) {\n console.warn('[getCitationType] received null or undefined citation');\n return '';\n }\n const type =\n citation?.customMetaData?.type ??\n citation?.customMetadata?.type ??\n citation?.type ??\n '';\n if (!type) {\n console.warn('[getCitationType] citation has no resolvable type field', citation);\n }\n return type;\n};\n\nconst getCitationNumber = (citation: any) => {\n if (citation == null) {\n console.warn('[getCitationNumber] received null or undefined citation');\n return '';\n }\n if (citation.citation_number == null) {\n console.warn('[getCitationNumber] citation is missing citation_number field', citation);\n }\n return citation?.citation_number ?? '';\n};\n\nconst getCitationTypeCandidates = (citationType: string) => {\n switch (citationType) {\n case 'artifact_chunks':\n return ['artifact_chunks', 'scanned_doc_citation', 'scanned_doc_citations'];\n case 'rai_artifact_citation':\n return ['rai_artifact_citation', 'rai_artifact_citations'];\n case 'json_chunks':\n return ['json_chunks'];\n case 'scanned_doc_citation':\n return ['scanned_doc_citation', 'scanned_doc_citations', 'artifact_chunks'];\n case 'scanned_doc_citations':\n return ['scanned_doc_citations', 'scanned_doc_citation', 'artifact_chunks'];\n default:\n return [citationType];\n }\n};\n\nconst findCitation = (\n citations: any[] | undefined,\n citationTypes: string[],\n citationNumber: number\n) => {\n if (!Array.isArray(citations)) {\n console.warn('[findCitation] citations is not an array', citations);\n return null;\n }\n if (!Array.isArray(citationTypes) || citationTypes.length === 0) {\n console.warn('[findCitation] citationTypes is empty or falsy', citationTypes);\n return null;\n }\n if (Number.isNaN(citationNumber)) {\n console.warn('[findCitation] citationNumber is NaN');\n return null;\n }\n\n return (\n citations.find((citation: any) => {\n const type = getCitationType(citation);\n return (\n getCitationNumber(citation)?.toString() === citationNumber.toString() &&\n citationTypes.some((citationType) => type?.includes(citationType))\n );\n }) ?? null\n );\n};\n\nexport const useOnDemandCitationFetch = ({\n msg,\n citationType,\n citationNumber,\n enabled = false,\n accessToken,\n baseUrl,\n orgName,\n citationAssistantProcessingName,\n citationAgentName,\n}: UseOnDemandCitationFetchParams) => {\n const requestId = msg?.requestId || msg?.id || '';\n const citationTypesForMatching = useMemo(() => getCitationTypeCandidates(citationType), [citationType]);\n const citationTypeForRequest = (() => {\n switch (citationType) {\n case 'artifact_chunks': return 'scanned_doc_citation';\n case 'rai_artifact_citation': return 'rai_artifact_citation';\n case 'scanned_doc_citations': return 'scanned_doc_citation';\n default: return citationType;\n }\n })();\n\n\t// Each (requestId, citationType, citationNumber) triple gets its own cache entry\n\tconst queryKey =msg?.isEcgPayloadActive ? useMemo(\n\t () => ['onDemandCitationFetch', requestId, citationTypeForRequest, msg?.customCitationId, msg?.ecg_agent_name],\n\t [requestId, citationTypeForRequest, msg?.customCitationId, msg?.ecg_agent_name]) \n\t : useMemo(\n\t () => ['onDemandCitationFetch', requestId, citationTypeForRequest, citationType === 'gpt_citation' ? msg?.id : citationNumber],\n\t [requestId, citationTypeForRequest, citationNumber]\n\t);\n\n // If the citation already exists on the message, no need to fetch\n const existingCitation = useMemo(\n () => findCitation(msg?.citations, citationTypesForMatching, citationNumber),\n [msg?.citations, citationTypesForMatching, citationNumber]\n );\n\n const shouldFetch = Boolean(enabled && requestId && citationTypeForRequest && baseUrl && orgName && !Number.isNaN(citationNumber) && !existingCitation);\n const token = accessToken;\n const isMessageComplete = msg?.isStreamEnd === true;\n\n const query = useQuery<OnDemandCitationPayload>({\n queryKey,\n queryFn: async () => {\n if (!token || !token.trim()) {\n console.warn('[useOnDemandCitationFetch] no accessToken passed in props');\n }\n const response = await fetchOnDemandCitation(\n requestId,\n citationTypeForRequest,\n citationNumber,\n msg?.content ?? '',\n token,\n baseUrl,\n citationAssistantProcessingName ?? '',\n orgName,\n citationAgentName ?? '',\n msg?.isEcgPayloadActive ?? false,\n (typeof msg?.isReqPayloadActive === 'boolean' ? msg.isReqPayloadActive : false),\n msg?.ecg_agent_name ?? '',\n msg?.customCitationId ?? '',\n msg?.plan_id ?? '',\n msg?.ui_chat_history ?? undefined,\n msg?.mmvf_list ?? undefined,\n Array.isArray(msg?.files) ? msg.files : [],\n (typeof msg?.metadata === 'string' && msg.metadata.trim()) ? msg.metadata : '',\n msg?.checkPossibleCitationPayload,\n msg?.ui_request_body\n );\n\n if (response.error || !response.responseData) {\n throw new Error(response.error?.errorMessage || 'Failed to fetch on-demand citation');\n }\n\n return response.responseData;\n },\n enabled: shouldFetch && isMessageComplete && Boolean(msg?.content),\n staleTime: Infinity,\n gcTime: Infinity,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n retry: false,\n });\n const fetchedCitation = useMemo(() => {\n const citations = query.data?.result?.citations ?? [];\n if (!Array.isArray(citations) || citations.length === 0) return null;\n\n if (msg?.customCitationId) {\n return (\n citations.find((c: any) => {\n const title = c?.title ?? c?.display_name ?? '';\n return typeof title === 'string' && title.includes(msg.customCitationId);\n }) ?? citations[0] ?? null\n );\n }\n\n return (\n findCitation(citations, citationTypesForMatching, citationNumber) ??\n citations[0] ??\n null\n );\n}, [msg?.customCitationId, citationNumber, citationTypesForMatching, query.data]);\n const resolvedCitation = existingCitation ?? fetchedCitation;\n\n return {\n citation: resolvedCitation,\n isFetching: query.isFetching,\n isLoading: query.isLoading,\n isComplete: query.isSuccess,\n status: query.status,\n refetch: query.refetch,\n };\n};\n"],"names":["findCitation","citations","citationTypes","citationNumber","Array","isArray","length","Number","isNaN","console","warn","find","citation","type","customMetaData","customMetadata","getCitationType","citation_number","getCitationNumber","toString","some","citationType","includes","useOnDemandCitationFetch","msg","enabled","accessToken","baseUrl","orgName","citationAssistantProcessingName","citationAgentName","requestId","id","citationTypesForMatching","useMemo","getCitationTypeCandidates","citationTypeForRequest","queryKey","isEcgPayloadActive","customCitationId","ecg_agent_name","existingCitation","shouldFetch","Boolean","token","query","useQuery","queryFn","async","trim","response","fetchOnDemandCitation","content","isReqPayloadActive","plan_id","ui_chat_history","mmvf_list","files","metadata","checkPossibleCitationPayload","ui_request_body","error","responseData","Error","errorMessage","isStreamEnd","staleTime","Infinity","gcTime","refetchOnMount","refetchOnWindowFocus","retry","fetchedCitation","data","result","c","title","display_name","isFetching","isLoading","isComplete","isSuccess","status","refetch"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e from"axios";import{apiCache as t}from"./apicache.service.js";import{NetworkErrorType as r}from"../types/onDemandApi.types.js";export{NetworkErrorType}from"../types/onDemandApi.types.js";const s=72e5,a=async(e,t,r,s,a,o,n,i,c,p,u,E,g,m,y,d,_,R,f,h)=>{const N="artifact_chunks"===t||"scanned_doc_citation"===t?"artifact_chunks":t,O="gpt_citation"===t?"string"==typeof h?.citationId?h.citationId:"":p?g:`${N}_${r}`,b="post",C="/api/chat/chatResponse";return l(b,C,{baseURL:o,data:{name:n||"citationsprocessing",organizationName:i,prompt:"",useAgent:{agent_name:c||"ProcessCitationsAgent",metadata:u?R:void 0,arguments:{citation_type:t,is_primary_agent_request:!1,...p&&{check_possible_citation_payload:!1},..."boolean"==typeof f&&{check_possible_citation_payload:f},ui_request_body:{llm_formatted_response:s,request_id:e,max_concurrent_citations:10,citation_id:O,...p&&E&&{ecg_agent_name:E},...p&&m&&{plan_id:m},...p&&y&&{ui_chat_history:y},...u&&d&&{mmvf_list:d},...u&&_&&{files:_},...h&&"object"==typeof h&&!Array.isArray(h)&&h}}}},config:{headers:{"Content-Type":"application/json"},withCredentials:!0},errorMessage:"Failed to fetch on-demand citation",cacheOption:{key:`${b}:${C}:onDemandCitation:${e}:${t}:${p?g:r}:${p?E:""}:${"gpt_citation"===t?O:""}`},shouldCache:e=>Array.isArray(e?.result?.citations)&&Boolean(e.result.citations[0])})},o=e=>{if(!e||"object"!=typeof e)return;const t=e;return"string"==typeof t.message?t.message:"string"==typeof t.errorMessage?t.errorMessage:"string"==typeof t.error?t.error:t.error&&"object"==typeof t.error&&"string"==typeof t.error.message?t.error.message:"string"==typeof t.details?t.details:t},n=async t=>{if(e.isAxiosError(t)){const e=t;if("ECONNABORTED"===e.code)return{type:r.TIMEOUT,message:"The request took too long to complete. Please try again.",originalError:t};if(e.message.includes("net::ERR_NETWORK_CHANGED")||e.message.includes("net::ERR_INTERNET_DISCONNECTED")||e.message.includes("net::ERR_NAME_NOT_RESOLVED"))return{type:r.INTERNET_DISCONNECTED,message:"Internet connection issue detected. Please check your network.",originalError:t};if(e.message.includes("Network Error")||"ERR_NETWORK"===e.code||e.message.includes("net::ERR_CONNECTION_REFUSED")||e.message.includes("net::ERR_EMPTY_RESPONSE"))return{type:r.SERVER_UNREACHABLE,message:"Unable to connect to server. The service may be down or unreachable.",originalError:t};if(e.response&&e.response.status>=500)return{type:r.SERVER_ERROR,message:`Service Unavailable. Server error (${e.response.status}).`,status:e.response.status,originalError:t};if(e.response&&e.response.status>=400&&e.response.status<500)return{type:r.SERVER_ERROR,message:o(e.response.data)||`Request failed with status code ${e.response.status}`,status:e.response.status,originalError:t}}return{type:r.UNKNOWN_ERROR,message:"An unexpected error occurred. Please try again later.",originalError:t}},i=(t,r=18e4)=>{const s=e.create({baseURL:t,timeout:r});return s.interceptors.request.use(async e=>e,async e=>{const t=await n(e);return Promise.reject(t)}),s.interceptors.response.use(e=>e,async e=>{const t=await n(e);return console.error("API Request Failed:",t),Promise.reject(t)}),s},c=(e,t,r)=>`${e}:${t}:${JSON.stringify(r||{})}`,p=i(),u=async(e,t,s)=>{try{const r=s?.baseURL?i(s.baseURL):p,{data:a,config:o}=s||{};let n;switch(e.toLowerCase()){case"get":n=await r.get(t,o);break;case"post":n=await r.post(t,a,o);break;case"put":n=await r.put(t,a,o);break;case"patch":n=await r.patch(t,a,o);break;case"delete":const s={...o,data:a};n=await r.delete(t,s);break;default:throw new Error(`Unsupported method: ${e}`)}return{responseData:n.data,error:null}}catch(e){if(e.type&&Object.values(r).includes(e.type))return{responseData:null,error:e};return{responseData:null,error:await n(e)}}},l=async(e,a,o)=>{const{data:n,params:i,config:p,errorMessage:l,baseURL:E,cacheOption:g,shouldCache:m}=o||{},y=g?.ttl??s,d=g?.key||c(e,a,i);if(!g?.forceRefresh&&!g?.skipCache){const e=await t.get(d);if(e)return{responseData:e.data,error:null,cacheMeta:{isFromCache:!0,timestamp:e.timestamp,ttl:e.ttl,cacheKey:d}}}const _={...p,...i&&{params:i}},R=await u(e,a,{data:n,config:_,baseURL:E});return!g?.skipCache&&null!=R.responseData&&(!m||m(R.responseData))&&await t.set(d,R.responseData,y),{responseData:R.responseData,error:R.error?{errorMessage:R.error.type===r.INTERNET_DISCONNECTED||R.error.type===r.SLOW_CONNECTION||R.error.type===r.TIMEOUT?R.error.message:R.error.type===r.SERVER_UNREACHABLE?"Unable to connect to server. Please try again later.":l||R.error.message,errorObjData:R.error}:null,cacheMeta:{isFromCache:!1,timestamp:Date.now(),ttl:y,cacheKey:d}}};export{s as DEFAULT_CACHE_TTL,i as createApiInstance,a as fetchOnDemandCitation,c as generateCacheKey,u as makeApiRequest,l as makeApiRequestWithTTLCache};
1
+ import e from"axios";import{apiCache as t}from"./apicache.service.js";import{NetworkErrorType as r}from"../types/onDemandApi.types.js";export{NetworkErrorType}from"../types/onDemandApi.types.js";const a=72e5,s=async(e,t,r,a,s,o,n,i,c,p,u,E,m,g,y,d,_,R,f,h)=>{const N="artifact_chunks"===t||"scanned_doc_citation"===t?"artifact_chunks":t,O="gpt_citation"===t?"string"==typeof h?.citationId?h.citationId:"":p?m:`${N}_${r}`,b="post",C="/api/chat/chatResponse";return l(b,C,{baseURL:o,data:{name:n||"citationsprocessing",organizationName:i,prompt:"",useAgent:{agent_name:c||"ProcessCitationsAgent",metadata:u?R:void 0,arguments:{citation_type:t,is_primary_agent_request:!1,...p&&{check_possible_citation_payload:!1},..."boolean"==typeof f&&{check_possible_citation_payload:f},ui_request_body:{llm_formatted_response:a,request_id:e,max_concurrent_citations:10,citation_id:O,...p&&E&&{ecg_agent_name:E},...p&&g&&{plan_id:g},...p&&y&&{ui_chat_history:y},...u&&d&&{mmvf_list:d},...u&&_&&{files:_},...h&&"object"==typeof h&&!Array.isArray(h)&&h}}}},config:{headers:{"Content-Type":"application/json",...s&&s.trim()&&{Authorization:`Bearer ${s}`}},withCredentials:!0},errorMessage:"Failed to fetch on-demand citation",cacheOption:{key:`${b}:${C}:onDemandCitation:${e}:${t}:${p?m:r}:${p?E:""}:${"gpt_citation"===t?O:""}`},shouldCache:e=>Array.isArray(e?.result?.citations)&&Boolean(e.result.citations[0])})},o=e=>{if(!e||"object"!=typeof e)return;const t=e;return"string"==typeof t.message?t.message:"string"==typeof t.errorMessage?t.errorMessage:"string"==typeof t.error?t.error:t.error&&"object"==typeof t.error&&"string"==typeof t.error.message?t.error.message:"string"==typeof t.details?t.details:t},n=async t=>{if(e.isAxiosError(t)){const e=t;if("ECONNABORTED"===e.code)return{type:r.TIMEOUT,message:"The request took too long to complete. Please try again.",originalError:t};if(e.message.includes("net::ERR_NETWORK_CHANGED")||e.message.includes("net::ERR_INTERNET_DISCONNECTED")||e.message.includes("net::ERR_NAME_NOT_RESOLVED"))return{type:r.INTERNET_DISCONNECTED,message:"Internet connection issue detected. Please check your network.",originalError:t};if(e.message.includes("Network Error")||"ERR_NETWORK"===e.code||e.message.includes("net::ERR_CONNECTION_REFUSED")||e.message.includes("net::ERR_EMPTY_RESPONSE"))return{type:r.SERVER_UNREACHABLE,message:"Unable to connect to server. The service may be down or unreachable.",originalError:t};if(e.response&&e.response.status>=500)return{type:r.SERVER_ERROR,message:`Service Unavailable. Server error (${e.response.status}).`,status:e.response.status,originalError:t};if(e.response&&e.response.status>=400&&e.response.status<500)return{type:r.SERVER_ERROR,message:o(e.response.data)||`Request failed with status code ${e.response.status}`,status:e.response.status,originalError:t}}return{type:r.UNKNOWN_ERROR,message:"An unexpected error occurred. Please try again later.",originalError:t}},i=(t,r=18e4)=>{const a=e.create({baseURL:t,timeout:r});return a.interceptors.request.use(async e=>e,async e=>{const t=await n(e);return Promise.reject(t)}),a.interceptors.response.use(e=>e,async e=>{const t=await n(e);return console.error("API Request Failed:",t),Promise.reject(t)}),a},c=(e,t,r)=>`${e}:${t}:${JSON.stringify(r||{})}`,p=i(),u=async(e,t,a)=>{try{const r=a?.baseURL?i(a.baseURL):p,{data:s,config:o}=a||{};let n;switch(e.toLowerCase()){case"get":n=await r.get(t,o);break;case"post":n=await r.post(t,s,o);break;case"put":n=await r.put(t,s,o);break;case"patch":n=await r.patch(t,s,o);break;case"delete":const a={...o,data:s};n=await r.delete(t,a);break;default:throw new Error(`Unsupported method: ${e}`)}return{responseData:n.data,error:null}}catch(e){if(e.type&&Object.values(r).includes(e.type))return{responseData:null,error:e};return{responseData:null,error:await n(e)}}},l=async(e,s,o)=>{const{data:n,params:i,config:p,errorMessage:l,baseURL:E,cacheOption:m,shouldCache:g}=o||{},y=m?.ttl??a,d=m?.key||c(e,s,i);if(!m?.forceRefresh&&!m?.skipCache){const e=await t.get(d);if(e)return{responseData:e.data,error:null,cacheMeta:{isFromCache:!0,timestamp:e.timestamp,ttl:e.ttl,cacheKey:d}}}const _={...p,...i&&{params:i}},R=await u(e,s,{data:n,config:_,baseURL:E});return!m?.skipCache&&null!=R.responseData&&(!g||g(R.responseData))&&await t.set(d,R.responseData,y),{responseData:R.responseData,error:R.error?{errorMessage:R.error.type===r.INTERNET_DISCONNECTED||R.error.type===r.SLOW_CONNECTION||R.error.type===r.TIMEOUT?R.error.message:R.error.type===r.SERVER_UNREACHABLE?"Unable to connect to server. Please try again later.":l||R.error.message,errorObjData:R.error}:null,cacheMeta:{isFromCache:!1,timestamp:Date.now(),ttl:y,cacheKey:d}}};export{a as DEFAULT_CACHE_TTL,i as createApiInstance,s as fetchOnDemandCitation,c as generateCacheKey,u as makeApiRequest,l as makeApiRequestWithTTLCache};
2
2
  //# sourceMappingURL=onDemandApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onDemandApi.js","sources":["../../src/service/onDemandApi.ts"],"sourcesContent":["\nimport axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from \"axios\";\nimport { apiCache } from \"./apicache.service\";\nimport { NetworkErrorType } from \"../types/onDemandApi.types\";\nimport type {\n NetworkError,\n CachedAPIResponse,\n CacheOptions,\n OnDemandCitationFetchApiResponse,\n UIMediaValidationFeedbackItem,\n} from \"../types/onDemandApi.types\";\n\nexport { NetworkErrorType } from \"../types/onDemandApi.types\";\nexport type {\n NetworkError,\n ApiError,\n StandardAPIResponse,\n CachedAPIResponse,\n OnDemandCitationFetchResponse,\n OnDemandCitationFetchApiResponse,\n CacheOptions,\n} from \"../types/onDemandApi.types\";\n\nexport const DEFAULT_CACHE_TTL = 1000 * 60 * 60 * 2;\n\n\n// on-demand citation fetch — single-shot request that returns the final citations directly\nexport const fetchOnDemandCitation = async (\n requestId: string,\n citationType: string,\n citationNumber: number,\n llmFormattedResponse: string,\n token: string,\n baseUrl:string,\n citationAssistantProcessingName:string,\n orgName:string,\n citationAgentName:string,\n isEcgPayloadActive:boolean,\n isReqPayloadActive:boolean,\n ecg_agent_name:string,\n customCitationId:string, \n plan_id:string,\n ui_chat_history?: any,\n mmvf_list?:UIMediaValidationFeedbackItem[],\n files?: string[],\n metadata?:string,\n checkPossibleCitationPayload?: boolean,\n uiRequestBody?: Record<string, unknown>\n): Promise<CachedAPIResponse<any>> => {\n\n // if(!token || !token.trim()) {\n // throw new Error('Authorization token is required to fetch on-demand citation');\n // }\n\n const normalizedCitationType = citationType === \"artifact_chunks\" || citationType === \"scanned_doc_citation\" ? \"artifact_chunks\" : citationType;\n const citationId =\n citationType === 'gpt_citation'\n ? (typeof uiRequestBody?.citationId === 'string' ? uiRequestBody.citationId : '')\n : isEcgPayloadActive\n ? customCitationId\n : `${normalizedCitationType}_${citationNumber}`;\n \n const method = 'post';\n const endpoint = '/api/chat/chatResponse';\n\n\n return makeApiRequestWithTTLCache<CachedAPIResponse<any>>(\n method,\n endpoint,\n {\n baseURL: baseUrl,\n data: {\n name: citationAssistantProcessingName || 'citationsprocessing',\n organizationName: orgName,\n prompt: '',\n useAgent: {\n agent_name: citationAgentName || 'ProcessCitationsAgent',\n metadata: isReqPayloadActive ? metadata : undefined,\n arguments: {\n citation_type: citationType,\n is_primary_agent_request: false,\n ...(isEcgPayloadActive && {check_possible_citation_payload : false}),\n ...(typeof checkPossibleCitationPayload === 'boolean' && {check_possible_citation_payload: checkPossibleCitationPayload,}),\n ui_request_body: {\n llm_formatted_response: llmFormattedResponse,\n request_id: requestId,\n max_concurrent_citations: 10,\n citation_id: citationId,\n ...(isEcgPayloadActive && ecg_agent_name && {ecg_agent_name}),\n ...(isEcgPayloadActive && plan_id && {plan_id}),\n ...(isEcgPayloadActive && ui_chat_history && {ui_chat_history}),\n ...(isReqPayloadActive && mmvf_list && {mmvf_list}),\n ...(isReqPayloadActive && files && {files}),\n ...(uiRequestBody && typeof uiRequestBody === 'object' && !Array.isArray(uiRequestBody) && uiRequestBody),\n },\n },\n },\n },\n config: {\n headers: {\n 'Content-Type': 'application/json',\n },\n withCredentials: true,\n },\n errorMessage: 'Failed to fetch on-demand citation',\n cacheOption: {\n key: `${method}:${endpoint}:onDemandCitation:${requestId}:${citationType}:${\n isEcgPayloadActive ? customCitationId : citationNumber\n }:${\n isEcgPayloadActive ? ecg_agent_name : ''\n }:${citationType === \"gpt_citation\" ? citationId : ''}`,\n },\n shouldCache: (responseData) => Array.isArray(responseData?.result?.citations) && Boolean(responseData.result.citations[0]),\n }\n );\n};\n\n// legacy on-demand citation fetch — kept for older polling flows that still read from Redis\nexport const getOnDemandCitation = async (\n requestId: string,\n citationType: string,\n citationNumber: number,\n token:string,\n baseUrl:string\n): Promise<OnDemandCitationFetchApiResponse> => {\n return makeApiRequestWithTTLCache<OnDemandCitationFetchApiResponse>(\n 'get',\n '/api/redis/get-single-citations-data',\n {\n baseURL:baseUrl,\n config: {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n },\n params: { request_id: `CitationAgent_${requestId}`, citation_type: citationType, citation_number: citationNumber },\n errorMessage: 'Failed to fetch on-demand citation',\n cacheOption: { ttl: Infinity },\n shouldCache: (data) => data.status === 'ready',\n }\n );\n};\n\nconst extractErrorMessage = (data: unknown): string | undefined => {\n if (!data || typeof data !== 'object') {\n return undefined;\n }\n // Cast to any to avoid TypeScript errors while checking properties\n const errorData = data as any;\n \n // Check for common error message patterns\n if (typeof errorData.message === 'string') {\n return errorData.message;\n }\n \n if (typeof errorData.errorMessage === 'string') {\n return errorData.errorMessage;\n }\n \n if (typeof errorData.error === 'string') {\n return errorData.error;\n }\n \n if (errorData.error && typeof errorData.error === 'object' && typeof errorData.error.message === 'string') {\n return errorData.error.message;\n }\n \n if (typeof errorData.details === 'string') {\n return errorData.details;\n }\n \n return errorData;\n};\n\n\n\n// Helper function to determine error type\nconst determineNetworkErrorType = async (error: any): Promise<NetworkError> => {\n // Check if there's an internet connection first\n // commented out\n // const isConnected = await checkInternetConnection();\n \n // if (!isConnected) {\n // return {\n // type: NetworkErrorType.INTERNET_DISCONNECTED,\n // message: 'No internet connection. Please check your network.',\n // originalError: error,\n // };\n // }\n\n // Axios specific error handling\n if (axios.isAxiosError(error)) {\n const axiosError = error as AxiosError;\n \n // Check for timeout\n if (axiosError.code === 'ECONNABORTED') {\n return {\n type: NetworkErrorType.TIMEOUT,\n message: 'The request took too long to complete. Please try again.',\n originalError: error,\n };\n }\n \n // Client connectivity issues - internet problems detected via error message\n if (axiosError.message.includes('net::ERR_NETWORK_CHANGED') ||\n axiosError.message.includes('net::ERR_INTERNET_DISCONNECTED') ||\n axiosError.message.includes('net::ERR_NAME_NOT_RESOLVED')) {\n return {\n type: NetworkErrorType.INTERNET_DISCONNECTED,\n message: 'Internet connection issue detected. Please check your network.',\n originalError: error,\n };\n }\n \n // Server connectivity issues - server is likely down\n if (axiosError.message.includes('Network Error') || \n axiosError.code === 'ERR_NETWORK' ||\n axiosError.message.includes('net::ERR_CONNECTION_REFUSED') ||\n axiosError.message.includes('net::ERR_EMPTY_RESPONSE')) {\n return {\n type: NetworkErrorType.SERVER_UNREACHABLE,\n message: 'Unable to connect to server. The service may be down or unreachable.',\n originalError: error,\n };\n }\n \n // Server errors (500 range)\n if (axiosError.response && axiosError.response.status >= 500) {\n return {\n type: NetworkErrorType.SERVER_ERROR,\n message: `Service Unavailable. Server error (${axiosError.response.status}).`,\n status: axiosError.response.status,\n originalError: error,\n };\n }\n \n // Client errors (400 range) - these are expected errors\n if (axiosError.response && axiosError.response.status >= 400 && axiosError.response.status < 500) {\n return {\n type: NetworkErrorType.SERVER_ERROR,\n message: extractErrorMessage(axiosError.response.data) || \n `Request failed with status code ${axiosError.response.status}`,\n status: axiosError.response.status,\n originalError: error,\n };\n }\n }\n \n // Default case - unknown error\n return {\n type: NetworkErrorType.UNKNOWN_ERROR,\n message: 'An unexpected error occurred. Please try again later.',\n originalError: error,\n };\n};\n\nexport const createApiInstance = (baseURL?: string, timeout: number = 180000): AxiosInstance => { // 3 mins timeout\n // Create a custom axios instance with interceptors and timeout\n const apiInstance = axios.create({\n baseURL: baseURL,\n timeout: timeout, // Default to 3 mins timeout\n });\n\n // Set up request interceptor for adding headers, etc.\n apiInstance.interceptors.request.use(\n async (config) => {\n \n return config;\n },\n async (error) => {\n const networkError = await determineNetworkErrorType(error);\n return Promise.reject(networkError);\n }\n );\n\n // Set up response interceptor for handling errors\n apiInstance.interceptors.response.use(\n (response: AxiosResponse) => {\n return response;\n },\n async (error: any) => {\n const networkError = await determineNetworkErrorType(error);\n \n // Log errors (you might want to send them to a monitoring service)\n console.error('API Request Failed:', networkError);\n \n // You can also dispatch actions to a global state manager (Redux, etc.)\n // store.dispatch(setNetworkError(networkError));\n \n return Promise.reject(networkError);\n }\n );\n\n return apiInstance;\n};\n\nexport const generateCacheKey = (\n method: string,\n url: string,\n params?: any\n) => `${method}:${url}:${JSON.stringify(params || {})}`;\n\nconst defaultApi = createApiInstance();\n\n\nexport const makeApiRequest = async <T>(\n method: string,\n url: string,\n options?: {\n data?: any,\n config?: AxiosRequestConfig,\n baseURL?: string\n }\n): Promise<{ \n responseData: T | null;\n error: NetworkError | null;\n}> => {\n try {\n // Determine which API instance to use\n const apiInstance = options?.baseURL \n ? createApiInstance(options.baseURL)\n : defaultApi;\n \n const { data, config } = options || {};\n \n let response;\n switch (method.toLowerCase()) {\n case 'get':\n response = await apiInstance.get<T>(url, config);\n break;\n case 'post':\n response = await apiInstance.post<T>(url, data, config);\n break;\n case 'put':\n response = await apiInstance.put<T>(url, data, config);\n break;\n case 'patch':\n response = await apiInstance.patch<T>(url, data, config);\n break;\n case 'delete':\n const deleteConfig = {\n ...config,\n data: data\n };\n response = await apiInstance.delete<T>(url, deleteConfig);\n break;\n default:\n throw new Error(`Unsupported method: ${method}`);\n }\n \n return {\n responseData: response.data,\n error: null,\n };\n } catch (error: any) {\n // The error should already be processed by our interceptor\n if (error.type && Object.values(NetworkErrorType).includes(error.type)) {\n return {\n responseData: null,\n error: error as NetworkError,\n };\n }\n \n // Fallback for unhandled errors\n const networkError = await determineNetworkErrorType(error);\n return {\n responseData: null,\n error: networkError,\n };\n }\n};\n\nexport const makeApiRequestWithTTLCache = async <\n ResponseType extends CachedAPIResponse<any>\n>(\n method: string,\n url: string,\n options?: {\n data?: any;\n params?: any;\n config?: AxiosRequestConfig;\n errorMessage?: string;\n baseURL?: string;\n cacheOption?: CacheOptions;\n // return false to skip writing to cache for this response; defaults to caching all successful responses\n shouldCache?: (responseData: NonNullable<ResponseType['responseData']>) => boolean;\n }\n): Promise<ResponseType> => {\n type ExpectedDataType = NonNullable<ResponseType['responseData']>;\n\n const { data, params, config, errorMessage, baseURL, cacheOption, shouldCache } =\n options || {};\n\n const ttl = cacheOption?.ttl ?? DEFAULT_CACHE_TTL;\n const cacheKey =\n cacheOption?.key || generateCacheKey(method, url, params);\n\n // 1. Try cache\n if (!cacheOption?.forceRefresh && !cacheOption?.skipCache) {\n const cached = await apiCache.get<ExpectedDataType>(cacheKey);\n\n if (cached) {\n return {\n responseData: cached.data,\n error: null,\n cacheMeta: {\n isFromCache: true,\n timestamp: cached.timestamp,\n ttl: cached.ttl,\n cacheKey,\n },\n } as ResponseType;\n }\n }\n\n // 2. Prepare config\n const mergedConfig: AxiosRequestConfig = {\n ...config,\n ...(params && { params }),\n };\n\n // 3. Call API\n const result = await makeApiRequest<ExpectedDataType>(method, url, {\n data,\n config: mergedConfig,\n baseURL,\n });\n\n // 4. Store in cache — skipped if cacheOption.skipCache is set, or if shouldCache returns false\n const allowWrite =\n !cacheOption?.skipCache &&\n result.responseData != null &&\n (shouldCache ? shouldCache(result.responseData) : true);\n\n if (allowWrite) {\n await apiCache.set(cacheKey, result.responseData, ttl);\n }\n\n // 5. Return SAME structure as before + cacheMeta\n return {\n responseData: result.responseData,\n error: result.error\n ? {\n errorMessage:\n result.error.type === NetworkErrorType.INTERNET_DISCONNECTED ||\n result.error.type === NetworkErrorType.SLOW_CONNECTION ||\n result.error.type === NetworkErrorType.TIMEOUT\n ? result.error.message\n : result.error.type === NetworkErrorType.SERVER_UNREACHABLE\n ? \"Unable to connect to server. Please try again later.\"\n : errorMessage || result.error.message,\n errorObjData: result.error,\n }\n : null,\n cacheMeta: {\n isFromCache: false,\n timestamp: Date.now(),\n ttl,\n cacheKey,\n },\n } as ResponseType;\n};\n"],"names":["DEFAULT_CACHE_TTL","fetchOnDemandCitation","async","requestId","citationType","citationNumber","llmFormattedResponse","token","baseUrl","citationAssistantProcessingName","orgName","citationAgentName","isEcgPayloadActive","isReqPayloadActive","ecg_agent_name","customCitationId","plan_id","ui_chat_history","mmvf_list","files","metadata","checkPossibleCitationPayload","uiRequestBody","normalizedCitationType","citationId","method","endpoint","makeApiRequestWithTTLCache","baseURL","data","name","organizationName","prompt","useAgent","agent_name","arguments","citation_type","is_primary_agent_request","check_possible_citation_payload","ui_request_body","llm_formatted_response","request_id","max_concurrent_citations","citation_id","Array","isArray","config","headers","withCredentials","errorMessage","cacheOption","key","shouldCache","responseData","result","citations","Boolean","extractErrorMessage","errorData","message","error","details","determineNetworkErrorType","axios","isAxiosError","axiosError","code","type","NetworkErrorType","TIMEOUT","originalError","includes","INTERNET_DISCONNECTED","SERVER_UNREACHABLE","response","status","SERVER_ERROR","UNKNOWN_ERROR","createApiInstance","timeout","apiInstance","create","interceptors","request","use","networkError","Promise","reject","console","generateCacheKey","url","params","JSON","stringify","defaultApi","makeApiRequest","options","toLowerCase","get","post","put","patch","deleteConfig","delete","Error","Object","values","ttl","cacheKey","forceRefresh","skipCache","cached","apiCache","cacheMeta","isFromCache","timestamp","mergedConfig","set","SLOW_CONNECTION","errorObjData","Date","now"],"mappings":"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"}
1
+ {"version":3,"file":"onDemandApi.js","sources":["../../src/service/onDemandApi.ts"],"sourcesContent":["\nimport axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from \"axios\";\nimport { apiCache } from \"./apicache.service\";\nimport { NetworkErrorType } from \"../types/onDemandApi.types\";\nimport type {\n NetworkError,\n CachedAPIResponse,\n CacheOptions,\n OnDemandCitationFetchApiResponse,\n UIMediaValidationFeedbackItem,\n} from \"../types/onDemandApi.types\";\n\nexport { NetworkErrorType } from \"../types/onDemandApi.types\";\nexport type {\n NetworkError,\n ApiError,\n StandardAPIResponse,\n CachedAPIResponse,\n OnDemandCitationFetchResponse,\n OnDemandCitationFetchApiResponse,\n CacheOptions,\n} from \"../types/onDemandApi.types\";\n\nexport const DEFAULT_CACHE_TTL = 1000 * 60 * 60 * 2;\n\n\n// on-demand citation fetch — single-shot request that returns the final citations directly\nexport const fetchOnDemandCitation = async (\n requestId: string,\n citationType: string,\n citationNumber: number,\n llmFormattedResponse: string,\n token: string,\n baseUrl:string,\n citationAssistantProcessingName:string,\n orgName:string,\n citationAgentName:string,\n isEcgPayloadActive:boolean,\n isReqPayloadActive:boolean,\n ecg_agent_name:string,\n customCitationId:string, \n plan_id:string,\n ui_chat_history?: any,\n mmvf_list?:UIMediaValidationFeedbackItem[],\n files?: string[],\n metadata?:string,\n checkPossibleCitationPayload?: boolean,\n uiRequestBody?: Record<string, unknown>\n): Promise<CachedAPIResponse<any>> => {\n\n // if(!token || !token.trim()) {\n // throw new Error('Authorization token is required to fetch on-demand citation');\n // }\n\n const normalizedCitationType = citationType === \"artifact_chunks\" || citationType === \"scanned_doc_citation\" ? \"artifact_chunks\" : citationType;\n const citationId =\n citationType === 'gpt_citation'\n ? (typeof uiRequestBody?.citationId === 'string' ? uiRequestBody.citationId : '')\n : isEcgPayloadActive\n ? customCitationId\n : `${normalizedCitationType}_${citationNumber}`;\n \n const method = 'post';\n const endpoint = '/api/chat/chatResponse';\n\n\n return makeApiRequestWithTTLCache<CachedAPIResponse<any>>(\n method,\n endpoint,\n {\n baseURL: baseUrl,\n data: {\n name: citationAssistantProcessingName || 'citationsprocessing',\n organizationName: orgName,\n prompt: '',\n useAgent: {\n agent_name: citationAgentName || 'ProcessCitationsAgent',\n metadata: isReqPayloadActive ? metadata : undefined,\n arguments: {\n citation_type: citationType,\n is_primary_agent_request: false,\n ...(isEcgPayloadActive && {check_possible_citation_payload : false}),\n ...(typeof checkPossibleCitationPayload === 'boolean' && {check_possible_citation_payload: checkPossibleCitationPayload,}),\n ui_request_body: {\n llm_formatted_response: llmFormattedResponse,\n request_id: requestId,\n max_concurrent_citations: 10,\n citation_id: citationId,\n ...(isEcgPayloadActive && ecg_agent_name && {ecg_agent_name}),\n ...(isEcgPayloadActive && plan_id && {plan_id}),\n ...(isEcgPayloadActive && ui_chat_history && {ui_chat_history}),\n ...(isReqPayloadActive && mmvf_list && {mmvf_list}),\n ...(isReqPayloadActive && files && {files}),\n ...(uiRequestBody && typeof uiRequestBody === 'object' && !Array.isArray(uiRequestBody) && uiRequestBody),\n },\n },\n },\n },\n config: {\n headers: {\n 'Content-Type': 'application/json',\n ...(token && token.trim() && { Authorization: `Bearer ${token}` }),\n },\n withCredentials: true,\n },\n errorMessage: 'Failed to fetch on-demand citation',\n cacheOption: {\n key: `${method}:${endpoint}:onDemandCitation:${requestId}:${citationType}:${\n isEcgPayloadActive ? customCitationId : citationNumber\n }:${\n isEcgPayloadActive ? ecg_agent_name : ''\n }:${citationType === \"gpt_citation\" ? citationId : ''}`,\n },\n shouldCache: (responseData) => Array.isArray(responseData?.result?.citations) && Boolean(responseData.result.citations[0]),\n }\n );\n};\n\n// legacy on-demand citation fetch — kept for older polling flows that still read from Redis\nexport const getOnDemandCitation = async (\n requestId: string,\n citationType: string,\n citationNumber: number,\n token:string,\n baseUrl:string\n): Promise<OnDemandCitationFetchApiResponse> => {\n return makeApiRequestWithTTLCache<OnDemandCitationFetchApiResponse>(\n 'get',\n '/api/redis/get-single-citations-data',\n {\n baseURL:baseUrl,\n config: {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n },\n params: { request_id: `CitationAgent_${requestId}`, citation_type: citationType, citation_number: citationNumber },\n errorMessage: 'Failed to fetch on-demand citation',\n cacheOption: { ttl: Infinity },\n shouldCache: (data) => data.status === 'ready',\n }\n );\n};\n\nconst extractErrorMessage = (data: unknown): string | undefined => {\n if (!data || typeof data !== 'object') {\n return undefined;\n }\n // Cast to any to avoid TypeScript errors while checking properties\n const errorData = data as any;\n \n // Check for common error message patterns\n if (typeof errorData.message === 'string') {\n return errorData.message;\n }\n \n if (typeof errorData.errorMessage === 'string') {\n return errorData.errorMessage;\n }\n \n if (typeof errorData.error === 'string') {\n return errorData.error;\n }\n \n if (errorData.error && typeof errorData.error === 'object' && typeof errorData.error.message === 'string') {\n return errorData.error.message;\n }\n \n if (typeof errorData.details === 'string') {\n return errorData.details;\n }\n \n return errorData;\n};\n\n\n\n// Helper function to determine error type\nconst determineNetworkErrorType = async (error: any): Promise<NetworkError> => {\n // Check if there's an internet connection first\n // commented out\n // const isConnected = await checkInternetConnection();\n \n // if (!isConnected) {\n // return {\n // type: NetworkErrorType.INTERNET_DISCONNECTED,\n // message: 'No internet connection. Please check your network.',\n // originalError: error,\n // };\n // }\n\n // Axios specific error handling\n if (axios.isAxiosError(error)) {\n const axiosError = error as AxiosError;\n \n // Check for timeout\n if (axiosError.code === 'ECONNABORTED') {\n return {\n type: NetworkErrorType.TIMEOUT,\n message: 'The request took too long to complete. Please try again.',\n originalError: error,\n };\n }\n \n // Client connectivity issues - internet problems detected via error message\n if (axiosError.message.includes('net::ERR_NETWORK_CHANGED') ||\n axiosError.message.includes('net::ERR_INTERNET_DISCONNECTED') ||\n axiosError.message.includes('net::ERR_NAME_NOT_RESOLVED')) {\n return {\n type: NetworkErrorType.INTERNET_DISCONNECTED,\n message: 'Internet connection issue detected. Please check your network.',\n originalError: error,\n };\n }\n \n // Server connectivity issues - server is likely down\n if (axiosError.message.includes('Network Error') || \n axiosError.code === 'ERR_NETWORK' ||\n axiosError.message.includes('net::ERR_CONNECTION_REFUSED') ||\n axiosError.message.includes('net::ERR_EMPTY_RESPONSE')) {\n return {\n type: NetworkErrorType.SERVER_UNREACHABLE,\n message: 'Unable to connect to server. The service may be down or unreachable.',\n originalError: error,\n };\n }\n \n // Server errors (500 range)\n if (axiosError.response && axiosError.response.status >= 500) {\n return {\n type: NetworkErrorType.SERVER_ERROR,\n message: `Service Unavailable. Server error (${axiosError.response.status}).`,\n status: axiosError.response.status,\n originalError: error,\n };\n }\n \n // Client errors (400 range) - these are expected errors\n if (axiosError.response && axiosError.response.status >= 400 && axiosError.response.status < 500) {\n return {\n type: NetworkErrorType.SERVER_ERROR,\n message: extractErrorMessage(axiosError.response.data) || \n `Request failed with status code ${axiosError.response.status}`,\n status: axiosError.response.status,\n originalError: error,\n };\n }\n }\n \n // Default case - unknown error\n return {\n type: NetworkErrorType.UNKNOWN_ERROR,\n message: 'An unexpected error occurred. Please try again later.',\n originalError: error,\n };\n};\n\nexport const createApiInstance = (baseURL?: string, timeout: number = 180000): AxiosInstance => { // 3 mins timeout\n // Create a custom axios instance with interceptors and timeout\n const apiInstance = axios.create({\n baseURL: baseURL,\n timeout: timeout, // Default to 3 mins timeout\n });\n\n // Set up request interceptor for adding headers, etc.\n apiInstance.interceptors.request.use(\n async (config) => {\n \n return config;\n },\n async (error) => {\n const networkError = await determineNetworkErrorType(error);\n return Promise.reject(networkError);\n }\n );\n\n // Set up response interceptor for handling errors\n apiInstance.interceptors.response.use(\n (response: AxiosResponse) => {\n return response;\n },\n async (error: any) => {\n const networkError = await determineNetworkErrorType(error);\n \n // Log errors (you might want to send them to a monitoring service)\n console.error('API Request Failed:', networkError);\n \n // You can also dispatch actions to a global state manager (Redux, etc.)\n // store.dispatch(setNetworkError(networkError));\n \n return Promise.reject(networkError);\n }\n );\n\n return apiInstance;\n};\n\nexport const generateCacheKey = (\n method: string,\n url: string,\n params?: any\n) => `${method}:${url}:${JSON.stringify(params || {})}`;\n\nconst defaultApi = createApiInstance();\n\n\nexport const makeApiRequest = async <T>(\n method: string,\n url: string,\n options?: {\n data?: any,\n config?: AxiosRequestConfig,\n baseURL?: string\n }\n): Promise<{ \n responseData: T | null;\n error: NetworkError | null;\n}> => {\n try {\n // Determine which API instance to use\n const apiInstance = options?.baseURL \n ? createApiInstance(options.baseURL)\n : defaultApi;\n \n const { data, config } = options || {};\n \n let response;\n switch (method.toLowerCase()) {\n case 'get':\n response = await apiInstance.get<T>(url, config);\n break;\n case 'post':\n response = await apiInstance.post<T>(url, data, config);\n break;\n case 'put':\n response = await apiInstance.put<T>(url, data, config);\n break;\n case 'patch':\n response = await apiInstance.patch<T>(url, data, config);\n break;\n case 'delete':\n const deleteConfig = {\n ...config,\n data: data\n };\n response = await apiInstance.delete<T>(url, deleteConfig);\n break;\n default:\n throw new Error(`Unsupported method: ${method}`);\n }\n \n return {\n responseData: response.data,\n error: null,\n };\n } catch (error: any) {\n // The error should already be processed by our interceptor\n if (error.type && Object.values(NetworkErrorType).includes(error.type)) {\n return {\n responseData: null,\n error: error as NetworkError,\n };\n }\n \n // Fallback for unhandled errors\n const networkError = await determineNetworkErrorType(error);\n return {\n responseData: null,\n error: networkError,\n };\n }\n};\n\nexport const makeApiRequestWithTTLCache = async <\n ResponseType extends CachedAPIResponse<any>\n>(\n method: string,\n url: string,\n options?: {\n data?: any;\n params?: any;\n config?: AxiosRequestConfig;\n errorMessage?: string;\n baseURL?: string;\n cacheOption?: CacheOptions;\n // return false to skip writing to cache for this response; defaults to caching all successful responses\n shouldCache?: (responseData: NonNullable<ResponseType['responseData']>) => boolean;\n }\n): Promise<ResponseType> => {\n type ExpectedDataType = NonNullable<ResponseType['responseData']>;\n\n const { data, params, config, errorMessage, baseURL, cacheOption, shouldCache } =\n options || {};\n\n const ttl = cacheOption?.ttl ?? DEFAULT_CACHE_TTL;\n const cacheKey =\n cacheOption?.key || generateCacheKey(method, url, params);\n\n // 1. Try cache\n if (!cacheOption?.forceRefresh && !cacheOption?.skipCache) {\n const cached = await apiCache.get<ExpectedDataType>(cacheKey);\n\n if (cached) {\n return {\n responseData: cached.data,\n error: null,\n cacheMeta: {\n isFromCache: true,\n timestamp: cached.timestamp,\n ttl: cached.ttl,\n cacheKey,\n },\n } as ResponseType;\n }\n }\n\n // 2. Prepare config\n const mergedConfig: AxiosRequestConfig = {\n ...config,\n ...(params && { params }),\n };\n\n // 3. Call API\n const result = await makeApiRequest<ExpectedDataType>(method, url, {\n data,\n config: mergedConfig,\n baseURL,\n });\n\n // 4. Store in cache — skipped if cacheOption.skipCache is set, or if shouldCache returns false\n const allowWrite =\n !cacheOption?.skipCache &&\n result.responseData != null &&\n (shouldCache ? shouldCache(result.responseData) : true);\n\n if (allowWrite) {\n await apiCache.set(cacheKey, result.responseData, ttl);\n }\n\n // 5. Return SAME structure as before + cacheMeta\n return {\n responseData: result.responseData,\n error: result.error\n ? {\n errorMessage:\n result.error.type === NetworkErrorType.INTERNET_DISCONNECTED ||\n result.error.type === NetworkErrorType.SLOW_CONNECTION ||\n result.error.type === NetworkErrorType.TIMEOUT\n ? result.error.message\n : result.error.type === NetworkErrorType.SERVER_UNREACHABLE\n ? \"Unable to connect to server. Please try again later.\"\n : errorMessage || result.error.message,\n errorObjData: result.error,\n }\n : null,\n cacheMeta: {\n isFromCache: false,\n timestamp: Date.now(),\n ttl,\n cacheKey,\n },\n } as ResponseType;\n};\n"],"names":["DEFAULT_CACHE_TTL","fetchOnDemandCitation","async","requestId","citationType","citationNumber","llmFormattedResponse","token","baseUrl","citationAssistantProcessingName","orgName","citationAgentName","isEcgPayloadActive","isReqPayloadActive","ecg_agent_name","customCitationId","plan_id","ui_chat_history","mmvf_list","files","metadata","checkPossibleCitationPayload","uiRequestBody","normalizedCitationType","citationId","method","endpoint","makeApiRequestWithTTLCache","baseURL","data","name","organizationName","prompt","useAgent","agent_name","arguments","citation_type","is_primary_agent_request","check_possible_citation_payload","ui_request_body","llm_formatted_response","request_id","max_concurrent_citations","citation_id","Array","isArray","config","headers","trim","Authorization","withCredentials","errorMessage","cacheOption","key","shouldCache","responseData","result","citations","Boolean","extractErrorMessage","errorData","message","error","details","determineNetworkErrorType","axios","isAxiosError","axiosError","code","type","NetworkErrorType","TIMEOUT","originalError","includes","INTERNET_DISCONNECTED","SERVER_UNREACHABLE","response","status","SERVER_ERROR","UNKNOWN_ERROR","createApiInstance","timeout","apiInstance","create","interceptors","request","use","networkError","Promise","reject","console","generateCacheKey","url","params","JSON","stringify","defaultApi","makeApiRequest","options","toLowerCase","get","post","put","patch","deleteConfig","delete","Error","Object","values","ttl","cacheKey","forceRefresh","skipCache","cached","apiCache","cacheMeta","isFromCache","timestamp","mergedConfig","set","SLOW_CONNECTION","errorObjData","Date","now"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatDrawer.d.ts","sourceRoot":"","sources":["../../../../src/features/ChatDrawer/ChatDrawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyNzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ChatDrawer.d.ts","sourceRoot":"","sources":["../../../../src/features/ChatDrawer/ChatDrawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkPzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -22,6 +22,7 @@ interface IngestionStatusComponentProps {
22
22
  statusMap?: Record<string, string>;
23
23
  customStatusConfigs?: Record<string, CustomChipConfig>;
24
24
  redirectionLink?: string;
25
+ authToken?: string;
25
26
  }
26
27
  export declare const IngestionStatusComponent: React.FC<IngestionStatusComponentProps>;
27
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"IngestionStatusComponent.d.ts","sourceRoot":"","sources":["../../../../src/features/IngestionStatus/IngestionStatusComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,UAAU,wBAAwB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;CAE1B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAyDlE,CAAC;AAKF,UAAU,6BAA6B;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAE1B;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAyC5E,CAAC"}
1
+ {"version":3,"file":"IngestionStatusComponent.d.ts","sourceRoot":"","sources":["../../../../src/features/IngestionStatus/IngestionStatusComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,UAAU,wBAAwB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;CAE1B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAyDlE,CAAC;AAKF,UAAU,6BAA6B;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CAEpB;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CA2C5E,CAAC"}
@@ -31,7 +31,7 @@ export interface WebSocketIngestionData {
31
31
  queued: number;
32
32
  };
33
33
  }
34
- export declare function useIngestionWebSocket(ingestionId: string | null, wsBaseUrl?: string): {
34
+ export declare function useIngestionWebSocket(ingestionId: string | null, wsBaseUrl?: string, authToken?: string): {
35
35
  data: WebSocketIngestionData | null;
36
36
  connected: boolean;
37
37
  error: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"useIngestionStatus.d.ts","sourceRoot":"","sources":["../../../../src/features/IngestionStatus/useIngestionStatus.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,cAAc,CAAC,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AA+GD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;EAqEnF"}
1
+ {"version":3,"file":"useIngestionStatus.d.ts","sourceRoot":"","sources":["../../../../src/features/IngestionStatus/useIngestionStatus.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,cAAc,CAAC,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAmHD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;EAqEvG"}
@@ -1,4 +1,4 @@
1
- import { SpecialZoomLevel, PageChangeEvent, DocumentLoadEvent, RenderPage, SetRenderRange } from "@react-pdf-viewer/core";
1
+ import { SpecialZoomLevel, PageChangeEvent, DocumentLoadEvent, RenderPage, SetRenderRange, type LoadError } from "@react-pdf-viewer/core";
2
2
  import { CustomStylesType } from "./PdfViewer";
3
3
  export declare const pdfWorker: string;
4
4
  type Props = {
@@ -10,7 +10,8 @@ type Props = {
10
10
  defaultScale?: SpecialZoomLevel | number | undefined;
11
11
  renderPage?: RenderPage;
12
12
  setRenderRange?: SetRenderRange;
13
+ onError?: (error: LoadError) => void;
13
14
  };
14
- declare const PdfContainer: ({ pdfUrl, plugins, onLoad, customStyles, onPageChange, defaultScale, renderPage, setRenderRange }: Props) => import("react").JSX.Element;
15
+ declare const PdfContainer: ({ pdfUrl, plugins, onLoad, customStyles, onPageChange, defaultScale, renderPage, setRenderRange, onError }: Props) => import("react").JSX.Element;
15
16
  export default PdfContainer;
16
17
  //# sourceMappingURL=PdfContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PdfContainer.d.ts","sourceRoot":"","sources":["../../../../src/features/PdfViewer/PdfContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE1I,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,eAAO,MAAM,SAAS,EAAE,MAAwE,CAAC;AAEjG,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,YAAY,EAAI,CAAC,CAAC,EAAG,eAAe,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;IACrD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF,QAAA,MAAM,YAAY,sGAAsG,KAAK,gCAgB5H,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"PdfContainer.d.ts","sourceRoot":"","sources":["../../../../src/features/PdfViewer/PdfContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE1J,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAO,MAAM,SAAS,EAAE,MAAwE,CAAC;AAEjG,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,YAAY,EAAI,CAAC,CAAC,EAAG,eAAe,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;IACrD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC,CAAC;AAeF,QAAA,MAAM,YAAY,+GAA+G,KAAK,gCAiBrI,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,4 +1,4 @@
1
- import { RenderPage, SetRenderRange } from "@react-pdf-viewer/core";
1
+ import { RenderPage, SetRenderRange, type LoadError } from "@react-pdf-viewer/core";
2
2
  import "@react-pdf-viewer/zoom/lib/styles/index.css";
3
3
  import "@react-pdf-viewer/page-navigation/lib/styles/index.css";
4
4
  import "@react-pdf-viewer/core/lib/styles/index.css";
@@ -80,6 +80,7 @@ export interface PdfViewerProps {
80
80
  disablePdfTextLayer?: boolean;
81
81
  renderPage?: RenderPage;
82
82
  setRenderRange?: SetRenderRange;
83
+ onError?: (error: LoadError) => void;
83
84
  }
84
85
  export type HighlightArea = {
85
86
  pageIndex: number;
@@ -89,6 +90,6 @@ export type HighlightArea = {
89
90
  height: number;
90
91
  pageNumber?: number;
91
92
  };
92
- declare const PdfViewer: ({ pdfUrl, highlightText, highlightPages, highlightCordinatePages, highlightColor, activeHighlightColor, jumpToPageValue, pdfName, onClose, customStyles, customClasses, customIcons, useCoordinates, fallbackPages, activeCitationIndex, onActiveCitationChange, headerAction, isZoomEnabled, showHighlightsAction, defaultScale, useRange, rangeOfPages, showFullScreenAction, showRotateButton, segments, segmentTooltipText, onCurrentPageChange, navigationRequest, onNavigationSettled, disablePdfAnnotations, disablePdfTextLayer, renderPage, setRenderRange, }: PdfViewerProps) => React.JSX.Element;
93
+ declare const PdfViewer: ({ pdfUrl, highlightText, highlightPages, highlightCordinatePages, highlightColor, activeHighlightColor, jumpToPageValue, pdfName, onClose, customStyles, customClasses, customIcons, useCoordinates, fallbackPages, activeCitationIndex, onActiveCitationChange, headerAction, isZoomEnabled, showHighlightsAction, defaultScale, useRange, rangeOfPages, showFullScreenAction, showRotateButton, segments, segmentTooltipText, onCurrentPageChange, navigationRequest, onNavigationSettled, disablePdfAnnotations, disablePdfTextLayer, renderPage, setRenderRange, onError }: PdfViewerProps) => React.JSX.Element;
93
94
  export default PdfViewer;
94
95
  //# sourceMappingURL=PdfViewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PdfViewer.d.ts","sourceRoot":"","sources":["../../../../src/features/PdfViewer/PdfViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PdfViewer.d.ts","sourceRoot":"","sources":["../../../../src/features/PdfViewer/PdfViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,UAAU,EAAE,cAAc,EAAoB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAM1I,OAAO,6CAA6C,CAAC;AACrD,OAAO,wDAAwD,CAAC;AAChE,OAAO,6CAA6C,CAAC;AACrD,OAAO,+CAA+C,CAAC;AACvD,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAA2B,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC5F,OAAO,iBAAiB,CAAC;AAEzB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,cAAc,GACf,YAAY,GACZ,SAAS,GACT,WAAW,GACX,MAAM,CAAC;AACX,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,uBAAuB,EAAE,aAAa,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAChD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACjE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC;AAoBD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,QAAA,MAAM,SAAS,mjBA0CZ,cAAc,sBAwoBhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -13,6 +13,7 @@ export declare const PdfHighlightControls: (highlightText: string[], highlightPa
13
13
  hideNonTargetHighlights: (targetPages: Set<number>) => void;
14
14
  deduplicateHighlights: (targetPage: number) => number | undefined;
15
15
  scrollToCoord: (pageIndex: number, top: number, height?: number) => void;
16
+ scrollToCoordAfterNav: (pageIndex: number, top: number, height?: number) => void;
16
17
  plugins: (import("@react-pdf-viewer/page-navigation").PageNavigationPlugin | import("@react-pdf-viewer/zoom").ZoomPlugin | import("@react-pdf-viewer/highlight").HighlightPlugin | import("@react-pdf-viewer/search").SearchPlugin)[];
17
18
  controls: {
18
19
  CurrentScale: (props: import("@react-pdf-viewer/zoom").CurrentScaleProps) => React.ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"usePdfHighlight.d.ts","sourceRoot":"","sources":["../../../../src/features/PdfViewer/usePdfHighlight.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAM5C,eAAO,MAAM,oBAAoB,kBAChB,MAAM,EAAE,kBACP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAC3B,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,oBAC9B,GAAG,CAAC,MAAM,CAAC,kBACb,OAAO,2BACE,aAAa,EAAE;;;;;;;+BAgPP,MAAM,KAAG,MAAM;;;;2CAwmBH,GAAG,CAAC,MAAM,CAAC;wCAxiBd,MAAM;+BAyuBf,MAAM,OAAO,MAAM;;;qFA9/BhD,MAEL,YAAQ;oFAUN,MAAI,YACR;;;;;CA2tCC,CAAC"}
1
+ {"version":3,"file":"usePdfHighlight.d.ts","sourceRoot":"","sources":["../../../../src/features/PdfViewer/usePdfHighlight.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAM5C,eAAO,MAAM,oBAAoB,kBAChB,MAAM,EAAE,kBACP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAC3B,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,oBAC9B,GAAG,CAAC,MAAM,CAAC,kBACb,OAAO,2BACE,aAAa,EAAE;;;;;;;+BAiPP,MAAM,KAAG,MAAM;;;;2CAwmBH,GAAG,CAAC,MAAM,CAAC;wCAxiBd,MAAM;+BAyuBf,MAAM,OAAO,MAAM;uCAoFb,MAAM,OAAO,MAAM;;;qFAplC5C,MAAO,YACnB;oFAYQ,MAAO,YAAY;;;;;CAuuC/B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface ApprovalDescriptionBannerProps {
3
+ icon: ReactNode;
4
+ description: string;
5
+ }
6
+ /**
7
+ * Green confirmation banner shown above the revert action, e.g.
8
+ * "A reviewer confirmed this document's page range."
9
+ */
10
+ export default function ApprovalDescriptionBanner({ icon, description, }: ApprovalDescriptionBannerProps): import("react").JSX.Element;
11
+ //# sourceMappingURL=ApprovalDescriptionBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApprovalDescriptionBanner.d.ts","sourceRoot":"","sources":["../../../../src/features/SegmentReviewComponents/ApprovalDescriptionBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,IAAI,EACJ,WAAW,GACZ,EAAE,8BAA8B,+BAkChC"}
@@ -23,11 +23,16 @@ export interface CognitiveIntegrityProps {
23
23
  maxWidth?: number | string;
24
24
  className?: string;
25
25
  styles?: CognitiveIntegrityStyles;
26
+ /**
27
+ * Optional host renderer for reason text. Use this when reason strings contain
28
+ * application-specific citation anchors that need interactive UI.
29
+ */
30
+ renderReason?: (text: string) => ReactNode;
26
31
  }
27
32
  export interface CognitiveIntegrityReason {
28
33
  text: string;
29
34
  type: string;
30
35
  }
31
36
  /** Compact popup content for displaying review reason and gap as Markdown. */
32
- export default function CognitiveIntegrity({ reasons, reason, gap, score: cognitiveScore, headerName, onBack, onClose, showCloseButton, width, maxWidth, className, styles, }: CognitiveIntegrityProps): import("react").JSX.Element | null;
37
+ export default function CognitiveIntegrity({ reasons, reason, gap, score: cognitiveScore, headerName, onBack, onClose, showCloseButton, width, maxWidth, className, styles, renderReason, }: CognitiveIntegrityProps): import("react").JSX.Element | null;
33
38
  //# sourceMappingURL=CognitiveIntegrity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CognitiveIntegrity.d.ts","sourceRoot":"","sources":["../../../../src/features/SegmentReviewComponents/CognitiveIntegrity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAyB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,sCAAsC,CAAC;AAY9C,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,SAAS,wBAAwB,EAAE,GAAG,IAAI,CAAC;IACrD,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AA8CD,8EAA8E;AAC9E,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EAAE,cAAc,EACrB,UAAkC,EAClC,MAAM,EACN,OAAO,EACP,eAAsB,EACtB,KAAW,EACX,QAAc,EACd,SAAS,EACT,MAAM,GACP,EAAE,uBAAuB,sCA+QzB"}
1
+ {"version":3,"file":"CognitiveIntegrity.d.ts","sourceRoot":"","sources":["../../../../src/features/SegmentReviewComponents/CognitiveIntegrity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAyB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,sCAAsC,CAAC;AAY9C,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,SAAS,wBAAwB,EAAE,GAAG,IAAI,CAAC;IACrD,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AA8CD,8EAA8E;AAC9E,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EAAE,cAAc,EACrB,UAAkC,EAClC,MAAM,EACN,OAAO,EACP,eAAsB,EACtB,KAAW,EACX,QAAc,EACd,SAAS,EACT,MAAM,EACN,YAAY,GACb,EAAE,uBAAuB,sCA6RzB"}
@@ -1,4 +1,5 @@
1
1
  import { type ReactNode } from 'react';
2
+ import { type SaveAsLearningResult } from './SaveAsLearningCard';
2
3
  export interface SegmentData {
3
4
  title: string;
4
5
  startPage: number;
@@ -26,6 +27,13 @@ export interface RevertCardProps {
26
27
  confirmDisabled?: boolean;
27
28
  /** Hide when the surrounding reviewed-card shell already renders it. */
28
29
  showDocumentHeader?: boolean;
30
+ /**
31
+ * When provided, renders the "save as learning example" affordance
32
+ * above the revert button, right below the description banner.
33
+ */
34
+ onSaveAsLearning?: () => void | SaveAsLearningResult | Promise<void | SaveAsLearningResult>;
35
+ onSaveAsLearningError?: (error: unknown) => void;
36
+ saveAsLearningDisabled?: boolean;
29
37
  }
30
38
  /**
31
39
  * Displays an approved action summary and reveals the appropriate revert
@@ -33,5 +41,5 @@ export interface RevertCardProps {
33
41
  * collection represents keep-as-is; structural changes provide the segments
34
42
  * that will be restored after reverting.
35
43
  */
36
- export default function RevertCard({ icon, title, pageRange, description, onRevert, onRevertComplete, onRevertError, revertData, confirmDisabled, showDocumentHeader, }: RevertCardProps): import("react").JSX.Element;
44
+ export default function RevertCard({ icon, title, pageRange, description, onRevert, onRevertComplete, onRevertError, revertData, confirmDisabled, showDocumentHeader, onSaveAsLearning, onSaveAsLearningError, saveAsLearningDisabled, }: RevertCardProps): import("react").JSX.Element;
37
45
  //# sourceMappingURL=RevertCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RevertCard.d.ts","sourceRoot":"","sources":["../../../../src/features/SegmentReviewComponents/RevertCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAUjD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,WAAW,CAAC;IAC5B,gBAAgB,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,IAAI,GAAG,kBAAkB,GAAG,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAC,CAAC;IAC/E,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,kBAAkB,KAAK,IAAI,CAAC;IAC/D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AA8BD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,eAAuB,EACvB,kBAAyB,GAC1B,EAAE,eAAe,+BAgPjB"}
1
+ {"version":3,"file":"RevertCard.d.ts","sourceRoot":"","sources":["../../../../src/features/SegmentReviewComponents/RevertCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAUjD,OAA2B,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAErF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,WAAW,CAAC;IAC5B,gBAAgB,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,IAAI,GAAG,kBAAkB,GAAG,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAC,CAAC;IAC/E,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,kBAAkB,KAAK,IAAI,CAAC;IAC/D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,oBAAoB,GAAG,OAAO,CAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC;IAC5F,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AA8BD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,eAAuB,EACvB,kBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,sBAA8B,GAC/B,EAAE,eAAe,+BAkMjB"}
@@ -0,0 +1,16 @@
1
+ export interface SaveAsLearningResult {
2
+ success?: boolean;
3
+ message?: string | null;
4
+ }
5
+ export interface SaveAsLearningCardProps {
6
+ onSave: () => void | SaveAsLearningResult | Promise<void | SaveAsLearningResult>;
7
+ onSaveComplete?: (result: void | SaveAsLearningResult) => void;
8
+ onSaveError?: (error: unknown) => void;
9
+ disabled?: boolean;
10
+ label?: string;
11
+ savingLabel?: string;
12
+ tooltip?: string;
13
+ isSaved?: boolean;
14
+ }
15
+ export default function SaveAsLearningCard({ onSave, onSaveComplete, onSaveError, disabled, label, savingLabel, tooltip, isSaved: persistedIsSaved, }: SaveAsLearningCardProps): import("react").JSX.Element;
16
+ //# sourceMappingURL=SaveAsLearningCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveAsLearningCard.d.ts","sourceRoot":"","sources":["../../../../src/features/SegmentReviewComponents/SaveAsLearningCard.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,IAAI,GAAG,oBAAoB,GAAG,OAAO,CAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC;IACjF,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,oBAAoB,KAAK,IAAI,CAAC;IAC/D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,MAAM,EACN,cAAc,EACd,WAAW,EACX,QAAgB,EAChB,KAA0B,EAC1B,WAAqC,EACrC,OAAkE,EAClE,OAAO,EAAE,gBAAwB,GAClC,EAAE,uBAAuB,+BA6DzB"}
@@ -5,6 +5,7 @@ import { type LabelReviewAction, type LabelReviewConfirmDetails } from './LabelC
5
5
  import { type PageCheckAction, type PageCheckConfirmDetails } from './PageCheck';
6
6
  import { type SegmentRevertInfo, type SegmentReviewSource } from './reviewStepAdapters';
7
7
  import { type RevertActionResult } from './RevertCard';
8
+ import { type SaveAsLearningResult } from './SaveAsLearningCard';
8
9
  type ForwardedPdfViewerProps = Partial<Omit<PdfViewerProps, 'pdfUrl' | 'pdfName' | 'segments' | 'onCurrentPageChange' | 'navigationRequest' | 'onNavigationSettled' | 'renderPage' | 'setRenderRange'>>;
9
10
  export type ReviewConfidence = 'low' | 'medium' | 'high';
10
11
  export type ReviewConfidenceFilter = 'low' | 'high' | 'all';
@@ -95,6 +96,17 @@ export interface SegmentReviewPdfWrapperProps {
95
96
  * current segment does not include revert metadata.
96
97
  */
97
98
  onRevert?: (revert: SegmentRevertInfo | null, context: SegmentReviewActionContext) => void | RevertActionResult | Promise<void | RevertActionResult>;
99
+ /**
100
+ * Persist a confirmed review decision as an instant-learning example.
101
+ * The wrapper supplies the operation id (when available) and review
102
+ * context; the host owns the instant-learning id, auth token, and the
103
+ * actual request.
104
+ */
105
+ onSaveAsLearning?: (details: {
106
+ operationId: string | null;
107
+ }, context: SegmentReviewActionContext) => void | SaveAsLearningResult | Promise<void | SaveAsLearningResult>;
108
+ /** Review IDs already persisted as learning examples by the host. */
109
+ savedLearningReviewIds?: readonly string[];
98
110
  /** Called when a badge is selected, with its complete source segment. */
99
111
  onActiveReviewChange?: (reviewId: string | null, segment: SegmentReviewSource | null) => void;
100
112
  onBadgeSelected?: (data: SelectedBadgeData) => void;
@@ -102,6 +114,11 @@ export interface SegmentReviewPdfWrapperProps {
102
114
  onActionError?: (error: unknown, context: SegmentReviewActionContext) => void;
103
115
  onAdjustManually?: (context: SegmentReviewActionContext) => void;
104
116
  onCognitiveClick?: (context: SegmentReviewActionContext) => void;
117
+ /**
118
+ * Renders evidence and gap text in the Cognitive Integrity popup. Hosts can
119
+ * use this to replace citation anchor markup with their interactive citation UI.
120
+ */
121
+ renderCognitiveReason?: (text: string) => React.ReactNode;
105
122
  className?: string;
106
123
  style?: CSSProperties;
107
124
  viewerStyle?: CSSProperties;
@@ -116,11 +133,12 @@ export interface SegmentReviewPdfWrapperProps {
116
133
  manualPrompt?: string;
117
134
  /** Closes any review card, Cognitive Integrity panel, or review popup. */
118
135
  closePopups?: boolean;
136
+ onPdfLoadError?: PdfViewerProps['onError'];
119
137
  }
120
138
  /**
121
139
  * Orchestrates the PDF, review badges, page navigation, active card and actions.
122
140
  * It consumes backend-shaped segments directly; cards never parse the raw payload.
123
141
  */
124
- export default function SegmentReviewPdfWrapper({ pdfUrl, pdfName, segments, totalPages, styles, pdfViewerProps, specialZoomLevel, showBadges, sortByConfidence, filterByConfidence, showBadgeNavigation, autoSelectReviewOnPageChange, autoAdvanceAfterConfirm, autoAdvanceScoreBand, badgePreloadPages, badgeOffsetTop, badgeOffsetRight, badgeOffsetLeft, initialReviewId, manualPrompt, heightBuffer, onBoundaryAction, onLabelAction, onPageAction, onPageTypeRevert, onRevert, onActiveReviewChange, onCurrentPageChange, onActionError, disableAllActions, disablePdfAnnotations, disablePdfTextLayer, disableTitleCheckUntilBoundaryCheckCompleted, onAdjustManually, onCognitiveClick, className, style, viewerStyle, railStyle, redirectionData, onBadgeSelected, closePopups, }: SegmentReviewPdfWrapperProps): import("react").JSX.Element;
142
+ export default function SegmentReviewPdfWrapper({ pdfUrl, pdfName, segments, totalPages, styles, pdfViewerProps, specialZoomLevel, showBadges, sortByConfidence, filterByConfidence, showBadgeNavigation, autoSelectReviewOnPageChange, autoAdvanceAfterConfirm, autoAdvanceScoreBand, badgePreloadPages, badgeOffsetTop, badgeOffsetRight, badgeOffsetLeft, initialReviewId, manualPrompt, heightBuffer, onBoundaryAction, onLabelAction, onPageAction, onPageTypeRevert, onRevert, onActiveReviewChange, onCurrentPageChange, onActionError, disableAllActions, disablePdfAnnotations, disablePdfTextLayer, disableTitleCheckUntilBoundaryCheckCompleted, onAdjustManually, onCognitiveClick, renderCognitiveReason, className, style, viewerStyle, railStyle, redirectionData, onBadgeSelected, onSaveAsLearning, savedLearningReviewIds, closePopups, onPdfLoadError, }: SegmentReviewPdfWrapperProps): import("react").JSX.Element;
125
143
  export {};
126
144
  //# sourceMappingURL=SegmentReviewPdfWrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentReviewPdfWrapper.d.ts","sourceRoot":"","sources":["../../../../src/features/SegmentReviewComponents/SegmentReviewPdfWrapper.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SegmentReviewPdfWrapper.d.ts","sourceRoot":"","sources":["../../../../src/features/SegmentReviewComponents/SegmentReviewPdfWrapper.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOnDemandCitationFetch.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOnDemandCitationFetch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,yCAAyC,CAAC;AAEjD,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AA2EjD,eAAO,MAAM,wBAAwB,uIAUlC,8BAA8B;;;;;;;CAuGhC,CAAC"}
1
+ {"version":3,"file":"useOnDemandCitationFetch.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOnDemandCitationFetch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,yCAAyC,CAAC;AAEjD,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AA2EjD,eAAO,MAAM,wBAAwB,uIAUlC,8BAA8B;;;;;;;CAsGhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"onDemandApi.d.ts","sourceRoot":"","sources":["../../../src/service/onDemandApi.ts"],"names":[],"mappings":"AACA,OAAc,EAAc,aAAa,EAAE,kBAAkB,EAAiB,MAAM,OAAO,CAAC;AAG5F,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,gCAAgC,EAChC,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,6BAA6B,EAC7B,gCAAgC,EAChC,YAAY,GACb,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,iBAAiB,QAAqB,CAAC;AAIpD,eAAO,MAAM,qBAAqB,cACrB,MAAM,gBACH,MAAM,kBACJ,MAAM,wBACA,MAAM,SACrB,MAAM,WACL,MAAM,mCACkB,MAAM,WAC9B,MAAM,qBACI,MAAM,sBACL,OAAO,sBACP,OAAO,kBACX,MAAM,oBACJ,MAAM,WACf,MAAM,oBACI,GAAG,cACV,6BAA6B,EAAE,UAClC,MAAM,EAAE,aACN,MAAM,iCACe,OAAO,kBACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACtC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAmEhC,CAAC;AAGF,eAAO,MAAM,mBAAmB,cACnB,MAAM,gBACH,MAAM,kBACJ,MAAM,SAChB,MAAM,WACJ,MAAM,KACb,OAAO,CAAC,gCAAgC,CAiB1C,CAAC;AAmHF,eAAO,MAAM,iBAAiB,aAAc,MAAM,YAAW,MAAM,KAAY,aAsC9E,CAAC;AAEF,eAAO,MAAM,gBAAgB,WACnB,MAAM,OACT,MAAM,WACF,GAAG,WACyC,CAAC;AAKxD,eAAO,MAAM,cAAc,GAAU,CAAC,UAC5B,MAAM,OACT,MAAM,YACD;IACR,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,KACA,OAAO,CAAC;IACT,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CAC5B,CAsDA,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,YAAY,SAAS,iBAAiB,CAAC,GAAG,CAAC,UAEnC,MAAM,OACT,MAAM,YACD;IACR,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,YAAY,CAAC;IAE3B,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,KAAK,OAAO,CAAC;CACpF,KACA,OAAO,CAAC,YAAY,CA0EtB,CAAC"}
1
+ {"version":3,"file":"onDemandApi.d.ts","sourceRoot":"","sources":["../../../src/service/onDemandApi.ts"],"names":[],"mappings":"AACA,OAAc,EAAc,aAAa,EAAE,kBAAkB,EAAiB,MAAM,OAAO,CAAC;AAG5F,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,gCAAgC,EAChC,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,6BAA6B,EAC7B,gCAAgC,EAChC,YAAY,GACb,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,iBAAiB,QAAqB,CAAC;AAIpD,eAAO,MAAM,qBAAqB,cACrB,MAAM,gBACH,MAAM,kBACJ,MAAM,wBACA,MAAM,SACrB,MAAM,WACL,MAAM,mCACkB,MAAM,WAC9B,MAAM,qBACI,MAAM,sBACL,OAAO,sBACP,OAAO,kBACX,MAAM,oBACJ,MAAM,WACf,MAAM,oBACI,GAAG,cACV,6BAA6B,EAAE,UAClC,MAAM,EAAE,aACN,MAAM,iCACe,OAAO,kBACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACtC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAoEhC,CAAC;AAGF,eAAO,MAAM,mBAAmB,cACnB,MAAM,gBACH,MAAM,kBACJ,MAAM,SAChB,MAAM,WACJ,MAAM,KACb,OAAO,CAAC,gCAAgC,CAiB1C,CAAC;AAmHF,eAAO,MAAM,iBAAiB,aAAc,MAAM,YAAW,MAAM,KAAY,aAsC9E,CAAC;AAEF,eAAO,MAAM,gBAAgB,WACnB,MAAM,OACT,MAAM,WACF,GAAG,WACyC,CAAC;AAKxD,eAAO,MAAM,cAAc,GAAU,CAAC,UAC5B,MAAM,OACT,MAAM,YACD;IACR,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,KACA,OAAO,CAAC;IACT,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CAC5B,CAsDA,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,YAAY,SAAS,iBAAiB,CAAC,GAAG,CAAC,UAEnC,MAAM,OACT,MAAM,YACD;IACR,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,YAAY,CAAC;IAE3B,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,KAAK,OAAO,CAAC;CACpF,KACA,OAAO,CAAC,YAAY,CA0EtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e-llm-studio/citation",
3
- "version": "0.0.252",
3
+ "version": "0.0.254",
4
4
  "author": "Devesh Patel",
5
5
  "description": "Reusable React components for rendering citations and evidence UI.",
6
6
  "license": "MIT",