keywordgraph-mcp-server 1.7.4 → 1.8.4

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 (111) hide show
  1. package/README.md +57 -4
  2. package/dist/api/client.d.ts +3 -1
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/client.js +2 -1
  5. package/dist/api/client.js.map +1 -1
  6. package/dist/api/config-store.d.ts +11 -0
  7. package/dist/api/config-store.d.ts.map +1 -1
  8. package/dist/api/config-store.js +7 -0
  9. package/dist/api/config-store.js.map +1 -1
  10. package/dist/config/brand.d.ts.map +1 -1
  11. package/dist/config/brand.js +11 -0
  12. package/dist/config/brand.js.map +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +83 -6
  15. package/dist/index.js.map +1 -1
  16. package/dist/instructions.d.ts.map +1 -1
  17. package/dist/instructions.js +9 -2
  18. package/dist/instructions.js.map +1 -1
  19. package/dist/prompts/index.d.ts.map +1 -1
  20. package/dist/prompts/index.js +32 -0
  21. package/dist/prompts/index.js.map +1 -1
  22. package/dist/resources/about.d.ts.map +1 -1
  23. package/dist/resources/about.js +9 -1
  24. package/dist/resources/about.js.map +1 -1
  25. package/dist/schemas/index.d.ts +353 -63
  26. package/dist/schemas/index.d.ts.map +1 -1
  27. package/dist/schemas/index.js +407 -31
  28. package/dist/schemas/index.js.map +1 -1
  29. package/dist/tools/addProjectLearnings.d.ts +30 -0
  30. package/dist/tools/addProjectLearnings.d.ts.map +1 -0
  31. package/dist/tools/addProjectLearnings.js +197 -0
  32. package/dist/tools/addProjectLearnings.js.map +1 -0
  33. package/dist/tools/analyzeLlmResults.d.ts +1 -1
  34. package/dist/tools/analyzeLlmResults.d.ts.map +1 -1
  35. package/dist/tools/analyzeLlmResults.js +5 -2
  36. package/dist/tools/analyzeLlmResults.js.map +1 -1
  37. package/dist/tools/deleteGraph.d.ts +43 -0
  38. package/dist/tools/deleteGraph.d.ts.map +1 -0
  39. package/dist/tools/deleteGraph.js +145 -0
  40. package/dist/tools/deleteGraph.js.map +1 -0
  41. package/dist/tools/deleteStatements.d.ts +106 -0
  42. package/dist/tools/deleteStatements.d.ts.map +1 -0
  43. package/dist/tools/deleteStatements.js +288 -0
  44. package/dist/tools/deleteStatements.js.map +1 -0
  45. package/dist/tools/developConceptualBridges.d.ts +1 -1
  46. package/dist/tools/developLatentTopics.d.ts +1 -1
  47. package/dist/tools/developTextTool.d.ts +1 -1
  48. package/dist/tools/enableProjectLearnings.d.ts +27 -0
  49. package/dist/tools/enableProjectLearnings.d.ts.map +1 -0
  50. package/dist/tools/enableProjectLearnings.js +68 -0
  51. package/dist/tools/enableProjectLearnings.js.map +1 -0
  52. package/dist/tools/generateOntologyGraph.d.ts +10 -3
  53. package/dist/tools/generateOntologyGraph.d.ts.map +1 -1
  54. package/dist/tools/generateOntologyGraph.js +142 -34
  55. package/dist/tools/generateOntologyGraph.js.map +1 -1
  56. package/dist/tools/generateResearchIdeas.d.ts +1 -1
  57. package/dist/tools/generateResearchQuestions.d.ts +1 -1
  58. package/dist/tools/generateResponses.d.ts +1 -1
  59. package/dist/tools/getProjectLearnings.d.ts +30 -0
  60. package/dist/tools/getProjectLearnings.d.ts.map +1 -0
  61. package/dist/tools/getProjectLearnings.js +151 -0
  62. package/dist/tools/getProjectLearnings.js.map +1 -0
  63. package/dist/tools/index.d.ts +8 -0
  64. package/dist/tools/index.d.ts.map +1 -1
  65. package/dist/tools/index.js +8 -0
  66. package/dist/tools/index.js.map +1 -1
  67. package/dist/tools/optimizeKnowledgeBase.d.ts +40 -0
  68. package/dist/tools/optimizeKnowledgeBase.d.ts.map +1 -0
  69. package/dist/tools/optimizeKnowledgeBase.js +230 -0
  70. package/dist/tools/optimizeKnowledgeBase.js.map +1 -0
  71. package/dist/tools/optimizeReasoning.d.ts +1 -1
  72. package/dist/tools/optimizeTextStructure.d.ts +1 -1
  73. package/dist/tools/submitWorkflowFeedback.d.ts +35 -0
  74. package/dist/tools/submitWorkflowFeedback.d.ts.map +1 -0
  75. package/dist/tools/submitWorkflowFeedback.js +62 -0
  76. package/dist/tools/submitWorkflowFeedback.js.map +1 -0
  77. package/dist/tools/updateStatements.d.ts +134 -0
  78. package/dist/tools/updateStatements.d.ts.map +1 -0
  79. package/dist/tools/updateStatements.js +378 -0
  80. package/dist/tools/updateStatements.js.map +1 -0
  81. package/dist/types/index.d.ts +30 -0
  82. package/dist/types/index.d.ts.map +1 -1
  83. package/dist/utils/callTracking.d.ts +29 -0
  84. package/dist/utils/callTracking.d.ts.map +1 -0
  85. package/dist/utils/callTracking.js +88 -0
  86. package/dist/utils/callTracking.js.map +1 -0
  87. package/dist/utils/feedback.d.ts +63 -0
  88. package/dist/utils/feedback.d.ts.map +1 -0
  89. package/dist/utils/feedback.js +115 -0
  90. package/dist/utils/feedback.js.map +1 -0
  91. package/dist/utils/graphInput.d.ts +1 -0
  92. package/dist/utils/graphInput.d.ts.map +1 -1
  93. package/dist/utils/graphInput.js +1 -1
  94. package/dist/utils/graphInput.js.map +1 -1
  95. package/dist/utils/graphLookup.d.ts +29 -0
  96. package/dist/utils/graphLookup.d.ts.map +1 -0
  97. package/dist/utils/graphLookup.js +57 -0
  98. package/dist/utils/graphLookup.js.map +1 -0
  99. package/dist/utils/knowledgeBase.d.ts +21 -0
  100. package/dist/utils/knowledgeBase.d.ts.map +1 -0
  101. package/dist/utils/knowledgeBase.js +110 -0
  102. package/dist/utils/knowledgeBase.js.map +1 -0
  103. package/dist/utils/learnings.d.ts +119 -0
  104. package/dist/utils/learnings.d.ts.map +1 -0
  105. package/dist/utils/learnings.js +337 -0
  106. package/dist/utils/learnings.js.map +1 -0
  107. package/llms-full.infranodus.txt +39 -1
  108. package/llms-full.txt +39 -1
  109. package/llms.infranodus.txt +2 -0
  110. package/llms.txt +2 -0
  111. package/package.json +3 -2
@@ -0,0 +1,68 @@
1
+ import { brand } from "../config/brand.js";
2
+ import { EnableProjectLearningsSchema } from "../schemas/index.js";
3
+ import { checkEnabled, createLearningsGraph, learningsGraphName, slugify, } from "../utils/learnings.js";
4
+ function textResult(payload, isError = false) {
5
+ return {
6
+ content: [
7
+ { type: "text", text: JSON.stringify(payload, null, 2) },
8
+ ],
9
+ ...(isError ? { isError: true } : {}),
10
+ };
11
+ }
12
+ export const enableProjectLearningsTool = {
13
+ name: "enable_project_learnings",
14
+ definition: {
15
+ title: `Enable Project Learnings in ${brand.name}`,
16
+ description: `Create the per-project learnings graph (learn-<slug>) in the user's ${brand.name} account so that add_project_learnings can save what you learn about operating in this project. ` +
17
+ `Call this ONLY when the user has explicitly asked to start saving learnings for a project — never on your own initiative. ` +
18
+ `Before calling, tell the user in one or two sentences: what will be stored (knowledge about the project — where things live, traps, conventions, decisions, workflows — never anything about them personally, never secrets), where (a private, append-only graph in their ${brand.name} account that they can delete at any time), and that each batch of learnings will be shown to them before it is saved unless they say otherwise. ` +
19
+ `Idempotent: calling it again for an already enabled project just returns the graph.`,
20
+ inputSchema: EnableProjectLearningsSchema.shape,
21
+ annotations: {
22
+ readOnlyHint: false,
23
+ idempotentHint: true,
24
+ destructiveHint: false,
25
+ openWorldHint: false,
26
+ },
27
+ },
28
+ handler: async (params, extra) => {
29
+ try {
30
+ const graphName = learningsGraphName(params.project);
31
+ const slug = slugify(params.project) || "project";
32
+ const state = await checkEnabled(graphName);
33
+ if (state.enabled) {
34
+ return textResult({
35
+ enabled: true,
36
+ alreadyEnabled: true,
37
+ project: params.project,
38
+ graphName,
39
+ ...(state.info.url ? { url: state.info.url } : {}),
40
+ ...(state.info.createdAt ? { since: state.info.createdAt } : {}),
41
+ });
42
+ }
43
+ if (state.reason === "not-a-learnings-graph") {
44
+ return textResult({
45
+ enabled: false,
46
+ graphName,
47
+ message: `A graph named ${graphName} already exists but was not created by enable_project_learnings, so it will not be modified. Ask the user for a different project name.`,
48
+ }, false);
49
+ }
50
+ const created = await createLearningsGraph({
51
+ graphName,
52
+ slug,
53
+ clientName: extra?.clientName,
54
+ });
55
+ return textResult({
56
+ enabled: true,
57
+ project: params.project,
58
+ graphName: created.graphName ?? graphName,
59
+ ...(created.graphUrl ? { url: created.graphUrl } : {}),
60
+ next: "Learnings for this project can now be proposed with add_project_learnings (dry run first, then confirm: true once the user agrees).",
61
+ });
62
+ }
63
+ catch (error) {
64
+ return textResult({ error: error instanceof Error ? error.message : String(error) }, true);
65
+ }
66
+ },
67
+ };
68
+ //# sourceMappingURL=enableProjectLearnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableProjectLearnings.js","sourceRoot":"","sources":["../../src/tools/enableProjectLearnings.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,21 @@
1
1
  import { z } from "zod";
2
2
  import { GenerateOntologyGraphSchema } from "../schemas/index.js";
3
+ import { ToolHandlerContext } from "../types/index.js";
4
+ /** Split on line boundaries so no statement is cut in half. */
5
+ export declare function chunkByLines(text: string, chunkSize: number): string[];
3
6
  export declare const generateOntologyGraphTool: {
4
7
  name: string;
5
8
  definition: {
6
9
  title: string;
7
10
  description: string;
8
11
  inputSchema: {
9
- prompt: z.ZodString;
12
+ prompt: z.ZodOptional<z.ZodString>;
13
+ text: z.ZodOptional<z.ZodString>;
14
+ sourceGraphName: z.ZodOptional<z.ZodString>;
15
+ ontologyMode: z.ZodDefault<z.ZodEnum<["general", "codebase", "procedural"]>>;
16
+ chunkSize: z.ZodDefault<z.ZodNumber>;
10
17
  graphName: z.ZodOptional<z.ZodString>;
11
- modelToUse: z.ZodDefault<z.ZodEnum<["claude-opus-4.6", "claude-sonnet-4.6", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "grok-4.1-fast-non-reasoning", "grok-4.1-fast-reasoning", "gpt-4o", "gpt-4o-mini", "gpt-5.4", "gpt-5.4-mini"]>>;
18
+ modelToUse: z.ZodDefault<z.ZodEnum<["claude-opus-5", "claude-sonnet-5", "claude-fable-5", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "grok-4.1-fast-non-reasoning", "grok-4.1-fast-reasoning", "gpt-4o", "gpt-4o-mini", "gpt-5.4", "gpt-5.4-mini", "gpt-5.6-terra", "gpt-5.6-sol"]>>;
12
19
  saveGraph: z.ZodDefault<z.ZodBoolean>;
13
20
  includeGraph: z.ZodDefault<z.ZodBoolean>;
14
21
  fullGraph: z.ZodDefault<z.ZodBoolean>;
@@ -22,7 +29,7 @@ export declare const generateOntologyGraphTool: {
22
29
  destructiveHint: boolean;
23
30
  };
24
31
  };
25
- handler: (params: z.infer<typeof GenerateOntologyGraphSchema>) => Promise<{
32
+ handler: (params: z.infer<typeof GenerateOntologyGraphSchema>, context?: ToolHandlerContext) => Promise<{
26
33
  content: {
27
34
  type: "text";
28
35
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"generateOntologyGraph.d.ts","sourceRoot":"","sources":["../../src/tools/generateOntologyGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAwClE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;sBAYb,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC;;;;;;;;;;;;CA6LnE,CAAC"}
1
+ {"version":3,"file":"generateOntologyGraph.d.ts","sourceRoot":"","sources":["../../src/tools/generateOntologyGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAQlE,OAAO,EAAuB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5E,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAetE;AAsED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;sBAa5B,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,YACzC,kBAAkB;;;;;;;;;;;;CAiQ7B,CAAC"}
@@ -3,6 +3,56 @@ import { makeInfraNodusRequest } from "../api/client.js";
3
3
  import { getConfig } from "../api/config-store.js";
4
4
  import { brand, brandApiBase } from "../config/brand.js";
5
5
  import { extractLineSeparatedStatements, transformToStructuredOutput, } from "../utils/transformers.js";
6
+ import { ProgressReporter } from "../utils/progress.js";
7
+ /** Split on line boundaries so no statement is cut in half. */
8
+ export function chunkByLines(text, chunkSize) {
9
+ const chunks = [];
10
+ let current = [];
11
+ let size = 0;
12
+ for (const line of text.split("\n")) {
13
+ if (size + line.length + 1 > chunkSize && current.length > 0) {
14
+ chunks.push(current.join("\n"));
15
+ current = [];
16
+ size = 0;
17
+ }
18
+ current.push(line);
19
+ size += line.length + 1;
20
+ }
21
+ if (current.length > 0)
22
+ chunks.push(current.join("\n"));
23
+ return chunks.filter((chunk) => chunk.trim().length > 0);
24
+ }
25
+ const PREAMBLES = {
26
+ general: "Extract an ontology from the text below: the entities it contains and the relations between them, covering the whole text, not only its main theme.",
27
+ codebase: "The text below is a structure map of a software project (directories, files, imports and dependencies, exported symbols, docstring headlines) or its documentation. Extract an ontology of its ARCHITECTURE. Entities: modules and files (keep paths exactly as written), functions and classes, data stores, external services and packages, configuration, and the domain concepts they implement. Relations: prefer [dependentOn] for imports and dependencies, [partOf] for containment, [isA] for kinds of components, [hasAttribute] for exposed symbols and configuration, [relatedTo] / [derivedFrom] for the concepts a module implements. Connect the modules to the concepts, not only to each other.",
28
+ procedural: "The text below is content from a project — its documentation, notes, source code, or a structure map of files, imports and exports. Write the digest of how this project works.",
29
+ };
30
+ /** Read an existing graph's statements (doNotSave; a missing name errors). */
31
+ async function readGraphStatements(graphName) {
32
+ const query = new URLSearchParams({
33
+ doNotSave: "true",
34
+ addStats: "false",
35
+ includeStatements: "true",
36
+ includeGraphSummary: "false",
37
+ extendedGraphSummary: "false",
38
+ includeGraph: "false",
39
+ compactGraph: "true",
40
+ compactStatements: "true",
41
+ aiTopics: "false",
42
+ });
43
+ const response = await makeInfraNodusRequest(`/graphAndStatements?${query}`, {
44
+ name: graphName,
45
+ aiTopics: "false",
46
+ });
47
+ if (response.error) {
48
+ throw new Error(typeof response.error === "object"
49
+ ? JSON.stringify(response.error)
50
+ : String(response.error));
51
+ }
52
+ return (response.statements ?? [])
53
+ .map((statement) => statement.content)
54
+ .filter((content) => typeof content === "string" && content.trim().length > 0);
55
+ }
6
56
  function errorContent(message) {
7
57
  return {
8
58
  content: [
@@ -32,8 +82,8 @@ function defaultOntologyName(prompt) {
32
82
  export const generateOntologyGraphTool = {
33
83
  name: "generate_ontology_graph",
34
84
  definition: {
35
- title: "Generate an AI Ontology Graph from a Topic or Prompt",
36
- description: `Use AI to generate a reasoning ontology knowledge graph (entities and the relations between them) for a topic, prompt, or text, and optionally save it as a ${brand.name} graph. Use to get a rich overview or to produce a reasoning map of a topic for expert workflows.`,
85
+ title: "Generate an AI Ontology Graph from a Topic, Text, or Existing Graph",
86
+ description: `Use AI to generate a reasoning ontology knowledge graph (entities and the relations between them) and optionally save it as a ${brand.name} graph. Three sources, provide exactly one: prompt (a topic — one AI call), text (a long document or a structural digest of a project, chunked server-side), or sourceGraphName (an existing graph — e.g. a fully ingested repo, vault, or corpus — whose statements are read back, chunked, and condensed into an ontology). Set ontologyMode: 'codebase' for software projects, or 'procedural' to write a DIGEST of how the project works (prose statements with [[wikilinks]], not relation triples) from an already-uploaded graph — save it as <repo|vault>-<project>-digest for optimize_knowledge_base. Use to get a rich overview, a reasoning map of a topic, or a condensed 'how it fits together' graph of a large corpus.`,
37
87
  inputSchema: GenerateOntologyGraphSchema.shape,
38
88
  annotations: {
39
89
  readOnlyHint: false,
@@ -41,7 +91,7 @@ export const generateOntologyGraphTool = {
41
91
  destructiveHint: false,
42
92
  },
43
93
  },
44
- handler: async (params) => {
94
+ handler: async (params, context) => {
45
95
  try {
46
96
  const saveGraph = params.saveGraph !== false;
47
97
  const fullGraph = params.fullGraph === true;
@@ -51,35 +101,80 @@ export const generateOntologyGraphTool = {
51
101
  const includeGraph = params.includeGraph === true || fullGraph;
52
102
  const includeAnalytics = params.includeAnalytics !== false;
53
103
  const includeStatements = params.includeStatements !== false;
54
- const graphName = params.graphName?.trim() || defaultOntologyName(params.prompt);
55
- const requestBody = {
56
- saveToGraphAndRedirect: saveGraph,
57
- contextName: graphName,
58
- aiQueryType: "ontology graph",
59
- mode: "gptchat",
60
- modelToUse: params.modelToUse ?? "claude-opus-4.6",
61
- prompt: [{ role: "user", content: params.prompt }],
62
- modifyAnalyzedText: "none",
63
- contextType: "ONTOLOGY",
64
- replaceEntities: false,
65
- hideSearchTerms: true,
66
- };
67
- const response = await makeInfraNodusRequest("/aiAdvice", requestBody);
68
- // The /aiAdvice endpoint returns error envelopes with HTTP 200, so the
69
- // request does not throw — we must check response.error explicitly.
70
- if (response.error) {
71
- return errorContent(typeof response.error === "object"
72
- ? JSON.stringify(response.error)
73
- : String(response.error));
104
+ // Exactly one source: a topic prompt (one AI call), a long text
105
+ // (chunked), or an existing graph's statements (read back, chunked).
106
+ const prompt = params.prompt?.trim();
107
+ const text = params.text?.trim();
108
+ const sourceGraphName = params.sourceGraphName?.trim();
109
+ const provided = [prompt, text, sourceGraphName].filter(Boolean).length;
110
+ if (provided !== 1) {
111
+ return errorContent("Provide exactly one of: prompt (a topic), text (a document or digest to extract from), or sourceGraphName (an existing graph to condense).");
112
+ }
113
+ const mode = params.ontologyMode ?? "general";
114
+ let source;
115
+ let chunks;
116
+ if (prompt) {
117
+ source = "prompt";
118
+ chunks = [prompt];
119
+ }
120
+ else if (text) {
121
+ source = "text";
122
+ chunks = chunkByLines(text, params.chunkSize ?? 12000);
123
+ }
124
+ else {
125
+ source = "graph";
126
+ const statements = await readGraphStatements(sourceGraphName);
127
+ if (statements.length === 0) {
128
+ return errorContent(`Graph "${sourceGraphName}" has no statements to build an ontology from.`);
129
+ }
130
+ chunks = chunkByLines(statements.join("\n"), params.chunkSize ?? 12000);
131
+ }
132
+ const graphName = params.graphName?.trim() ||
133
+ defaultOntologyName(prompt ?? sourceGraphName ?? text.slice(0, 60));
134
+ // One AI call per chunk; with saveGraph every call appends to the same
135
+ // graph. Raw statements come back only when NOT saving — saving
136
+ // returns a redirect — so both are collected across chunks.
137
+ const progress = new ProgressReporter(context ?? {}, chunks.length);
138
+ const rawOntologyStatements = [];
139
+ let response = null;
140
+ let chunksProcessed = 0;
141
+ for (const [index, chunk] of chunks.entries()) {
142
+ await progress.report(index, `${mode === "procedural" ? "Writing digest" : "Generating ontology"}: chunk ${index + 1} of ${chunks.length}`);
143
+ const content = source === "prompt"
144
+ ? chunk
145
+ : `${PREAMBLES[mode]}${chunks.length > 1 ? ` (part ${index + 1} of ${chunks.length})` : ""}\n\n${chunk}`;
146
+ const requestBody = {
147
+ saveToGraphAndRedirect: saveGraph,
148
+ contextName: graphName,
149
+ // 'digest' is the app's prose-statements prompt (principles,
150
+ // procedures, hand-offs with [[wikilinks]]); the two ontology
151
+ // modes use its [[entity]] [relation] [[entity]] prompt.
152
+ aiQueryType: mode === "procedural" ? "digest" : "ontology graph",
153
+ mode: "gptchat",
154
+ modelToUse: params.modelToUse ?? "claude-opus-5",
155
+ prompt: [{ role: "user", content }],
156
+ modifyAnalyzedText: "none",
157
+ // A digest is an ordinary statements graph, not an ontology context.
158
+ ...(mode === "procedural" ? {} : { contextType: "ONTOLOGY" }),
159
+ replaceEntities: false,
160
+ hideSearchTerms: true,
161
+ };
162
+ const chunkResponse = await makeInfraNodusRequest("/aiAdvice", requestBody);
163
+ // The /aiAdvice endpoint returns error envelopes with HTTP 200, so
164
+ // the request does not throw — check response.error explicitly.
165
+ if (chunkResponse.error) {
166
+ const message = typeof chunkResponse.error === "object"
167
+ ? JSON.stringify(chunkResponse.error)
168
+ : String(chunkResponse.error);
169
+ return errorContent(chunksProcessed > 0
170
+ ? `Chunk ${index + 1} of ${chunks.length} failed after ${chunksProcessed} chunk(s) were ${saveGraph ? `saved to "${graphName}"` : "generated"}: ${message}. Resend the remaining part of the source with the same graphName to continue.`
171
+ : message);
172
+ }
173
+ response = chunkResponse;
174
+ chunksProcessed += 1;
175
+ rawOntologyStatements.push(...extractLineSeparatedStatements(chunkResponse));
74
176
  }
75
- // Raw statements are present in the /aiAdvice response only when NOT
76
- // saving — saving returns a redirect instead. Each completion is a
77
- // newline-separated list of entity-relation statements, split the same
78
- // way the host app does (convertGPTResponsesToArray). The graph builder
79
- // (/graphAndStatements) returns the statements in their final,
80
- // post-processing shape, so those are preferred for ontologyStatements
81
- // whenever the graph is built; these raw ones are the fallback.
82
- const rawOntologyStatements = extractLineSeparatedStatements(response);
177
+ await progress.report(chunks.length, "Ontology generated");
83
178
  let output;
84
179
  if (saveGraph) {
85
180
  const redirectUrl = response.redirectUrl;
@@ -87,18 +182,31 @@ export const generateOntologyGraphTool = {
87
182
  return errorContent(`The ontology was generated but no graph link was returned, so it may not have been saved. Check that your ${brand.name} API key is valid (an anonymous/demo key does not persist graphs).`);
88
183
  }
89
184
  const base = appBaseUrl();
90
- // redirectUrl looks like /<userName>/<contextName>/edit
185
+ // redirectUrl looks like /<userName>/<contextName>/edit — the
186
+ // owner's editor. graphUrl keeps it, like every other tool that
187
+ // saves a graph (a link without /edit opens the read-only view,
188
+ // which is what agents were recording when this tool stripped it).
189
+ // viewUrl is the shareable read-only page.
91
190
  const viewUrl = redirectUrl.replace(/\/edit\/?$/, "");
92
191
  output = {
192
+ source,
193
+ chunksTotal: chunks.length,
194
+ chunksProcessed,
93
195
  saved: true,
94
196
  graphName,
95
- graphUrl: `${base}${viewUrl}`,
197
+ graphUrl: `${base}${redirectUrl}`,
96
198
  editUrl: `${base}${redirectUrl}`,
97
- message: `Ontology graph "${graphName}" generated and saved.`,
199
+ viewUrl: `${base}${viewUrl}`,
200
+ message: chunks.length > 1
201
+ ? `Ontology graph "${graphName}" generated from ${chunks.length} chunks and saved.`
202
+ : `Ontology graph "${graphName}" generated and saved.`,
98
203
  };
99
204
  }
100
205
  else {
101
206
  output = {
207
+ source,
208
+ chunksTotal: chunks.length,
209
+ chunksProcessed,
102
210
  saved: false,
103
211
  message: rawOntologyStatements.length > 0
104
212
  ? `Ontology generated (not saved): ${rawOntologyStatements.length} statement(s) returned. Use saveGraph: true to persist it as a ${brand.name} graph.`
@@ -1 +1 @@
1
- {"version":3,"file":"generateOntologyGraph.js","sourceRoot":"","sources":["../../src/tools/generateOntologyGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateOntologyGraph.js","sourceRoot":"","sources":["../../src/tools/generateOntologyGraph.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export declare const generateResearchIdeasTool: {
18
18
  shouldTranscend: z.ZodDefault<z.ZodBoolean>;
19
19
  responseType: z.ZodDefault<z.ZodEnum<["response", "idea"]>>;
20
20
  includeGraphSummary: z.ZodDefault<z.ZodBoolean>;
21
- modelToUse: z.ZodDefault<z.ZodEnum<["claude-opus-4.6", "claude-sonnet-4.6", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "grok-4.1-fast-non-reasoning", "grok-4.1-fast-reasoning", "gpt-4o", "gpt-4o-mini", "gpt-5.4", "gpt-5.4-mini"]>>;
21
+ modelToUse: z.ZodDefault<z.ZodEnum<["claude-opus-5", "claude-sonnet-5", "claude-fable-5", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "grok-4.1-fast-non-reasoning", "grok-4.1-fast-reasoning", "gpt-4o", "gpt-4o-mini", "gpt-5.4", "gpt-5.4-mini", "gpt-5.6-terra", "gpt-5.6-sol"]>>;
22
22
  };
23
23
  annotations: {
24
24
  readOnlyHint: boolean;
@@ -16,7 +16,7 @@ export declare const generateResearchQuestionsTool: {
16
16
  useSeveralGaps: z.ZodDefault<z.ZodBoolean>;
17
17
  gapDepth: z.ZodDefault<z.ZodNumber>;
18
18
  includeGraphSummary: z.ZodDefault<z.ZodBoolean>;
19
- modelToUse: z.ZodDefault<z.ZodEnum<["claude-opus-4.6", "claude-sonnet-4.6", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "grok-4.1-fast-non-reasoning", "grok-4.1-fast-reasoning", "gpt-4o", "gpt-4o-mini", "gpt-5.4", "gpt-5.4-mini"]>>;
19
+ modelToUse: z.ZodDefault<z.ZodEnum<["claude-opus-5", "claude-sonnet-5", "claude-fable-5", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "grok-4.1-fast-non-reasoning", "grok-4.1-fast-reasoning", "gpt-4o", "gpt-4o-mini", "gpt-5.4", "gpt-5.4-mini", "gpt-5.6-terra", "gpt-5.6-sol"]>>;
20
20
  };
21
21
  annotations: {
22
22
  readOnlyHint: boolean;
@@ -14,7 +14,7 @@ export declare const generateResponsesFromGraphTool: {
14
14
  categories: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
15
15
  timestamps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
16
16
  prompt: z.ZodString;
17
- modelToUse: z.ZodDefault<z.ZodEnum<["claude-opus-4.6", "claude-sonnet-4.6", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "grok-4.1-fast-non-reasoning", "grok-4.1-fast-reasoning", "gpt-4o", "gpt-4o-mini", "gpt-5.4", "gpt-5.4-mini"]>>;
17
+ modelToUse: z.ZodDefault<z.ZodEnum<["claude-opus-5", "claude-sonnet-5", "claude-fable-5", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "grok-4.1-fast-non-reasoning", "grok-4.1-fast-reasoning", "gpt-4o", "gpt-4o-mini", "gpt-5.4", "gpt-5.4-mini", "gpt-5.6-terra", "gpt-5.6-sol"]>>;
18
18
  };
19
19
  annotations: {
20
20
  readOnlyHint: boolean;
@@ -0,0 +1,30 @@
1
+ import { z } from "zod";
2
+ import { GetProjectLearningsSchema } from "../schemas/index.js";
3
+ export declare const getProjectLearningsTool: {
4
+ name: string;
5
+ definition: {
6
+ title: string;
7
+ description: string;
8
+ inputSchema: {
9
+ project: z.ZodOptional<z.ZodString>;
10
+ prompt: z.ZodOptional<z.ZodString>;
11
+ entity: z.ZodOptional<z.ZodString>;
12
+ type: z.ZodOptional<z.ZodEnum<["location", "trap", "convention", "decision", "workflow", "question", "approach"]>>;
13
+ limit: z.ZodDefault<z.ZodNumber>;
14
+ };
15
+ annotations: {
16
+ readOnlyHint: boolean;
17
+ idempotentHint: boolean;
18
+ destructiveHint: boolean;
19
+ openWorldHint: boolean;
20
+ };
21
+ };
22
+ handler: (params: z.infer<typeof GetProjectLearningsSchema>) => Promise<{
23
+ isError?: boolean | undefined;
24
+ content: {
25
+ type: "text";
26
+ text: string;
27
+ }[];
28
+ }>;
29
+ };
30
+ //# sourceMappingURL=getProjectLearnings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProjectLearnings.d.ts","sourceRoot":"","sources":["../../src/tools/getProjectLearnings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAqChE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;sBAgBX,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC;;;;;;;CAgIjE,CAAC"}
@@ -0,0 +1,151 @@
1
+ import { brand } from "../config/brand.js";
2
+ import { GetProjectLearningsSchema } from "../schemas/index.js";
3
+ import { makeInfraNodusRequest } from "../api/client.js";
4
+ import { GRAPH_PREFIX, checkEnabled, fetchLearningsGraph, isMarkerStatement, learningsGraphName, newestFirst, toStoredLearning, } from "../utils/learnings.js";
5
+ function textResult(payload, isError = false) {
6
+ return {
7
+ content: [
8
+ { type: "text", text: JSON.stringify(payload, null, 2) },
9
+ ],
10
+ ...(isError ? { isError: true } : {}),
11
+ };
12
+ }
13
+ function toLearnings(statements, limit, type) {
14
+ return newestFirst(statements
15
+ .filter((statement) => !isMarkerStatement(statement))
16
+ .map(toStoredLearning)
17
+ .filter((item) => item !== null)
18
+ .filter((item) => !type || item.types.includes(type))).slice(0, limit);
19
+ }
20
+ export const getProjectLearningsTool = {
21
+ name: "get_project_learnings",
22
+ definition: {
23
+ title: `Get Project Learnings from ${brand.name}`,
24
+ description: `Retrieve what previous sessions learned about operating in a project (saved with add_project_learnings). ` +
25
+ `Call it at the start of a substantive task with the task as \`prompt\` to get the most relevant learnings plus an overview of what is known; with \`entity\` (a file path, module, or concept) before working on an unfamiliar area; with neither for a structural overview; or with no \`project\` to list the projects that have learnings in this account. ` +
26
+ `Returns enabled: false with an empty list when the project has no learnings graph — that is not an error, just carry on; do not suggest enabling unless the user asks about memory.`,
27
+ inputSchema: GetProjectLearningsSchema.shape,
28
+ annotations: {
29
+ readOnlyHint: true,
30
+ idempotentHint: true,
31
+ destructiveHint: false,
32
+ openWorldHint: false,
33
+ },
34
+ },
35
+ handler: async (params) => {
36
+ try {
37
+ // No project → list the learnings graphs in the account.
38
+ if (!params.project) {
39
+ const response = (await makeInfraNodusRequest("/listGraphs", {
40
+ query: GRAPH_PREFIX,
41
+ }));
42
+ const graphs = Array.isArray(response)
43
+ ? response
44
+ .filter((graph) => graph.contextName?.startsWith(GRAPH_PREFIX))
45
+ .map((graph) => ({
46
+ graphName: graph.contextName,
47
+ project: graph.contextName?.slice(GRAPH_PREFIX.length),
48
+ createdAt: graph.createdAt,
49
+ ...(graph.defaultRevisionUrl ? { url: graph.defaultRevisionUrl } : {}),
50
+ }))
51
+ : [];
52
+ return textResult({
53
+ projects: graphs,
54
+ message: graphs.length === 0
55
+ ? "No project learnings graphs in this account."
56
+ : "Use the matching project name (not the graphName) in add_project_learnings / get_project_learnings.",
57
+ });
58
+ }
59
+ const graphName = learningsGraphName(params.project);
60
+ const state = await checkEnabled(graphName);
61
+ if (!state.enabled) {
62
+ return textResult({
63
+ enabled: false,
64
+ project: params.project,
65
+ graphName,
66
+ learnings: [],
67
+ });
68
+ }
69
+ // Entity lookup → every learning mentioning it.
70
+ if (params.entity) {
71
+ const response = await makeInfraNodusRequest("/search", {
72
+ query: params.entity,
73
+ contextNames: graphName,
74
+ });
75
+ if (response.error)
76
+ throw new Error(response.error);
77
+ const texts = response
78
+ .entriesAdded?.texts ?? [];
79
+ return textResult({
80
+ enabled: true,
81
+ project: params.project,
82
+ graphName,
83
+ entity: params.entity,
84
+ learnings: texts.slice(0, params.limit).map((content) => ({ content })),
85
+ });
86
+ }
87
+ // Prompt → GraphRAG retrieval with a structural overview.
88
+ if (params.prompt) {
89
+ const queryParams = new URLSearchParams({
90
+ doNotSave: "true",
91
+ addStats: "true",
92
+ includeGraph: "false",
93
+ includeStatements: "true",
94
+ includeGraphSummary: "true",
95
+ extendedGraphSummary: "true",
96
+ });
97
+ const response = await makeInfraNodusRequest(`/graphAndAdvice?${queryParams.toString()}`, {
98
+ name: graphName,
99
+ aiTopics: "true",
100
+ requestMode: "search",
101
+ prompt: params.prompt,
102
+ modelToUse: "gpt-4o-mini",
103
+ });
104
+ if (response.error)
105
+ throw new Error(response.error);
106
+ const ranked = (response.statements ?? [])
107
+ .filter((statement) => !isMarkerStatement(statement))
108
+ .filter((statement) => !params.type ||
109
+ (statement.categories ?? []).includes(`type-${params.type}`))
110
+ .sort((a, b) => (b.similarityScore ?? 0) - (a.similarityScore ?? 0))
111
+ .slice(0, params.limit)
112
+ .map((statement) => ({
113
+ ...toStoredLearning(statement),
114
+ similarity: statement.similarityScore,
115
+ }));
116
+ return textResult({
117
+ enabled: true,
118
+ project: params.project,
119
+ graphName,
120
+ ...(response.graphSummary ? { overview: response.graphSummary } : {}),
121
+ ...(response.extendedGraphSummary?.mainTopics
122
+ ? { knownAreas: response.extendedGraphSummary.mainTopics }
123
+ : {}),
124
+ ...(response.extendedGraphSummary?.contentGaps
125
+ ? { gaps: response.extendedGraphSummary.contentGaps }
126
+ : {}),
127
+ learnings: ranked,
128
+ });
129
+ }
130
+ // Neither → overview + newest learnings.
131
+ const { statements, response } = await fetchLearningsGraph(graphName);
132
+ const summary = response.extendedGraphSummary;
133
+ return textResult({
134
+ enabled: true,
135
+ project: params.project,
136
+ graphName,
137
+ ...(state.info.url ? { url: state.info.url } : {}),
138
+ total: statements.filter((s) => !isMarkerStatement(s)).length,
139
+ ...(params.type ? { type: params.type } : {}),
140
+ ...(summary?.mainTopics?.length ? { knownAreas: summary.mainTopics } : {}),
141
+ ...(summary?.mainConcepts?.length ? { mainConcepts: summary.mainConcepts } : {}),
142
+ ...(summary?.contentGaps?.length ? { gaps: summary.contentGaps } : {}),
143
+ learnings: toLearnings(statements, params.limit, params.type),
144
+ });
145
+ }
146
+ catch (error) {
147
+ return textResult({ error: error instanceof Error ? error.message : String(error) }, true);
148
+ }
149
+ },
150
+ };
151
+ //# sourceMappingURL=getProjectLearnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProjectLearnings.js","sourceRoot":"","sources":["../../src/tools/getProjectLearnings.ts"],"names":[],"mappings":"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"}
@@ -29,4 +29,12 @@ export { generateResearchIdeasTool } from "./generateResearchIdeas.js";
29
29
  export { optimizeTextStructureTool } from "./optimizeTextStructure.js";
30
30
  export { optimizeReasoningTool } from "./optimizeReasoning.js";
31
31
  export { retrieveContextForPromptFromGraphTool } from "./retrieveContextForPromptFromGraph.js";
32
+ export { enableProjectLearningsTool } from "./enableProjectLearnings.js";
33
+ export { addProjectLearningsTool } from "./addProjectLearnings.js";
34
+ export { getProjectLearningsTool } from "./getProjectLearnings.js";
35
+ export { submitWorkflowFeedbackTool } from "./submitWorkflowFeedback.js";
36
+ export { optimizeKnowledgeBaseTool } from "./optimizeKnowledgeBase.js";
37
+ export { deleteStatementsTool } from "./deleteStatements.js";
38
+ export { updateStatementsTool } from "./updateStatements.js";
39
+ export { deleteGraphTool } from "./deleteGraph.js";
32
40
  //# sourceMappingURL=index.d.ts.map