keywordgraph-mcp-server 1.8.4 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/README.md +118 -55
  2. package/dist/api/client.d.ts +10 -0
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/client.js +42 -0
  5. package/dist/api/client.js.map +1 -1
  6. package/dist/config/brand.d.ts.map +1 -1
  7. package/dist/config/brand.js +2 -0
  8. package/dist/config/brand.js.map +1 -1
  9. package/dist/config/index.d.ts +1 -1
  10. package/dist/config/index.d.ts.map +1 -1
  11. package/dist/config/index.js +4 -1
  12. package/dist/config/index.js.map +1 -1
  13. package/dist/http-server.js +66 -10
  14. package/dist/http-server.js.map +1 -1
  15. package/dist/index.d.ts +9 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +43 -9
  18. package/dist/index.js.map +1 -1
  19. package/dist/instructions.d.ts.map +1 -1
  20. package/dist/instructions.js +13 -4
  21. package/dist/instructions.js.map +1 -1
  22. package/dist/resources/about.d.ts.map +1 -1
  23. package/dist/resources/about.js +1 -0
  24. package/dist/resources/about.js.map +1 -1
  25. package/dist/schemas/index.d.ts +338 -22
  26. package/dist/schemas/index.d.ts.map +1 -1
  27. package/dist/schemas/index.js +182 -5
  28. package/dist/schemas/index.js.map +1 -1
  29. package/dist/tools/addMemory.d.ts +11 -8
  30. package/dist/tools/addMemory.d.ts.map +1 -1
  31. package/dist/tools/addMemory.js +54 -3
  32. package/dist/tools/addMemory.js.map +1 -1
  33. package/dist/tools/addProjectLearnings.d.ts +1 -0
  34. package/dist/tools/addProjectLearnings.d.ts.map +1 -1
  35. package/dist/tools/addProjectLearnings.js +19 -168
  36. package/dist/tools/addProjectLearnings.js.map +1 -1
  37. package/dist/tools/analyzeExistingGraph.d.ts +2 -0
  38. package/dist/tools/analyzeExistingGraph.d.ts.map +1 -1
  39. package/dist/tools/analyzeExistingGraph.js +3 -1
  40. package/dist/tools/analyzeExistingGraph.js.map +1 -1
  41. package/dist/tools/analyzeLlmResults.d.ts +2 -0
  42. package/dist/tools/analyzeLlmResults.d.ts.map +1 -1
  43. package/dist/tools/analyzeLlmResults.js +2 -0
  44. package/dist/tools/analyzeLlmResults.js.map +1 -1
  45. package/dist/tools/analyzeText.d.ts +3 -0
  46. package/dist/tools/analyzeText.d.ts.map +1 -1
  47. package/dist/tools/analyzeText.js +3 -1
  48. package/dist/tools/analyzeText.js.map +1 -1
  49. package/dist/tools/analyzeTextSignature.d.ts +39 -0
  50. package/dist/tools/analyzeTextSignature.d.ts.map +1 -0
  51. package/dist/tools/analyzeTextSignature.js +83 -0
  52. package/dist/tools/analyzeTextSignature.js.map +1 -0
  53. package/dist/tools/createKnowledgeGraph.d.ts +3 -0
  54. package/dist/tools/createKnowledgeGraph.d.ts.map +1 -1
  55. package/dist/tools/createKnowledgeGraph.js +3 -1
  56. package/dist/tools/createKnowledgeGraph.js.map +1 -1
  57. package/dist/tools/developConceptualBridges.d.ts +2 -0
  58. package/dist/tools/developConceptualBridges.d.ts.map +1 -1
  59. package/dist/tools/developConceptualBridges.js +1 -0
  60. package/dist/tools/developConceptualBridges.js.map +1 -1
  61. package/dist/tools/developLatentTopics.d.ts +2 -0
  62. package/dist/tools/developLatentTopics.d.ts.map +1 -1
  63. package/dist/tools/developLatentTopics.js +1 -0
  64. package/dist/tools/developLatentTopics.js.map +1 -1
  65. package/dist/tools/developTextTool.d.ts +2 -0
  66. package/dist/tools/developTextTool.d.ts.map +1 -1
  67. package/dist/tools/developTextTool.js +1 -0
  68. package/dist/tools/developTextTool.js.map +1 -1
  69. package/dist/tools/enableMemory.d.ts +29 -0
  70. package/dist/tools/enableMemory.d.ts.map +1 -0
  71. package/dist/tools/enableMemory.js +35 -0
  72. package/dist/tools/enableMemory.js.map +1 -0
  73. package/dist/tools/enableProjectLearnings.d.ts +1 -0
  74. package/dist/tools/enableProjectLearnings.d.ts.map +1 -1
  75. package/dist/tools/enableProjectLearnings.js +7 -40
  76. package/dist/tools/enableProjectLearnings.js.map +1 -1
  77. package/dist/tools/generateContentGaps.d.ts +2 -0
  78. package/dist/tools/generateContentGaps.d.ts.map +1 -1
  79. package/dist/tools/generateContentGaps.js +1 -0
  80. package/dist/tools/generateContentGaps.js.map +1 -1
  81. package/dist/tools/generateContextualHint.d.ts +2 -0
  82. package/dist/tools/generateContextualHint.d.ts.map +1 -1
  83. package/dist/tools/generateContextualHint.js +1 -0
  84. package/dist/tools/generateContextualHint.js.map +1 -1
  85. package/dist/tools/generateDifferenceGraphFromTexts.d.ts +3 -0
  86. package/dist/tools/generateDifferenceGraphFromTexts.d.ts.map +1 -1
  87. package/dist/tools/generateDifferenceGraphFromTexts.js +3 -1
  88. package/dist/tools/generateDifferenceGraphFromTexts.js.map +1 -1
  89. package/dist/tools/generateGoogleResultsVsQueriesGraph.d.ts +1 -0
  90. package/dist/tools/generateGoogleResultsVsQueriesGraph.d.ts.map +1 -1
  91. package/dist/tools/generateGoogleResultsVsQueriesGraph.js +1 -0
  92. package/dist/tools/generateGoogleResultsVsQueriesGraph.js.map +1 -1
  93. package/dist/tools/generateGoogleSearchQueriesGraph.d.ts +1 -0
  94. package/dist/tools/generateGoogleSearchQueriesGraph.d.ts.map +1 -1
  95. package/dist/tools/generateGoogleSearchQueriesGraph.js +1 -0
  96. package/dist/tools/generateGoogleSearchQueriesGraph.js.map +1 -1
  97. package/dist/tools/generateGoogleSearchResultsGraph.d.ts +1 -0
  98. package/dist/tools/generateGoogleSearchResultsGraph.d.ts.map +1 -1
  99. package/dist/tools/generateGoogleSearchResultsGraph.js +1 -0
  100. package/dist/tools/generateGoogleSearchResultsGraph.js.map +1 -1
  101. package/dist/tools/generateKnowledgeGraph.d.ts +3 -0
  102. package/dist/tools/generateKnowledgeGraph.d.ts.map +1 -1
  103. package/dist/tools/generateKnowledgeGraph.js +3 -1
  104. package/dist/tools/generateKnowledgeGraph.js.map +1 -1
  105. package/dist/tools/generateMergedGraphFromTexts.d.ts +3 -0
  106. package/dist/tools/generateMergedGraphFromTexts.d.ts.map +1 -1
  107. package/dist/tools/generateMergedGraphFromTexts.js +3 -1
  108. package/dist/tools/generateMergedGraphFromTexts.js.map +1 -1
  109. package/dist/tools/generateOntologyGraph.d.ts +2 -0
  110. package/dist/tools/generateOntologyGraph.d.ts.map +1 -1
  111. package/dist/tools/generateOntologyGraph.js +3 -1
  112. package/dist/tools/generateOntologyGraph.js.map +1 -1
  113. package/dist/tools/generateOverlapGraphFromTexts.d.ts +3 -0
  114. package/dist/tools/generateOverlapGraphFromTexts.d.ts.map +1 -1
  115. package/dist/tools/generateOverlapGraphFromTexts.js +3 -1
  116. package/dist/tools/generateOverlapGraphFromTexts.js.map +1 -1
  117. package/dist/tools/generateResearchIdeas.d.ts +2 -0
  118. package/dist/tools/generateResearchIdeas.d.ts.map +1 -1
  119. package/dist/tools/generateResearchIdeas.js +1 -0
  120. package/dist/tools/generateResearchIdeas.js.map +1 -1
  121. package/dist/tools/generateResearchQuestions.d.ts +2 -0
  122. package/dist/tools/generateResearchQuestions.d.ts.map +1 -1
  123. package/dist/tools/generateResearchQuestions.js +1 -0
  124. package/dist/tools/generateResearchQuestions.js.map +1 -1
  125. package/dist/tools/generateResponses.d.ts +2 -0
  126. package/dist/tools/generateResponses.d.ts.map +1 -1
  127. package/dist/tools/generateResponses.js +1 -0
  128. package/dist/tools/generateResponses.js.map +1 -1
  129. package/dist/tools/generateSEOGraphTool.d.ts +2 -0
  130. package/dist/tools/generateSEOGraphTool.d.ts.map +1 -1
  131. package/dist/tools/generateSEOGraphTool.js +2 -1
  132. package/dist/tools/generateSEOGraphTool.js.map +1 -1
  133. package/dist/tools/generateTopicalClusters.d.ts +2 -0
  134. package/dist/tools/generateTopicalClusters.d.ts.map +1 -1
  135. package/dist/tools/generateTopicalClusters.js +1 -0
  136. package/dist/tools/generateTopicalClusters.js.map +1 -1
  137. package/dist/tools/generateYoutubeSearchResultsGraph.d.ts +1 -0
  138. package/dist/tools/generateYoutubeSearchResultsGraph.d.ts.map +1 -1
  139. package/dist/tools/generateYoutubeSearchResultsGraph.js +1 -0
  140. package/dist/tools/generateYoutubeSearchResultsGraph.js.map +1 -1
  141. package/dist/tools/getMemory.d.ts +8 -7
  142. package/dist/tools/getMemory.d.ts.map +1 -1
  143. package/dist/tools/getMemory.js +19 -2
  144. package/dist/tools/getMemory.js.map +1 -1
  145. package/dist/tools/getNodeNeighborhood.d.ts +30 -0
  146. package/dist/tools/getNodeNeighborhood.d.ts.map +1 -0
  147. package/dist/tools/getNodeNeighborhood.js +68 -0
  148. package/dist/tools/getNodeNeighborhood.js.map +1 -0
  149. package/dist/tools/getProjectLearnings.d.ts +2 -0
  150. package/dist/tools/getProjectLearnings.d.ts.map +1 -1
  151. package/dist/tools/getProjectLearnings.js +12 -125
  152. package/dist/tools/getProjectLearnings.js.map +1 -1
  153. package/dist/tools/index.d.ts +3 -0
  154. package/dist/tools/index.d.ts.map +1 -1
  155. package/dist/tools/index.js +3 -0
  156. package/dist/tools/index.js.map +1 -1
  157. package/dist/tools/listGraphs.d.ts +1 -0
  158. package/dist/tools/listGraphs.d.ts.map +1 -1
  159. package/dist/tools/listGraphs.js +1 -0
  160. package/dist/tools/listGraphs.js.map +1 -1
  161. package/dist/tools/optimizeKnowledgeBase.d.ts +1 -0
  162. package/dist/tools/optimizeKnowledgeBase.d.ts.map +1 -1
  163. package/dist/tools/optimizeKnowledgeBase.js +19 -6
  164. package/dist/tools/optimizeKnowledgeBase.js.map +1 -1
  165. package/dist/tools/optimizeReasoning.d.ts +2 -0
  166. package/dist/tools/optimizeReasoning.d.ts.map +1 -1
  167. package/dist/tools/optimizeReasoning.js +1 -0
  168. package/dist/tools/optimizeReasoning.js.map +1 -1
  169. package/dist/tools/optimizeTextStructure.d.ts +2 -0
  170. package/dist/tools/optimizeTextStructure.d.ts.map +1 -1
  171. package/dist/tools/optimizeTextStructure.js +1 -0
  172. package/dist/tools/optimizeTextStructure.js.map +1 -1
  173. package/dist/tools/retrieveContextForPromptFromGraph.d.ts +3 -0
  174. package/dist/tools/retrieveContextForPromptFromGraph.d.ts.map +1 -1
  175. package/dist/tools/retrieveContextForPromptFromGraph.js +4 -1
  176. package/dist/tools/retrieveContextForPromptFromGraph.js.map +1 -1
  177. package/dist/tools/searchGraphs.d.ts +1 -0
  178. package/dist/tools/searchGraphs.d.ts.map +1 -1
  179. package/dist/tools/searchGraphs.js +1 -0
  180. package/dist/tools/searchGraphs.js.map +1 -1
  181. package/dist/tools/searchGraphsFetch.d.ts +1 -0
  182. package/dist/tools/searchGraphsFetch.d.ts.map +1 -1
  183. package/dist/tools/searchGraphsFetch.js +2 -1
  184. package/dist/tools/searchGraphsFetch.js.map +1 -1
  185. package/dist/tools/updateStatements.d.ts +2 -2
  186. package/dist/types/index.d.ts +97 -0
  187. package/dist/types/index.d.ts.map +1 -1
  188. package/dist/utils/elicitApproval.d.ts +42 -0
  189. package/dist/utils/elicitApproval.d.ts.map +1 -0
  190. package/dist/utils/elicitApproval.js +83 -0
  191. package/dist/utils/elicitApproval.js.map +1 -0
  192. package/dist/utils/graphInput.d.ts +5 -1
  193. package/dist/utils/graphInput.d.ts.map +1 -1
  194. package/dist/utils/graphInput.js +4 -3
  195. package/dist/utils/graphInput.js.map +1 -1
  196. package/dist/utils/learnings.d.ts +4 -2
  197. package/dist/utils/learnings.d.ts.map +1 -1
  198. package/dist/utils/learnings.js +4 -2
  199. package/dist/utils/learnings.js.map +1 -1
  200. package/dist/utils/memoryResult.d.ts +23 -0
  201. package/dist/utils/memoryResult.d.ts.map +1 -0
  202. package/dist/utils/memoryResult.js +27 -0
  203. package/dist/utils/memoryResult.js.map +1 -0
  204. package/dist/utils/textSignature.d.ts +231 -0
  205. package/dist/utils/textSignature.d.ts.map +1 -0
  206. package/dist/utils/textSignature.js +738 -0
  207. package/dist/utils/textSignature.js.map +1 -0
  208. package/dist/utils/transformers.d.ts +3 -2
  209. package/dist/utils/transformers.d.ts.map +1 -1
  210. package/dist/utils/transformers.js +29 -1
  211. package/dist/utils/transformers.js.map +1 -1
  212. package/dist/utils/wikilinksMode.d.ts +12 -2
  213. package/dist/utils/wikilinksMode.d.ts.map +1 -1
  214. package/dist/utils/wikilinksMode.js +18 -5
  215. package/dist/utils/wikilinksMode.js.map +1 -1
  216. package/llms-full.infranodus.txt +30 -9
  217. package/llms-full.txt +30 -9
  218. package/llms.infranodus.txt +6 -2
  219. package/llms.txt +6 -2
  220. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwCxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2D9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkE5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyC1B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDhC,CAAC;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CzC,CAAC;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAiC,CAAC;AAEzE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAiBrC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;EAa1B,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;EAO1C,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;EAwBxC,CAAC;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrC,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;EA8B3C,CAAC;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoGtC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgElC,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqC5C,CAAC;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQxC,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiE9C,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ1C,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6E1C,CAAC;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQtC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmD1C,CAAC;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQtC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;EA+BtC,CAAC;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAA8B,CAAC;AAEnE,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmD1C,CAAC;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQtC,CAAC;AAEH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;EAyClD,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuD/C,CAAC;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ3C,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDrC,CAAC;AAmDH,QAAA,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B3C,CAAC;AAEH,OAAO,EAAE,uCAAuC,EAAE,CAAC;AACnD,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACR,CAAC;AAEzC,QAAA,MAAM,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B9C,CAAC;AAEH,OAAO,EAAE,0CAA0C,EAAE,CAAC;AACtD,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACR,CAAC;AAE5C,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6FjD,CAAC;AAEH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkGlD,CAAC;AAEH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmGjD,CAAC;AAEH,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;EAqFpD,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqGjC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DpC,CAAC;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOjC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;EAsC3B,CAAC;AAaH,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AAIH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAgCnC,CAAC;AAEJ,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;EAgCpC,CAAC;AAMH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgEvC,CAAC;AAMH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DtC,CAAC;AASH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDjC,CAAC;AAMH,eAAO,MAAM,iBAAiB;;;;;;;;;EAa5B,CAAC;AAMH,wDAAwD;AACxD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;EAkCpC,CAAC;AAMH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwGjC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,20 @@
1
1
  import { z } from "zod";
2
2
  import { brand } from "../config/brand.js";
3
- import { WikilinksModeEnum, wikilinksModeDescription, } from "../utils/wikilinksMode.js";
3
+ import { WikilinksModeEnum, categoriesAsNodesDescription, wikilinksModeDescription, } from "../utils/wikilinksMode.js";
4
4
  /**
5
5
  * Optional alternative to `text` / `url`, shared by every tool that builds a
6
6
  * graph from content: discrete statements with optional per-statement
7
7
  * metadata. Reused across schemas — zod field instances are immutable.
8
8
  */
9
+ /**
10
+ * Opt-in multifractal spectrum inside `fractal_variability`. Shared by the
11
+ * graph-generation tools whose endpoints (/graphAndStatements,
12
+ * /graphsAndStatements) honor the flag.
13
+ */
14
+ const multifractalField = z
15
+ .boolean()
16
+ .default(false)
17
+ .describe("Compute the multifractal spectrum (q, h(q), width, label) inside the fractal_variability statistics. Off by default: it adds ~0.5 s per graph. Only meaningful when the graph statistics are returned (includeGraph, fullGraph, addNodesAndEdges, or extractEntitiesOnly); without them the basic fractal_variability block is returned with multifractal: null.");
9
18
  const statementsField = z
10
19
  .array(z.string().min(1))
11
20
  .min(1)
@@ -14,11 +23,18 @@ const statementsField = z
14
23
  const categoriesField = z
15
24
  .array(z.array(z.string()))
16
25
  .optional()
17
- .describe("Per-statement metadata labels, one entry per statement (empty array for none, length must match `statements`). Each label becomes a [[label]] node linked to that statement's concepts only, so author / source / tag / section can be filtered and grouped in the graph. Requires `statements`; omit when there is no metadata.");
26
+ .describe("Per-statement metadata labels, one entry per statement (empty array for none, length must match `statements`). Each label is stored on its statement as metadata, so author / source / tag / section can be filtered and grouped in the app and targeted by delete_statements / update_statements; labels become [[label]] nodes only when `categoriesAsNodes` is true. Requires `statements`; omit when there is no metadata.");
27
+ /** Companion of `categories`: off by default so the labels stay metadata;
28
+ * on only when the connections between pages/files (the labels) are the
29
+ * point, as in large knowledge bases and Obsidian vaults. */
30
+ const categoriesAsNodesField = z
31
+ .boolean()
32
+ .default(false)
33
+ .describe(categoriesAsNodesDescription);
18
34
  /** Saved graphs freeze their processing settings at creation (lib/context.js
19
35
  * applies contextSettings only when the context does not already exist), so
20
36
  * categories on a later upload to the same graph produce no label nodes. */
21
- const SAVED_GRAPH_CATEGORIES_NOTE = "Per-statement metadata labels, one entry per statement (empty array for none, length must match `statements`). Each label becomes a [[label]] node linked to that statement's concepts only, so author / source / tag / section can be filtered and grouped in the graph. Takes effect only when the graph is FIRST created — uploads to an existing graphName keep its original settings and the labels are ignored. Requires `statements`; omit when there is no metadata.";
37
+ const SAVED_GRAPH_CATEGORIES_NOTE = "Per-statement metadata labels, one entry per statement (empty array for none, length must match `statements`). Each label is stored on its statement as metadata, so author / source / tag / section can be filtered and grouped in the app and targeted by delete_statements / update_statements; labels become [[label]] nodes only when `categoriesAsNodes` is true. Takes effect only when the graph is FIRST created — uploads to an existing graphName keep its original settings and the labels are ignored. Requires `statements`; omit when there is no metadata.";
22
38
  const timestampsField = z
23
39
  .array(z.string())
24
40
  .optional()
@@ -35,11 +51,13 @@ export const GenerateGraphSchema = z.object({
35
51
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide either this or text, not both."),
36
52
  statements: statementsField,
37
53
  categories: categoriesField,
54
+ categoriesAsNodes: categoriesAsNodesField,
38
55
  timestamps: timestampsField,
39
56
  includeStatements: z
40
57
  .boolean()
41
58
  .default(false)
42
59
  .describe("Include processed statements in response (true only if explicitly needed or requested)"),
60
+ multifractal: multifractalField,
43
61
  includeGraph: z
44
62
  .boolean()
45
63
  .default(true)
@@ -81,11 +99,13 @@ export const CreateGraphSchema = z.object({
81
99
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide either this or text, not both."),
82
100
  statements: statementsField,
83
101
  categories: categoriesField.describe(`${SAVED_GRAPH_CATEGORIES_NOTE}`),
102
+ categoriesAsNodes: categoriesAsNodesField,
84
103
  timestamps: timestampsField,
85
104
  includeStatements: z
86
105
  .boolean()
87
106
  .default(false)
88
107
  .describe("Include processed statements in response (add only if explicitly needed)"),
108
+ multifractal: multifractalField,
89
109
  includeGraph: z
90
110
  .boolean()
91
111
  .default(false)
@@ -112,23 +132,59 @@ export const CreateGraphSchema = z.object({
112
132
  wikilinksMode: WikilinksModeEnum.default("default").describe(wikilinksModeDescription +
113
133
  " For saved graphs this applies only when the graph is FIRST created; uploads to an existing graphName keep its original setting."),
114
134
  });
135
+ // Memory scopes (see docs/drafts/infranodus-memory-system.md): `topic` is an
136
+ // outside subject, client or case (graph memory-<topic>), `personal` the
137
+ // user's own preferences and setup (personal-<user>). Both need
138
+ // enable_memory once and write through a dry run, like project learnings.
139
+ // Processing language for the memory and learnings graphs. Passed on to the
140
+ // app, which validates it against its supported list.
141
+ const memoryHopsField = z
142
+ .number()
143
+ .int()
144
+ .min(1)
145
+ .max(3)
146
+ .optional()
147
+ .describe("How far to follow the graph's links. With `prompt`: default 2, so statements connected to the task's concepts through one intermediate concept come too (similarity 1 = direct, 0.5 = through a hop). With an entity: 2 or 3 returns what the entity is connected to, by hop distance (`connected`: node, hop, via), with the statements on those links; omitted, every statement that mentions it.");
148
+ const memoryLanguageField = z
149
+ .string()
150
+ .optional()
151
+ .describe("Processing language (e.g. 'EN', 'DE', 'FR', 'AUTO'). Only when the content is not in the account's default language.");
152
+ const memoryScopeField = z
153
+ .enum(["topic", "personal"])
154
+ .optional()
155
+ .describe("Which kept memory to use instead of a free graphName: 'topic' (facts about an outside subject, client or case; needs `topic`) or 'personal' (the user's own preferences and setup). The graph is named for you (memory-<topic> / personal-<user>) and must have been enabled with enable_memory.");
156
+ const memoryTopicField = z
157
+ .string()
158
+ .min(1)
159
+ .optional()
160
+ .describe("Topic name when scope is 'topic' (e.g. the client, case or subject). Use the same name every time for the same topic.");
115
161
  export const AddMemorySchema = z.object({
162
+ scope: memoryScopeField,
163
+ topic: memoryTopicField,
164
+ language: memoryLanguageField,
165
+ confirm: z
166
+ .boolean()
167
+ .default(false)
168
+ .describe("Only with `scope`: false (default) = dry run that returns what would be written; show it to the user and ask. true = write. Ignored with graphName, which writes immediately."),
116
169
  graphName: z
117
170
  .string()
118
- .min(1, "Graph name is required")
171
+ .min(1, "Graph name must be non-empty when provided")
119
172
  .max(28, "Graph name must be less than 28 characters")
120
- .describe(`Name of the graph to add the memory to in ${brand.name} - lowercase, dashes for spaces, no special characters. Auto-generate from the context of the conversation (if previously available) or use the nanme of the LLM client or project, or use the name the user explicitly provided or requested.`),
173
+ .optional()
174
+ .describe(`Without \`scope\`: name of the graph to add the memory to in ${brand.name} - lowercase, dashes for spaces, no special characters. Auto-generate from the context of the conversation (if previously available) or use the name of the LLM client or project, or use the name the user explicitly provided or requested.`),
121
175
  text: z
122
176
  .string()
123
177
  .optional()
124
178
  .describe("Text that you'd like to analyze. Use new lines to separate separate statements, relations, and paragraphs in each text (but not the sentences). Detect the entities in every statement and use [[wikilinks]] syntax to mark them, unless the user explicitly requests automatic entity detection. Every statement should have at least two entities marked. Provide either this or statements."),
125
179
  statements: statementsField,
126
180
  categories: categoriesField.describe(SAVED_GRAPH_CATEGORIES_NOTE),
181
+ categoriesAsNodes: categoriesAsNodesField,
127
182
  timestamps: timestampsField,
128
183
  includeStatements: z
129
184
  .boolean()
130
185
  .default(false)
131
186
  .describe("Include processed statements in response (add only if needed for further analysis)"),
187
+ multifractal: multifractalField,
132
188
  includeGraph: z
133
189
  .boolean()
134
190
  .default(false)
@@ -154,11 +210,13 @@ export const AnalyzeTextSchemaBase = z.object({
154
210
  .describe("URL to fetch content from (e.g. webpage or YouTube video transcript). Provide either this or text."),
155
211
  statements: statementsField,
156
212
  categories: categoriesField,
213
+ categoriesAsNodes: categoriesAsNodesField,
157
214
  timestamps: timestampsField,
158
215
  includeStatements: z
159
216
  .boolean()
160
217
  .default(false)
161
218
  .describe("Include processed statements in response (add only if explicitly needed or if user requested the text of the URL / YouTube transcript)"),
219
+ multifractal: multifractalField,
162
220
  includeGraph: z
163
221
  .boolean()
164
222
  .default(false)
@@ -184,6 +242,39 @@ export const AnalyzeTextSchemaBase = z.object({
184
242
  export const AnalyzeTextSchema = AnalyzeTextSchemaBase.refine((data) => (data.text !== undefined && data.text.trim().length > 0) ||
185
243
  (data.url !== undefined && data.url.length > 0) ||
186
244
  (data.statements !== undefined && data.statements.length > 0), { message: "Provide text, url, or statements for analysis." });
245
+ export const AnalyzeTextSignatureSchemaBase = z.object({
246
+ text: z
247
+ .string()
248
+ .optional()
249
+ .describe("Text whose signature to measure. Use new lines to separate paragraphs (not sentences). Provide one of: this, url, or statements. Under ~30 sentences the rhythm measures are noisy."),
250
+ url: z
251
+ .string()
252
+ .url()
253
+ .optional()
254
+ .describe("URL to fetch content from (webpage or YouTube video transcript). Provide either this or text."),
255
+ statements: statementsField,
256
+ categories: categoriesField,
257
+ timestamps: timestampsField,
258
+ multifractal: z
259
+ .boolean()
260
+ .default(true)
261
+ .describe("Compute the multifractal spectrum of the topic path (adds ~0.5-1 s). On by default here because it feeds the pacing reading and the AI-likeness estimate; set false for speed."),
262
+ maxNodes: z
263
+ .number()
264
+ .int()
265
+ .positive()
266
+ .max(1000)
267
+ .optional()
268
+ .describe("Maximum number of concepts kept in the graph (default 150). Words cut by the cap are dropped from the word path; raise it (e.g. 500) for long texts so the path is complete."),
269
+ modifyAnalyzedText: z
270
+ .enum(["none", "detectEntities", "extractEntitiesOnly"])
271
+ .default("none")
272
+ .describe("Entity detection: none (normal, recommended for signatures), detectEntities (mix entities and words), extractEntitiesOnly (entities only)."),
273
+ wikilinksMode: WikilinksModeEnum.default("default").describe(wikilinksModeDescription),
274
+ });
275
+ export const AnalyzeTextSignatureSchema = AnalyzeTextSignatureSchemaBase.refine((data) => (data.text !== undefined && data.text.trim().length > 0) ||
276
+ (data.url !== undefined && data.url.length > 0) ||
277
+ (data.statements !== undefined && data.statements.length > 0), { message: "Provide text, url, or statements for analysis." });
187
278
  export const AnalyzeExistingGraphSchemaBase = z.object({
188
279
  graphName: z
189
280
  .string()
@@ -197,6 +288,7 @@ export const AnalyzeExistingGraphSchemaBase = z.object({
197
288
  .boolean()
198
289
  .default(false)
199
290
  .describe("Include processed statements in response (add only if explicitly needed)"),
291
+ multifractal: multifractalField,
200
292
  includeGraph: z
201
293
  .boolean()
202
294
  .default(false)
@@ -234,6 +326,21 @@ export const SearchExistingGraphsSchema = z.object({
234
326
  .describe(`Types of the existing ${brand.name} graphs to search in (array of strings, empty for all)`),
235
327
  });
236
328
  export const getMemorySchema = z.object({
329
+ scope: memoryScopeField,
330
+ topic: memoryTopicField,
331
+ language: memoryLanguageField,
332
+ hops: memoryHopsField.describe("Only with `scope`. How far to follow the graph's links. With `prompt`: default 2 (statements connected through one intermediate concept come too). With entityName: 2 or 3 returns what it is connected to, by hop distance (`connected`: node, hop, via), with the statements on those links; omitted, every statement that mentions it."),
333
+ prompt: z
334
+ .string()
335
+ .optional()
336
+ .describe("Only with `scope`: the task or question at hand; returns the most relevant statements (GraphRAG) plus an overview."),
337
+ limit: z
338
+ .number()
339
+ .int()
340
+ .min(1)
341
+ .max(50)
342
+ .default(15)
343
+ .describe("Only with `scope`: maximum number of statements to return."),
237
344
  entityName: z
238
345
  .string()
239
346
  .default("")
@@ -261,6 +368,7 @@ export const GenerateContentGapsSchemaBase = z.object({
261
368
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide one of: text, url, statements, or graphName."),
262
369
  statements: statementsField,
263
370
  categories: categoriesField,
371
+ categoriesAsNodes: categoriesAsNodesField,
264
372
  timestamps: timestampsField,
265
373
  graphName: z
266
374
  .string()
@@ -283,6 +391,7 @@ export const generateContextualHintSchemaBase = z.object({
283
391
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide one of: text, url, statements, or graphName."),
284
392
  statements: statementsField,
285
393
  categories: categoriesField,
394
+ categoriesAsNodes: categoriesAsNodesField,
286
395
  timestamps: timestampsField,
287
396
  graphName: z
288
397
  .string()
@@ -349,6 +458,7 @@ export const GenerateOntologyGraphSchema = z.object({
349
458
  .boolean()
350
459
  .default(true)
351
460
  .describe(`Whether to save the generated ontology as a persistent ${brand.name} graph (true by default). When true, the graph is stored under your account and a link is returned. Set to false if the user explicitly asks not to save, or when you only need a one-off AI ontology overview of a topic for the current context that won't be reused later — in that case the generated ontology statements are returned directly without being persisted.`),
461
+ multifractal: multifractalField,
352
462
  includeGraph: z
353
463
  .boolean()
354
464
  .default(false)
@@ -409,6 +519,7 @@ export const AnalyzeLlmResultsSchema = z.object({
409
519
  .boolean()
410
520
  .default(false)
411
521
  .describe(`Whether to save the LLM overview as a persistent ${brand.name} graph (true by default). Set to false if the user asks not to save, or when you only need a one-off look at how the LLM frames the topic for the current conversation.`),
522
+ multifractal: multifractalField,
412
523
  includeGraph: z
413
524
  .boolean()
414
525
  .default(false)
@@ -434,6 +545,7 @@ export const GenerateTopicalClustersSchemaBase = z.object({
434
545
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide one of: text, url, statements, or graphName."),
435
546
  statements: statementsField,
436
547
  categories: categoriesField,
548
+ categoriesAsNodes: categoriesAsNodesField,
437
549
  timestamps: timestampsField,
438
550
  graphName: z
439
551
  .string()
@@ -466,6 +578,7 @@ export const GenerateResearchQuestionsSchemaBase = z.object({
466
578
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide one of: text, url, statements, or graphName."),
467
579
  statements: statementsField,
468
580
  categories: categoriesField,
581
+ categoriesAsNodes: categoriesAsNodesField,
469
582
  timestamps: timestampsField,
470
583
  graphName: z
471
584
  .string()
@@ -524,6 +637,7 @@ export const GenerateResearchIdeasSchemaBase = z.object({
524
637
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide one of: text, url, statements, or graphName."),
525
638
  statements: statementsField,
526
639
  categories: categoriesField,
640
+ categoriesAsNodes: categoriesAsNodesField,
527
641
  timestamps: timestampsField,
528
642
  graphName: z
529
643
  .string()
@@ -590,6 +704,7 @@ export const OptimizeTextStructureSchemaBase = z.object({
590
704
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide one of: text, url, statements, or graphName."),
591
705
  statements: statementsField,
592
706
  categories: categoriesField,
707
+ categoriesAsNodes: categoriesAsNodesField,
593
708
  timestamps: timestampsField,
594
709
  graphName: z
595
710
  .string()
@@ -631,6 +746,7 @@ export const OptimizeReasoningSchemaBase = z.object({
631
746
  .describe("The current reasoning trace or chat conversation to analyze structurally. Paste the model's own chain-of-thought / reasoning output, the running dialogue with the user, or both concatenated. Use new lines to separate distinct reasoning steps, turns, or paragraphs (but not individual sentences). Provide either this or statements."),
632
747
  statements: statementsField,
633
748
  categories: categoriesField,
749
+ categoriesAsNodes: categoriesAsNodesField,
634
750
  timestamps: timestampsField,
635
751
  modelToUse: z
636
752
  .enum([
@@ -665,6 +781,7 @@ export const DevelopLatentConceptsSchemaBase = z.object({
665
781
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide one of: text, url, statements, or graphName."),
666
782
  statements: statementsField,
667
783
  categories: categoriesField,
784
+ categoriesAsNodes: categoriesAsNodesField,
668
785
  timestamps: timestampsField,
669
786
  graphName: z
670
787
  .string()
@@ -728,6 +845,47 @@ export const RetrieveContextForPromptFromGraphSchema = z.object({
728
845
  .boolean()
729
846
  .default(false)
730
847
  .describe("Include graph in the response to provide underlying knowledge graph structure"),
848
+ hops: z
849
+ .number()
850
+ .int()
851
+ .min(1)
852
+ .max(3)
853
+ .default(1)
854
+ .describe("How far from the prompt's concepts to retrieve. 1 = statements sharing a concept with the prompt; 2 = also statements connected through one intermediate concept (similarityScore 1 = direct, 1/hops = through a hop). Use 2 for a question about one concept and what it relates to."),
855
+ topK: z
856
+ .number()
857
+ .int()
858
+ .min(1)
859
+ .max(50)
860
+ .default(8)
861
+ .describe("How many of the strongest matching relations (edges) to read statements from"),
862
+ });
863
+ export const GetNodeNeighborhoodSchema = z.object({
864
+ graphName: z
865
+ .string()
866
+ .min(1, "Graph name is required")
867
+ .describe(`Name of the existing ${brand.name} graph in your account`),
868
+ node: z
869
+ .union([z.string().min(1), z.array(z.string().min(1)).min(1).max(5)])
870
+ .describe("The concept to look up, with or without [[ ]] (case, spaces and hyphens don't matter). Several spellings of one concept can be passed together, e.g. [\"gpu\", \"gpus\"]."),
871
+ hops: z
872
+ .number()
873
+ .int()
874
+ .min(1)
875
+ .max(3)
876
+ .default(2)
877
+ .describe("How many steps away to go: 1 = the concepts it is directly linked to; 2 = also the concepts linked to those; 3 = one step further."),
878
+ maxNeighbors: z
879
+ .number()
880
+ .int()
881
+ .min(1)
882
+ .max(200)
883
+ .default(30)
884
+ .describe("Maximum number of connected concepts to return, nearest and strongest first"),
885
+ includeStatements: z
886
+ .boolean()
887
+ .default(true)
888
+ .describe("Include the statements on those links (with their categories and hop distance)"),
731
889
  });
732
890
  export const GenerateResponsesFromGraphSchemaBase = z.object({
733
891
  graphName: z
@@ -750,6 +908,7 @@ export const GenerateResponsesFromGraphSchemaBase = z.object({
750
908
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide one of: text, url, statements, or graphName."),
751
909
  statements: statementsField,
752
910
  categories: categoriesField,
911
+ categoriesAsNodes: categoriesAsNodesField,
753
912
  timestamps: timestampsField,
754
913
  prompt: z
755
914
  .string()
@@ -866,6 +1025,7 @@ const GenerateOverlapGraphFromTextsSchemaBase = z.object({
866
1025
  .array(contextItemTextUrlOrGraphSchema)
867
1026
  .min(2, "At least two contexts are required for overlap")
868
1027
  .describe("Array of sources to analyze and find content overlaps for. Each item is an object with exactly one of: { text: string }, { statements: string[] } (optionally with categories / timestamps), { url: string }, or { graphName: string }. Example: [{ text: '...' }, { url: 'https://...' }, { graphName: 'my-graph' }]."),
1028
+ categoriesAsNodes: categoriesAsNodesField,
869
1029
  modifyAnalyzedText: z
870
1030
  .enum(["none", "detectEntities", "extractEntitiesOnly"])
871
1031
  .default("none")
@@ -874,6 +1034,7 @@ const GenerateOverlapGraphFromTextsSchemaBase = z.object({
874
1034
  .boolean()
875
1035
  .default(false)
876
1036
  .describe("Include processed statements in response (add only if explicitly needed)"),
1037
+ multifractal: multifractalField,
877
1038
  includeGraph: z
878
1039
  .boolean()
879
1040
  .default(false)
@@ -890,6 +1051,7 @@ const GenerateDifferenceGraphFromTextsSchemaBase = z.object({
890
1051
  .array(contextItemTextUrlOrGraphSchema)
891
1052
  .min(2, "At least two contexts (target + one reference) are required")
892
1053
  .describe("Array where the FIRST item is the target to analyze for missing parts; REMAINING items are reference sources. Each item is an object with exactly one of: { text: string }, { statements: string[] } (optionally with categories / timestamps), { url: string }, or { graphName: string }. Example: [{ text: '...' }, { url: 'https://...' }, { graphName: 'my-graph' }]."),
1054
+ categoriesAsNodes: categoriesAsNodesField,
893
1055
  modifyAnalyzedText: z
894
1056
  .enum(["none", "detectEntities", "extractEntitiesOnly"])
895
1057
  .default("none")
@@ -898,6 +1060,7 @@ const GenerateDifferenceGraphFromTextsSchemaBase = z.object({
898
1060
  .boolean()
899
1061
  .default(false)
900
1062
  .describe("Include processed statements in response (add only if explicitly needed)"),
1063
+ multifractal: multifractalField,
901
1064
  includeGraph: z
902
1065
  .boolean()
903
1066
  .default(false)
@@ -1239,6 +1402,7 @@ export const GenerateSEOGraphSchema = z.object({
1239
1402
  .describe("URL to fetch content from for SEO analysis. Provide either this or text, not both."),
1240
1403
  statements: statementsField,
1241
1404
  categories: categoriesField,
1405
+ categoriesAsNodes: categoriesAsNodesField,
1242
1406
  contentToExtract: z
1243
1407
  .enum(["all", "header tags", "link tags"])
1244
1408
  .default("all")
@@ -1324,6 +1488,7 @@ export const DevelopTextToolSchemaBase = z.object({
1324
1488
  .describe("URL to fetch content from or YouTube video URL to fetch transcript. Provide one of: text, url, statements, or graphName."),
1325
1489
  statements: statementsField,
1326
1490
  categories: categoriesField,
1491
+ categoriesAsNodes: categoriesAsNodesField,
1327
1492
  timestamps: timestampsField,
1328
1493
  graphName: z
1329
1494
  .string()
@@ -1402,11 +1567,20 @@ const projectField = z
1402
1567
  .describe("Name of the project the learnings belong to — the repo or folder name, git remote basename, or whatever the user calls it. Use the same name every time for the same project (call get_project_learnings without a project to list the names already in use). Becomes the graph name learn-<slug>.");
1403
1568
  export const EnableProjectLearningsSchema = z.object({
1404
1569
  project: projectField,
1570
+ language: memoryLanguageField,
1571
+ });
1572
+ export const EnableMemorySchema = z.object({
1573
+ scope: z
1574
+ .enum(["topic", "personal"])
1575
+ .describe("'topic' for facts about an outside subject, client or case (needs `topic`); 'personal' for the user's own preferences and setup."),
1576
+ topic: memoryTopicField,
1577
+ language: memoryLanguageField,
1405
1578
  });
1406
1579
  // Length parity between `types` and `statements` is checked in the handler
1407
1580
  // (a .refine() would hide `.shape`, which tool registration needs).
1408
1581
  export const AddProjectLearningsSchema = z.object({
1409
1582
  project: projectField,
1583
+ language: memoryLanguageField,
1410
1584
  statements: z
1411
1585
  .array(z.string().min(1))
1412
1586
  .min(1)
@@ -1431,6 +1605,8 @@ export const AddProjectLearningsSchema = z.object({
1431
1605
  .describe("false (default) = dry run: returns what would be written (new vs reinforced duplicates) and writes nothing — show it to the user and ask whether to save. true = write. Pass true directly only when the user has said they don't want to be asked each time."),
1432
1606
  });
1433
1607
  export const GetProjectLearningsSchema = z.object({
1608
+ language: memoryLanguageField,
1609
+ hops: memoryHopsField,
1434
1610
  project: z
1435
1611
  .string()
1436
1612
  .optional()
@@ -1517,6 +1693,7 @@ export const OptimizeKnowledgeBaseSchema = z.object({
1517
1693
  .describe(`Name of the saved ${brand.name} graph that represents the project: e.g. repo-<project>-digest or vault-<project>-digest (the LLM-written digest of how it works), repo-<project>-structure (the deterministic map of files, imports, exports), repo-<project>-docs, vault-<project>-links, or learn-<project>. Provide this or statements/text.`),
1518
1694
  statements: statementsField,
1519
1695
  categories: categoriesField,
1696
+ categoriesAsNodes: categoriesAsNodesField,
1520
1697
  text: z
1521
1698
  .string()
1522
1699
  .optional()