keywordgraph-mcp-server 1.6.1

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 (228) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +629 -0
  3. package/bin/infranodus-mcp-server.js +8 -0
  4. package/bin/keywordgraph-mcp-server.js +8 -0
  5. package/bin/mcp-server.js +56 -0
  6. package/dist/api/client.d.ts +3 -0
  7. package/dist/api/client.d.ts.map +1 -0
  8. package/dist/api/client.js +30 -0
  9. package/dist/api/client.js.map +1 -0
  10. package/dist/api/config-store.d.ts +4 -0
  11. package/dist/api/config-store.d.ts.map +1 -0
  12. package/dist/api/config-store.js +12 -0
  13. package/dist/api/config-store.js.map +1 -0
  14. package/dist/auth/oauth-provider.d.ts +56 -0
  15. package/dist/auth/oauth-provider.d.ts.map +1 -0
  16. package/dist/auth/oauth-provider.js +295 -0
  17. package/dist/auth/oauth-provider.js.map +1 -0
  18. package/dist/auth/types.d.ts +93 -0
  19. package/dist/auth/types.d.ts.map +1 -0
  20. package/dist/auth/types.js +5 -0
  21. package/dist/auth/types.js.map +1 -0
  22. package/dist/config/brand.d.ts +58 -0
  23. package/dist/config/brand.d.ts.map +1 -0
  24. package/dist/config/brand.js +97 -0
  25. package/dist/config/brand.js.map +1 -0
  26. package/dist/config/index.d.ts +26 -0
  27. package/dist/config/index.d.ts.map +1 -0
  28. package/dist/config/index.js +20 -0
  29. package/dist/config/index.js.map +1 -0
  30. package/dist/http-server.d.ts +6 -0
  31. package/dist/http-server.d.ts.map +1 -0
  32. package/dist/http-server.js +907 -0
  33. package/dist/http-server.js.map +1 -0
  34. package/dist/index.d.ts +29 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +136 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/instructions.d.ts +11 -0
  39. package/dist/instructions.d.ts.map +1 -0
  40. package/dist/instructions.js +38 -0
  41. package/dist/instructions.js.map +1 -0
  42. package/dist/prompts/index.d.ts +24 -0
  43. package/dist/prompts/index.d.ts.map +1 -0
  44. package/dist/prompts/index.js +394 -0
  45. package/dist/prompts/index.js.map +1 -0
  46. package/dist/resources/about.d.ts +17 -0
  47. package/dist/resources/about.d.ts.map +1 -0
  48. package/dist/resources/about.js +64 -0
  49. package/dist/resources/about.js.map +1 -0
  50. package/dist/resources/llms-txt.d.ts +33 -0
  51. package/dist/resources/llms-txt.d.ts.map +1 -0
  52. package/dist/resources/llms-txt.js +65 -0
  53. package/dist/resources/llms-txt.js.map +1 -0
  54. package/dist/schemas/index.d.ts +1178 -0
  55. package/dist/schemas/index.d.ts.map +1 -0
  56. package/dist/schemas/index.js +1121 -0
  57. package/dist/schemas/index.js.map +1 -0
  58. package/dist/tools/addMemory.d.ts +36 -0
  59. package/dist/tools/addMemory.d.ts.map +1 -0
  60. package/dist/tools/addMemory.js +82 -0
  61. package/dist/tools/addMemory.js.map +1 -0
  62. package/dist/tools/analyzeExistingGraph.d.ts +37 -0
  63. package/dist/tools/analyzeExistingGraph.d.ts.map +1 -0
  64. package/dist/tools/analyzeExistingGraph.js +85 -0
  65. package/dist/tools/analyzeExistingGraph.js.map +1 -0
  66. package/dist/tools/analyzeLlmResults.d.ts +37 -0
  67. package/dist/tools/analyzeLlmResults.d.ts.map +1 -0
  68. package/dist/tools/analyzeLlmResults.js +165 -0
  69. package/dist/tools/analyzeLlmResults.js.map +1 -0
  70. package/dist/tools/analyzeText.d.ts +36 -0
  71. package/dist/tools/analyzeText.d.ts.map +1 -0
  72. package/dist/tools/analyzeText.js +97 -0
  73. package/dist/tools/analyzeText.js.map +1 -0
  74. package/dist/tools/createKnowledgeGraph.d.ts +36 -0
  75. package/dist/tools/createKnowledgeGraph.d.ts.map +1 -0
  76. package/dist/tools/createKnowledgeGraph.js +105 -0
  77. package/dist/tools/createKnowledgeGraph.js.map +1 -0
  78. package/dist/tools/developConceptualBridges.d.ts +34 -0
  79. package/dist/tools/developConceptualBridges.d.ts.map +1 -0
  80. package/dist/tools/developConceptualBridges.js +107 -0
  81. package/dist/tools/developConceptualBridges.js.map +1 -0
  82. package/dist/tools/developLatentConcepts copy.d.ts +27 -0
  83. package/dist/tools/developLatentConcepts copy.d.ts.map +1 -0
  84. package/dist/tools/developLatentConcepts copy.js +68 -0
  85. package/dist/tools/developLatentConcepts copy.js.map +1 -0
  86. package/dist/tools/developLatentConcepts.d.ts +27 -0
  87. package/dist/tools/developLatentConcepts.d.ts.map +1 -0
  88. package/dist/tools/developLatentConcepts.js +68 -0
  89. package/dist/tools/developLatentConcepts.js.map +1 -0
  90. package/dist/tools/developLatentTopics.d.ts +34 -0
  91. package/dist/tools/developLatentTopics.d.ts.map +1 -0
  92. package/dist/tools/developLatentTopics.js +107 -0
  93. package/dist/tools/developLatentTopics.js.map +1 -0
  94. package/dist/tools/developTextTool.d.ts +39 -0
  95. package/dist/tools/developTextTool.d.ts.map +1 -0
  96. package/dist/tools/developTextTool.js +210 -0
  97. package/dist/tools/developTextTool.js.map +1 -0
  98. package/dist/tools/generateContentGaps.d.ts +32 -0
  99. package/dist/tools/generateContentGaps.d.ts.map +1 -0
  100. package/dist/tools/generateContentGaps.js +96 -0
  101. package/dist/tools/generateContentGaps.js.map +1 -0
  102. package/dist/tools/generateContextualHint.d.ts +33 -0
  103. package/dist/tools/generateContextualHint.d.ts.map +1 -0
  104. package/dist/tools/generateContextualHint.js +99 -0
  105. package/dist/tools/generateContextualHint.js.map +1 -0
  106. package/dist/tools/generateDifferenceGraphFromTexts.d.ts +52 -0
  107. package/dist/tools/generateDifferenceGraphFromTexts.d.ts.map +1 -0
  108. package/dist/tools/generateDifferenceGraphFromTexts.js +160 -0
  109. package/dist/tools/generateDifferenceGraphFromTexts.js.map +1 -0
  110. package/dist/tools/generateGoogleResultsVsQueriesGraph.d.ts +37 -0
  111. package/dist/tools/generateGoogleResultsVsQueriesGraph.d.ts.map +1 -0
  112. package/dist/tools/generateGoogleResultsVsQueriesGraph.js +84 -0
  113. package/dist/tools/generateGoogleResultsVsQueriesGraph.js.map +1 -0
  114. package/dist/tools/generateGoogleSearchQueriesGraph.d.ts +39 -0
  115. package/dist/tools/generateGoogleSearchQueriesGraph.d.ts.map +1 -0
  116. package/dist/tools/generateGoogleSearchQueriesGraph.js +88 -0
  117. package/dist/tools/generateGoogleSearchQueriesGraph.js.map +1 -0
  118. package/dist/tools/generateGoogleSearchResultsGraph.d.ts +38 -0
  119. package/dist/tools/generateGoogleSearchResultsGraph.d.ts.map +1 -0
  120. package/dist/tools/generateGoogleSearchResultsGraph.js +88 -0
  121. package/dist/tools/generateGoogleSearchResultsGraph.js.map +1 -0
  122. package/dist/tools/generateKnowledgeGraph.d.ts +35 -0
  123. package/dist/tools/generateKnowledgeGraph.d.ts.map +1 -0
  124. package/dist/tools/generateKnowledgeGraph.js +105 -0
  125. package/dist/tools/generateKnowledgeGraph.js.map +1 -0
  126. package/dist/tools/generateMergedGraphFromTexts.d.ts +52 -0
  127. package/dist/tools/generateMergedGraphFromTexts.d.ts.map +1 -0
  128. package/dist/tools/generateMergedGraphFromTexts.js +160 -0
  129. package/dist/tools/generateMergedGraphFromTexts.js.map +1 -0
  130. package/dist/tools/generateOntologyGraph.d.ts +36 -0
  131. package/dist/tools/generateOntologyGraph.d.ts.map +1 -0
  132. package/dist/tools/generateOntologyGraph.js +171 -0
  133. package/dist/tools/generateOntologyGraph.js.map +1 -0
  134. package/dist/tools/generateOverlapGraphFromTexts.d.ts +52 -0
  135. package/dist/tools/generateOverlapGraphFromTexts.d.ts.map +1 -0
  136. package/dist/tools/generateOverlapGraphFromTexts.js +159 -0
  137. package/dist/tools/generateOverlapGraphFromTexts.js.map +1 -0
  138. package/dist/tools/generateResearchIdeas.d.ts +39 -0
  139. package/dist/tools/generateResearchIdeas.d.ts.map +1 -0
  140. package/dist/tools/generateResearchIdeas.js +117 -0
  141. package/dist/tools/generateResearchIdeas.js.map +1 -0
  142. package/dist/tools/generateResearchQuestions.d.ts +37 -0
  143. package/dist/tools/generateResearchQuestions.d.ts.map +1 -0
  144. package/dist/tools/generateResearchQuestions.js +111 -0
  145. package/dist/tools/generateResearchQuestions.js.map +1 -0
  146. package/dist/tools/generateResearchQuestionsFromGraph.d.ts +34 -0
  147. package/dist/tools/generateResearchQuestionsFromGraph.d.ts.map +1 -0
  148. package/dist/tools/generateResearchQuestionsFromGraph.js +75 -0
  149. package/dist/tools/generateResearchQuestionsFromGraph.js.map +1 -0
  150. package/dist/tools/generateResponses.d.ts +35 -0
  151. package/dist/tools/generateResponses.d.ts.map +1 -0
  152. package/dist/tools/generateResponses.js +112 -0
  153. package/dist/tools/generateResponses.js.map +1 -0
  154. package/dist/tools/generateResponsesFromGraph.d.ts +33 -0
  155. package/dist/tools/generateResponsesFromGraph.d.ts.map +1 -0
  156. package/dist/tools/generateResponsesFromGraph.js +74 -0
  157. package/dist/tools/generateResponsesFromGraph.js.map +1 -0
  158. package/dist/tools/generateSEOGraphTool.d.ts +39 -0
  159. package/dist/tools/generateSEOGraphTool.d.ts.map +1 -0
  160. package/dist/tools/generateSEOGraphTool.js +235 -0
  161. package/dist/tools/generateSEOGraphTool.js.map +1 -0
  162. package/dist/tools/generateTextOverview.d.ts +31 -0
  163. package/dist/tools/generateTextOverview.d.ts.map +1 -0
  164. package/dist/tools/generateTextOverview.js +68 -0
  165. package/dist/tools/generateTextOverview.js.map +1 -0
  166. package/dist/tools/generateTopicalClusters.d.ts +34 -0
  167. package/dist/tools/generateTopicalClusters.d.ts.map +1 -0
  168. package/dist/tools/generateTopicalClusters.js +134 -0
  169. package/dist/tools/generateTopicalClusters.js.map +1 -0
  170. package/dist/tools/getMemory.d.ts +32 -0
  171. package/dist/tools/getMemory.d.ts.map +1 -0
  172. package/dist/tools/getMemory.js +121 -0
  173. package/dist/tools/getMemory.js.map +1 -0
  174. package/dist/tools/index.d.ts +30 -0
  175. package/dist/tools/index.d.ts.map +1 -0
  176. package/dist/tools/index.js +30 -0
  177. package/dist/tools/index.js.map +1 -0
  178. package/dist/tools/listGraphs.d.ts +37 -0
  179. package/dist/tools/listGraphs.d.ts.map +1 -0
  180. package/dist/tools/listGraphs.js +127 -0
  181. package/dist/tools/listGraphs.js.map +1 -0
  182. package/dist/tools/optimizeTextStructure.d.ts +34 -0
  183. package/dist/tools/optimizeTextStructure.d.ts.map +1 -0
  184. package/dist/tools/optimizeTextStructure.js +108 -0
  185. package/dist/tools/optimizeTextStructure.js.map +1 -0
  186. package/dist/tools/retrieveContextForPromptFromGraph.d.ts +37 -0
  187. package/dist/tools/retrieveContextForPromptFromGraph.d.ts.map +1 -0
  188. package/dist/tools/retrieveContextForPromptFromGraph.js +80 -0
  189. package/dist/tools/retrieveContextForPromptFromGraph.js.map +1 -0
  190. package/dist/tools/searchGraph.d.ts +27 -0
  191. package/dist/tools/searchGraph.d.ts.map +1 -0
  192. package/dist/tools/searchGraph.js +57 -0
  193. package/dist/tools/searchGraph.js.map +1 -0
  194. package/dist/tools/searchGraphs.d.ts +33 -0
  195. package/dist/tools/searchGraphs.d.ts.map +1 -0
  196. package/dist/tools/searchGraphs.js +67 -0
  197. package/dist/tools/searchGraphs.js.map +1 -0
  198. package/dist/tools/searchGraphsFetch.d.ts +31 -0
  199. package/dist/tools/searchGraphsFetch.d.ts.map +1 -0
  200. package/dist/tools/searchGraphsFetch.js +78 -0
  201. package/dist/tools/searchGraphsFetch.js.map +1 -0
  202. package/dist/tools/sequentialThinking.d.ts +71 -0
  203. package/dist/tools/sequentialThinking.d.ts.map +1 -0
  204. package/dist/tools/sequentialThinking.js +218 -0
  205. package/dist/tools/sequentialThinking.js.map +1 -0
  206. package/dist/types/index.d.ts +378 -0
  207. package/dist/types/index.d.ts.map +1 -0
  208. package/dist/types/index.js +2 -0
  209. package/dist/types/index.js.map +1 -0
  210. package/dist/utils/progress.d.ts +21 -0
  211. package/dist/utils/progress.d.ts.map +1 -0
  212. package/dist/utils/progress.js +50 -0
  213. package/dist/utils/progress.js.map +1 -0
  214. package/dist/utils/transformers.d.ts +31 -0
  215. package/dist/utils/transformers.d.ts.map +1 -0
  216. package/dist/utils/transformers.js +484 -0
  217. package/dist/utils/transformers.js.map +1 -0
  218. package/dist/utils/urlContent.d.ts +35 -0
  219. package/dist/utils/urlContent.d.ts.map +1 -0
  220. package/dist/utils/urlContent.js +87 -0
  221. package/dist/utils/urlContent.js.map +1 -0
  222. package/llms-full.infranodus.txt +469 -0
  223. package/llms-full.keywordgraph.txt +469 -0
  224. package/llms-full.txt +469 -0
  225. package/llms.infranodus.txt +64 -0
  226. package/llms.keywordgraph.txt +64 -0
  227. package/llms.txt +64 -0
  228. package/package.json +78 -0
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Helper class for reporting progress during tool execution
3
+ */
4
+ export class ProgressReporter {
5
+ sendNotification;
6
+ progressToken;
7
+ total;
8
+ constructor(context, total = 100) {
9
+ this.sendNotification = context.sendNotification;
10
+ this.progressToken = context.progressToken;
11
+ this.total = total;
12
+ }
13
+ /**
14
+ * Report progress to the client
15
+ * @param progress Current progress value (0-100 by default)
16
+ * @param message Optional message to display
17
+ */
18
+ async report(progress, message) {
19
+ // If no send function or progress token, skip notification
20
+ if (!this.sendNotification || this.progressToken === undefined) {
21
+ return;
22
+ }
23
+ try {
24
+ // Send progress notification using MCP protocol
25
+ await this.sendNotification({
26
+ method: "notifications/progress",
27
+ params: {
28
+ progressToken: this.progressToken,
29
+ progress,
30
+ total: this.total,
31
+ ...(message ? { message } : {}),
32
+ },
33
+ });
34
+ }
35
+ catch (error) {
36
+ // Silently fail - progress notifications are optional
37
+ // Only log if there's an actual error (not just unsupported)
38
+ if (error instanceof Error && !error.message.includes("not supported")) {
39
+ console.error("Progress notification error:", error.message);
40
+ }
41
+ }
42
+ }
43
+ /**
44
+ * Check if progress reporting is available
45
+ */
46
+ isAvailable() {
47
+ return !!(this.sendNotification && this.progressToken !== undefined);
48
+ }
49
+ }
50
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACpB,gBAAgB,CAAwC;IACxD,aAAa,CAAmB;IAChC,KAAK,CAAS;IAEtB,YAAY,OAA2B,EAAE,QAAgB,GAAG;QAC3D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,OAAgB;QAC9C,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAChE,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,gDAAgD;YAChD,MAAM,IAAI,CAAC,gBAAgB,CAAC;gBAC3B,MAAM,EAAE,wBAAwB;gBAChC,MAAM,EAAE;oBACP,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,QAAQ;oBACR,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/B;aACD,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,sDAAsD;YACtD,6DAA6D;YAC7D,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;IACF,CAAC;IAED;;OAEG;IACH,WAAW;QACV,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC;IACtE,CAAC;CACD"}
@@ -0,0 +1,31 @@
1
+ import { GraphResponse, SearchResponse, KnowledgeGraphOutput, GapsOutput, GraphOverview, GraphRagOutput, TopicsOutput, InsightsOutput, ResearchQuestionsOutput, ResearchIdeasOutput, ResponsesOutput, OptimizeTextOutput, SearchOutput, FetchOutput, StatementsSearchOutput, KeywordsOutput, TopicNamesOutput, SummaryOutput, StatementStringsOutput, LatentConceptsOutput, LatentTopicsOutput } from "../types/index.js";
2
+ export declare function transformToStructuredOutput(data: GraphResponse, includeGraph?: boolean, includeNodesAndEdges?: boolean, buildingEntitiesGraph?: boolean): KnowledgeGraphOutput;
3
+ export declare function transformToGraphRagOutput(params: {
4
+ data: GraphResponse;
5
+ includeGraph: boolean;
6
+ compactStatements: boolean;
7
+ includeGraphSummary: boolean;
8
+ extendedGraphSummary: boolean;
9
+ }): GraphRagOutput;
10
+ export declare function generateGaps(data: GraphResponse): GapsOutput;
11
+ export declare function generateContextualHint(data: GraphResponse): GraphOverview;
12
+ export declare function extractOntologyStatements(data: GraphResponse): string[];
13
+ export declare function extractAiChoiceTexts(data: GraphResponse): string[];
14
+ export declare function generateTopics(data: GraphResponse, summaryData?: GraphResponse): TopicsOutput;
15
+ export declare function generateSummaryFromTopicsAndGaps(data: GraphResponse): SummaryOutput;
16
+ export declare function extractInsightsFromExtendedGraphSummary(data: GraphResponse): InsightsOutput;
17
+ export declare function extractStatementStrings(data: GraphResponse): StatementStringsOutput;
18
+ export declare function generateKeywordsFromBigrams(data: GraphResponse): KeywordsOutput;
19
+ export declare function generateTopicNames(data: GraphResponse): TopicNamesOutput;
20
+ export declare function generateResearchQuestions(data: GraphResponse): ResearchQuestionsOutput;
21
+ export declare function generateResearchIdeas(data: GraphResponse): ResearchIdeasOutput;
22
+ export declare function generateResponses(data: GraphResponse): ResponsesOutput;
23
+ export declare function generateOptimizationResult(data: GraphResponse): OptimizeTextOutput;
24
+ export declare function extractLatentConceptsIdeas(data: GraphResponse): LatentConceptsOutput;
25
+ export declare function extractLatentTopicsIdeas(data: GraphResponse): LatentTopicsOutput;
26
+ export declare function generateSearchResult(data: SearchResponse, query: string): SearchOutput;
27
+ export declare function generateFetchResult(data: SearchResponse, query: string): FetchOutput;
28
+ export declare function extractStatementsFromGraphResponse(data: GraphResponse, memoryContextName: string): StatementsSearchOutput;
29
+ export declare function extractStatementsFromSearchResponse(data: SearchResponse): StatementsSearchOutput;
30
+ export declare function generateInsights(data: GraphResponse, insightType: string): InsightsOutput;
31
+ //# sourceMappingURL=transformers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../src/utils/transformers.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,aAAa,EACnB,YAAY,GAAE,OAAe,EAC7B,oBAAoB,GAAE,OAAe,EACrC,qBAAqB,GAAE,OAAe,GACpC,oBAAoB,CA6FtB;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IACjD,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;CAC9B,GAAG,cAAc,CA8DjB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,CAQ5D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAQzE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE,CAUvE;AAOD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE,CASlE;AAED,wBAAgB,cAAc,CAC7B,IAAI,EAAE,aAAa,EACnB,WAAW,CAAC,EAAE,aAAa,GACzB,YAAY,CAcd;AAED,wBAAgB,gCAAgC,CAC/C,IAAI,EAAE,aAAa,GACjB,aAAa,CAcf;AAED,wBAAgB,uCAAuC,CACtD,IAAI,EAAE,aAAa,GACjB,cAAc,CAchB;AAED,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,aAAa,GACjB,sBAAsB,CA4BxB;AAED,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,aAAa,GACjB,cAAc,CAQhB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,gBAAgB,CAiBxE;AAED,wBAAgB,yBAAyB,CACxC,IAAI,EAAE,aAAa,GACjB,uBAAuB,CAezB;AAED,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,aAAa,GACjB,mBAAmB,CAerB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe,CAetE;AAED,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,aAAa,GACjB,kBAAkB,CAyBpB;AAED,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,aAAa,GACjB,oBAAoB,CAkBtB;AAED,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,aAAa,GACjB,kBAAkB,CAiBpB;AAED,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,GACX,YAAY,CAuBd;AAED,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,GACX,WAAW,CAyBb;AAED,wBAAgB,kCAAkC,CACjD,IAAI,EAAE,aAAa,EACnB,iBAAiB,EAAE,MAAM,GACvB,sBAAsB,CAqBxB;AAED,wBAAgB,mCAAmC,CAClD,IAAI,EAAE,cAAc,GAClB,sBAAsB,CAkCxB;AAED,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,GACjB,cAAc,CAkGhB"}
@@ -0,0 +1,484 @@
1
+ export function transformToStructuredOutput(data, includeGraph = false, includeNodesAndEdges = false, buildingEntitiesGraph = false) {
2
+ const output = {
3
+ statistics: {
4
+ modularity: 0,
5
+ diversity_stats: {},
6
+ clusterCount: 0,
7
+ },
8
+ };
9
+ if (data.graphSummary) {
10
+ output.graphSummary = data.graphSummary;
11
+ }
12
+ if (data.extendedGraphSummary) {
13
+ output.contentGaps = data.extendedGraphSummary.contentGaps;
14
+ output.mainTopicalClusters = data.extendedGraphSummary.mainTopics;
15
+ output.mainConcepts = data.extendedGraphSummary.mainConcepts;
16
+ output.conceptualGateways = data.extendedGraphSummary.conceptualGateways;
17
+ output.topRelations = data.extendedGraphSummary.topRelations;
18
+ output.topBigrams = data.extendedGraphSummary.topBigrams;
19
+ }
20
+ if (data.graph?.graphologyGraph) {
21
+ const graph = data.graph.graphologyGraph;
22
+ // Statistics
23
+ output.statistics = {
24
+ modularity: graph.attributes?.modularity || 0,
25
+ clusterCount: graph.attributes?.diversity_stats?.total_clusters ||
26
+ graph.attributes?.top_clusters?.length ||
27
+ 0,
28
+ };
29
+ if (graph.nodes?.length > 0) {
30
+ output.statistics.nodeCount = graph.nodes?.length;
31
+ }
32
+ if (graph.edges?.length > 0) {
33
+ output.statistics.edgeCount = graph.edges?.length;
34
+ }
35
+ if (graph.attributes?.diversity_stats) {
36
+ output.statistics.diversity_stats = graph.attributes.diversity_stats;
37
+ }
38
+ if (graph.attributes?.top_influential_nodes) {
39
+ output.topInfluentialNodes = graph.attributes.top_influential_nodes;
40
+ }
41
+ if (graph.attributes?.dotGraphByCluster) {
42
+ output.knowledgeGraphByCluster = graph.attributes.dotGraphByCluster;
43
+ delete graph.attributes.dotGraphByCluster;
44
+ }
45
+ if (graph.attributes?.top_clusters &&
46
+ !data.extendedGraphSummary?.mainTopics) {
47
+ if (!buildingEntitiesGraph) {
48
+ output.topClusters = graph.attributes.top_clusters;
49
+ }
50
+ }
51
+ // Include raw graph if requested
52
+ if (includeGraph || includeNodesAndEdges) {
53
+ output.knowledgeGraph = graph;
54
+ }
55
+ // Include nodes and edges if requested
56
+ if (includeGraph && !includeNodesAndEdges) {
57
+ delete output.knowledgeGraph?.nodes;
58
+ delete output.knowledgeGraph?.edges;
59
+ }
60
+ }
61
+ // Statements
62
+ if (data.statements) {
63
+ output.statements = data.statements;
64
+ }
65
+ if (data.userName) {
66
+ output.userName = data.userName;
67
+ }
68
+ if (data.graphName) {
69
+ output.graphName = data.graphName;
70
+ }
71
+ if (data.graphUrl) {
72
+ output.graphUrl = data.graphUrl;
73
+ }
74
+ return output;
75
+ }
76
+ export function transformToGraphRagOutput(params) {
77
+ const { data, includeGraph, compactStatements, includeGraphSummary, extendedGraphSummary, } = params;
78
+ const output = {};
79
+ // if (data.aiAdvice) {
80
+ // output.relatedStatements = data.aiAdvice.map((advice) => advice.text);
81
+ // }
82
+ // Statements
83
+ if (data.statements) {
84
+ output.retrievedStatements = compactStatements
85
+ ? data.statements
86
+ .filter((statement) => statement.content !== undefined)
87
+ .map((statement) => ({ content: statement.content }))
88
+ : data.statements
89
+ .filter((statement) => statement.content !== undefined)
90
+ .map((statement) => ({
91
+ content: statement.content,
92
+ categories: statement.categories,
93
+ topStatementCommunity: statement.topStatementCommunity,
94
+ topStatementOfCommunity: statement.topStatementOfCommunity,
95
+ similarityScore: statement.similarityScore || 0,
96
+ }));
97
+ }
98
+ if (data.graphSummary && includeGraphSummary == true) {
99
+ output.graphSummary = data.graphSummary;
100
+ }
101
+ if (data.extendedGraphSummary && extendedGraphSummary == true) {
102
+ output.contentGaps = data.extendedGraphSummary.contentGaps;
103
+ output.mainTopicalClusters = data.extendedGraphSummary.mainTopics;
104
+ output.mainConcepts = data.extendedGraphSummary.mainConcepts;
105
+ output.conceptualGateways = data.extendedGraphSummary.conceptualGateways;
106
+ output.topRelations = data.extendedGraphSummary.topRelations;
107
+ output.topBigrams = data.extendedGraphSummary.topBigrams;
108
+ }
109
+ if (data.graph && data.graph.graphologyGraph && includeGraph == true) {
110
+ const graph = data.graph.graphologyGraph;
111
+ output.graph = graph;
112
+ }
113
+ if (data.userName) {
114
+ output.userName = data.userName;
115
+ }
116
+ if (data.graphName) {
117
+ output.graphName = data.graphName;
118
+ }
119
+ if (data.graphUrl) {
120
+ output.graphUrl = data.graphUrl;
121
+ }
122
+ return output;
123
+ }
124
+ export function generateGaps(data) {
125
+ const gaps = {};
126
+ if (data.extendedGraphSummary?.contentGaps) {
127
+ gaps.contentGaps = data.extendedGraphSummary.contentGaps;
128
+ }
129
+ return gaps;
130
+ }
131
+ export function generateContextualHint(data) {
132
+ const graphOverview = {};
133
+ if (data.graphSummary) {
134
+ graphOverview.textOverview = data.graphSummary;
135
+ }
136
+ return graphOverview;
137
+ }
138
+ export function extractOntologyStatements(data) {
139
+ if (!data.choices || !data.choices.length)
140
+ return [];
141
+ return data.choices
142
+ .flatMap((choice) => {
143
+ const content = choice.text ?? choice.message?.content ?? "";
144
+ return content.split("\n");
145
+ })
146
+ .map((line) => line.trim())
147
+ .filter((line) => line.length > 0);
148
+ }
149
+ // For intro-search style responses: each "choice" is one full LLM completion
150
+ // (typically a paragraph), and the graph treats each completion as a single
151
+ // statement. Don't split by newline; just normalize internal whitespace so each
152
+ // choice fits on one line (matches how the host app's convertGPTResponsesToArray
153
+ // collapses newlines for non-ontology aiQueryTypes).
154
+ export function extractAiChoiceTexts(data) {
155
+ if (!data.choices || !data.choices.length)
156
+ return [];
157
+ return data.choices
158
+ .map((choice) => {
159
+ const content = choice.text ?? choice.message?.content ?? "";
160
+ return content.replace(/\s*\n+\s*/g, " ").trim();
161
+ })
162
+ .filter((text) => text.length > 0);
163
+ }
164
+ export function generateTopics(data, summaryData) {
165
+ const topicalClusters = {};
166
+ if (data.extendedGraphSummary?.mainTopics) {
167
+ topicalClusters.topicalClusters = data.extendedGraphSummary.mainTopics;
168
+ }
169
+ if (summaryData?.aiAdvice) {
170
+ topicalClusters.topicalClusterSummaries = summaryData.aiAdvice.map((advice) => advice.text);
171
+ }
172
+ return topicalClusters;
173
+ }
174
+ export function generateSummaryFromTopicsAndGaps(data) {
175
+ const summary = {};
176
+ if (data.extendedGraphSummary?.mainTopics &&
177
+ data.extendedGraphSummary?.contentGaps) {
178
+ summary.summary =
179
+ data.extendedGraphSummary.mainTopics.join("\n") +
180
+ "\n\n" +
181
+ data.extendedGraphSummary.contentGaps.join("\n");
182
+ }
183
+ return summary;
184
+ }
185
+ export function extractInsightsFromExtendedGraphSummary(data) {
186
+ const mainTopics = data.extendedGraphSummary?.mainTopics || [];
187
+ const contentGaps = data.extendedGraphSummary?.contentGaps || [];
188
+ const mainConcepts = data.extendedGraphSummary?.mainConcepts || [];
189
+ const topKeywordCombinations = data.extendedGraphSummary?.topBigrams || [];
190
+ const conceptsToDevelop = data.extendedGraphSummary?.conceptualGateways || [];
191
+ return {
192
+ mainTopics,
193
+ contentGaps,
194
+ mainConcepts,
195
+ topKeywordCombinations,
196
+ conceptsToDevelop,
197
+ };
198
+ }
199
+ export function extractStatementStrings(data) {
200
+ const statements = {};
201
+ if (data.statements) {
202
+ const filterByCategory = (pattern) => data.statements.filter((statement) => statement.categories?.some((category) => pattern.test(category)));
203
+ const thresholds = [/1000/, /100/, /\d/];
204
+ let filtered = data.statements;
205
+ for (const pattern of thresholds) {
206
+ const result = filterByCategory(pattern);
207
+ if (result.length > 0) {
208
+ filtered = result;
209
+ break;
210
+ }
211
+ }
212
+ statements.statements = filtered.map((statement) => {
213
+ const statementContent = statement.content;
214
+ const statementCategories = statement.categories?.map((category) => category) || [];
215
+ return `${statementContent} | ${statementCategories.join(", ")}`;
216
+ });
217
+ }
218
+ return statements;
219
+ }
220
+ export function generateKeywordsFromBigrams(data) {
221
+ const keywords = {};
222
+ if (data.extendedGraphSummary?.topBigrams) {
223
+ keywords.keywords = data.extendedGraphSummary.topBigrams;
224
+ }
225
+ return keywords;
226
+ }
227
+ export function generateTopicNames(data) {
228
+ const topicNames = {};
229
+ if (data.extendedGraphSummary?.mainTopicNames &&
230
+ Array.isArray(data.extendedGraphSummary.mainTopicNames)) {
231
+ const mainTopicNames = data.extendedGraphSummary.mainTopicNames.map((topic) => {
232
+ const topicName = topic.split(". ") ? topic.split(". ")[1] : topic;
233
+ return topicName;
234
+ });
235
+ topicNames.topicNames = mainTopicNames;
236
+ }
237
+ return topicNames;
238
+ }
239
+ export function generateResearchQuestions(data) {
240
+ const researchQuestions = {
241
+ questions: [],
242
+ graphSummary: "",
243
+ };
244
+ if (data.aiAdvice) {
245
+ researchQuestions.questions = data.aiAdvice.map((advice) => advice.text);
246
+ }
247
+ if (data.graphSummary) {
248
+ researchQuestions.graphSummary = data.graphSummary;
249
+ }
250
+ return researchQuestions;
251
+ }
252
+ export function generateResearchIdeas(data) {
253
+ const researchIdeas = {
254
+ ideas: [],
255
+ graphSummary: "",
256
+ };
257
+ if (data.aiAdvice) {
258
+ researchIdeas.ideas = data.aiAdvice.map((advice) => advice.text);
259
+ }
260
+ if (data.graphSummary) {
261
+ researchIdeas.graphSummary = data.graphSummary;
262
+ }
263
+ return researchIdeas;
264
+ }
265
+ export function generateResponses(data) {
266
+ const responses = {
267
+ responses: [],
268
+ graphSummary: "",
269
+ };
270
+ if (data.aiAdvice) {
271
+ responses.responses = data.aiAdvice.map((advice) => advice.text);
272
+ }
273
+ if (data.graphSummary) {
274
+ responses.graphSummary = data.graphSummary;
275
+ }
276
+ return responses;
277
+ }
278
+ export function generateOptimizationResult(data) {
279
+ const output = {};
280
+ if (data.aiAdvice) {
281
+ output.suggestions = data.aiAdvice.map((advice) => advice.text);
282
+ }
283
+ if (data.graph?.graphologyGraph?.attributes?.diversity_stats) {
284
+ output.diversity_stats =
285
+ data.graph.graphologyGraph.attributes.diversity_stats;
286
+ }
287
+ if (data.extendedGraphSummary) {
288
+ const ext = data.extendedGraphSummary;
289
+ if (ext.mainTopics)
290
+ output.mainTopicalClusters = ext.mainTopics;
291
+ if (ext.contentGaps)
292
+ output.contentGaps = ext.contentGaps;
293
+ if (ext.mainConcepts)
294
+ output.mainConcepts = ext.mainConcepts;
295
+ if (ext.topicsToDevelop)
296
+ output.topicsToDevelop = ext.topicsToDevelop;
297
+ if (ext.conceptualGateways)
298
+ output.conceptualGateways = ext.conceptualGateways;
299
+ if (ext.topRelations)
300
+ output.topRelations = ext.topRelations;
301
+ if (ext.topBigrams)
302
+ output.topKeywordCombinations = ext.topBigrams;
303
+ }
304
+ return output;
305
+ }
306
+ export function extractLatentConceptsIdeas(data) {
307
+ const latentConcepts = { ideas: [] };
308
+ if (data.aiAdvice) {
309
+ latentConcepts.ideas = data.aiAdvice.map((advice) => advice.text);
310
+ }
311
+ if (data.extendedGraphSummary?.conceptualGateways) {
312
+ latentConcepts.latentConceptsToDevelop =
313
+ data.extendedGraphSummary.conceptualGateways;
314
+ }
315
+ if (data.extendedGraphSummary?.conceptualGatewaysGraph) {
316
+ latentConcepts.latentConceptsRelations =
317
+ data.extendedGraphSummary.conceptualGatewaysGraph;
318
+ }
319
+ return latentConcepts;
320
+ }
321
+ export function extractLatentTopicsIdeas(data) {
322
+ const latentConcepts = {};
323
+ if (data.aiAdvice) {
324
+ latentConcepts.ideas = data.aiAdvice.map((advice) => advice.text);
325
+ }
326
+ if (data.extendedGraphSummary?.mainTopics) {
327
+ latentConcepts.mainTopics = data.extendedGraphSummary.mainTopics;
328
+ }
329
+ if (data.extendedGraphSummary?.topicsToDevelop) {
330
+ latentConcepts.latentTopicsToDevelop =
331
+ data.extendedGraphSummary.topicsToDevelop;
332
+ }
333
+ return latentConcepts;
334
+ }
335
+ export function generateSearchResult(data, query) {
336
+ const results = { results: [] };
337
+ const userName = data.userName || "";
338
+ const searchQuery = query || "";
339
+ const searchResultsExist = data.graphUrls &&
340
+ data.graphNames &&
341
+ data.graphUrls.length > 0 &&
342
+ data.graphNames.length > 0;
343
+ if (searchResultsExist) {
344
+ const graphNames = data.graphNames || [];
345
+ results.results = data.graphUrls?.map((url, index) => ({
346
+ id: `${userName}:${graphNames[index]}:${searchQuery}`,
347
+ title: graphNames[index],
348
+ url: url,
349
+ }));
350
+ }
351
+ return results;
352
+ }
353
+ export function generateFetchResult(data, query) {
354
+ const fetchResults = { id: "", title: "", text: "", url: "" };
355
+ const userName = data.userName || "";
356
+ const searchQuery = query || "";
357
+ const searchResultsExist = data.graphUrls &&
358
+ data.graphNames &&
359
+ data.graphUrls.length > 0 &&
360
+ data.graphNames.length > 0;
361
+ const searchResultsTextArray = data.entriesAdded?.texts;
362
+ if (searchResultsExist) {
363
+ const graphNames = data.graphNames || [];
364
+ const graphUrls = data.graphUrls || [];
365
+ fetchResults.id = `${userName}:${graphNames[0]}:${searchQuery}`;
366
+ fetchResults.title = graphNames[0];
367
+ fetchResults.text = searchResultsTextArray?.join("\n") || "";
368
+ fetchResults.url = graphUrls[0];
369
+ }
370
+ return fetchResults;
371
+ }
372
+ export function extractStatementsFromGraphResponse(data, memoryContextName) {
373
+ const results = {
374
+ statements: [],
375
+ userName: "",
376
+ graphNames: [],
377
+ graphUrls: [],
378
+ };
379
+ if (data.statements) {
380
+ results.statements = data.statements
381
+ .map((statement) => statement.content)
382
+ .filter((content) => content !== undefined);
383
+ }
384
+ if (data.userName) {
385
+ results.userName = data.userName;
386
+ }
387
+ if (data.graphName) {
388
+ results.graphNames = [memoryContextName];
389
+ }
390
+ return results;
391
+ }
392
+ export function extractStatementsFromSearchResponse(data) {
393
+ const results = {
394
+ statements: [],
395
+ userName: "",
396
+ graphNames: [],
397
+ graphUrls: [],
398
+ };
399
+ const searchResultsExist = data.entriesAdded?.texts && data.entriesAdded?.texts.length > 0;
400
+ if (data.userName) {
401
+ results.userName = data.userName;
402
+ }
403
+ if (data.graphNames) {
404
+ results.graphNames = data.graphNames;
405
+ }
406
+ if (data.graphUrls) {
407
+ results.graphUrls = data.graphUrls;
408
+ }
409
+ if (data.error) {
410
+ results.error = data.error;
411
+ }
412
+ const searchResultsTextArray = data.entriesAdded?.texts;
413
+ if (searchResultsExist && searchResultsTextArray) {
414
+ results.statements = searchResultsTextArray;
415
+ }
416
+ return results;
417
+ }
418
+ export function generateInsights(data, insightType) {
419
+ const insights = {};
420
+ if (insightType === "all" || insightType === "summary") {
421
+ insights.summary = data.graphSummary;
422
+ }
423
+ if ((insightType === "all" || insightType === "topics") &&
424
+ data.graph?.graphologyGraph.attributes.top_clusters) {
425
+ insights.topics = data.graph.graphologyGraph.attributes.top_clusters
426
+ .slice(0, 7)
427
+ .map((cluster) => ({
428
+ name: cluster.aiName || `Topic ${cluster.community}`,
429
+ concepts: cluster.nodes.slice(0, 10).map((n) => n.nodeName),
430
+ }));
431
+ }
432
+ if ((insightType === "all" || insightType === "gaps") &&
433
+ data.graph?.graphologyGraph.attributes.gaps) {
434
+ insights.gaps = data.graph.graphologyGraph.attributes.gaps
435
+ .slice(0, 7)
436
+ .map((gap) => ({
437
+ description: `Potential connection between "${gap.source}" and "${gap.target}"`,
438
+ concepts: [gap.source, gap.target],
439
+ bridges: gap.concepts,
440
+ }));
441
+ }
442
+ if (insightType === "all" || insightType === "questions") {
443
+ insights.questions = [];
444
+ if (data.graph?.graphologyGraph.attributes.gaps) {
445
+ data.graph.graphologyGraph.attributes.gaps.slice(0, 5).forEach((gap) => {
446
+ insights.questions.push(`How might "${gap.source}" relate to or influence "${gap.target}"?`);
447
+ });
448
+ }
449
+ if (data.graph?.graphologyGraph.attributes.top_nodes) {
450
+ const topNodes = data.graph.graphologyGraph.attributes.top_nodes.slice(0, 3);
451
+ topNodes.forEach((node) => {
452
+ insights.questions.push(`What role does "${node}" play in connecting different aspects of this topic?`);
453
+ });
454
+ }
455
+ }
456
+ // Generate key insights
457
+ if (insightType === "all") {
458
+ insights.keyInsights = [];
459
+ if (data.graph?.graphologyGraph.attributes) {
460
+ const attrs = data.graph.graphologyGraph.attributes;
461
+ if (attrs.modularity > 0.4) {
462
+ insights.keyInsights.push("The text has well-defined, distinct topic clusters");
463
+ }
464
+ else if (attrs.modularity < 0.2) {
465
+ insights.keyInsights.push("The text is highly interconnected with overlapping themes");
466
+ }
467
+ if (attrs.gaps && attrs.gaps.length > 5) {
468
+ insights.keyInsights.push(`Found ${attrs.gaps.length} potential connections between disparate topics`);
469
+ }
470
+ if (attrs.top_clusters && attrs.top_clusters.length > 0) {
471
+ const dominantCluster = attrs.top_clusters[0];
472
+ const statementCount = dominantCluster.statementIds?.length ||
473
+ dominantCluster.statements?.length ||
474
+ 0;
475
+ const dominanceRatio = statementCount / (data.statements?.length || 1);
476
+ if (dominanceRatio > 0.5) {
477
+ insights.keyInsights.push(`The text is strongly focused on "${dominantCluster.aiName || "one main topic"}"`);
478
+ }
479
+ }
480
+ }
481
+ }
482
+ return insights;
483
+ }
484
+ //# sourceMappingURL=transformers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../src/utils/transformers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /** Parsed result from /convert/url */
2
+ export interface UrlConvertResult {
3
+ url: string;
4
+ title: string;
5
+ tags: string[];
6
+ headers: string[];
7
+ selectedElementsText: string[];
8
+ language: string;
9
+ canonicalLink: string;
10
+ linksText: string[];
11
+ text: string;
12
+ }
13
+ export declare function parseUrlConvertResponse(url: string, raw: Record<string, unknown>): UrlConvertResult;
14
+ export declare function extractContentByType(result: UrlConvertResult, contentToExtract: string): string;
15
+ /** Heuristic: true if content looks like no usable plain text (e.g. JS only) */
16
+ export declare function isNoUsableText(content: string): boolean;
17
+ export declare function fetchUrlContent(url: string, proxy: boolean): Promise<Record<string, unknown>>;
18
+ export type FetchUrlContentAsTextOptions = {
19
+ contentToExtract?: string;
20
+ useProxy?: boolean;
21
+ };
22
+ export type FetchUrlContentAsTextResult = {
23
+ ok: true;
24
+ contentText: string;
25
+ } | {
26
+ ok: false;
27
+ error: string;
28
+ };
29
+ /**
30
+ * Fetches content from a URL via the /convert/url, optionally retrying
31
+ * with proxy if the initial response has no usable text. Returns extracted text
32
+ * by content type (all, header tags, link tags).
33
+ */
34
+ export declare function fetchUrlContentAsText(url: string, options?: FetchUrlContentAsTextOptions): Promise<FetchUrlContentAsTextResult>;
35
+ //# sourceMappingURL=urlContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlContent.d.ts","sourceRoot":"","sources":["../../src/utils/urlContent.ts"],"names":[],"mappings":"AAEA,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACb;AAID,wBAAgB,uBAAuB,CACtC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1B,gBAAgB,CAmClB;AAED,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,gBAAgB,EACxB,gBAAgB,EAAE,MAAM,GACtB,MAAM,CAKR;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQvD;AAED,wBAAsB,eAAe,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAclC;AAED,MAAM,MAAM,4BAA4B,GAAG;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GACpC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhC;;;;GAIG;AACH,wBAAsB,qBAAqB,CAC1C,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,4BAAiC,GACxC,OAAO,CAAC,2BAA2B,CAAC,CAmBtC"}