@opvs-ai/mcp 2.10.0 → 2.11.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.
package/dist/memory.d.ts CHANGED
@@ -48,8 +48,20 @@ export declare const MEMORY_TOOLS: ({
48
48
  char_budget?: undefined;
49
49
  entry_id?: undefined;
50
50
  reason?: undefined;
51
+ project_id?: undefined;
52
+ node_ids?: undefined;
53
+ paths?: undefined;
54
+ depth?: undefined;
55
+ kinds?: undefined;
56
+ direction?: undefined;
57
+ hub_cap?: undefined;
58
+ limit?: undefined;
59
+ text?: undefined;
60
+ k?: undefined;
61
+ threshold?: undefined;
51
62
  };
52
63
  required?: undefined;
64
+ additionalProperties?: undefined;
53
65
  };
54
66
  } | {
55
67
  name: string;
@@ -88,8 +100,20 @@ export declare const MEMORY_TOOLS: ({
88
100
  pinned_first?: undefined;
89
101
  entry_id?: undefined;
90
102
  reason?: undefined;
103
+ project_id?: undefined;
104
+ node_ids?: undefined;
105
+ paths?: undefined;
106
+ depth?: undefined;
107
+ kinds?: undefined;
108
+ direction?: undefined;
109
+ hub_cap?: undefined;
110
+ limit?: undefined;
111
+ text?: undefined;
112
+ k?: undefined;
113
+ threshold?: undefined;
91
114
  };
92
115
  required: string[];
116
+ additionalProperties?: undefined;
93
117
  };
94
118
  } | {
95
119
  name: string;
@@ -113,10 +137,186 @@ export declare const MEMORY_TOOLS: ({
113
137
  include_retired?: undefined;
114
138
  cwd?: undefined;
115
139
  char_budget?: undefined;
140
+ project_id?: undefined;
141
+ node_ids?: undefined;
142
+ paths?: undefined;
143
+ depth?: undefined;
144
+ kinds?: undefined;
145
+ direction?: undefined;
146
+ hub_cap?: undefined;
147
+ limit?: undefined;
148
+ text?: undefined;
149
+ k?: undefined;
150
+ threshold?: undefined;
116
151
  };
117
152
  required: string[];
153
+ additionalProperties?: undefined;
154
+ };
155
+ } | {
156
+ name: string;
157
+ description: string;
158
+ inputSchema: {
159
+ type: string;
160
+ properties: {
161
+ project_id: {
162
+ type: string;
163
+ description: string;
164
+ };
165
+ node_ids: {
166
+ type: string;
167
+ items: {
168
+ type: string;
169
+ };
170
+ maxItems: number;
171
+ description: string;
172
+ };
173
+ paths: {
174
+ type: string;
175
+ items: {
176
+ type: string;
177
+ };
178
+ maxItems: number;
179
+ description: string;
180
+ };
181
+ depth: {
182
+ type: string;
183
+ minimum: number;
184
+ maximum: number;
185
+ description: string;
186
+ };
187
+ kinds: {
188
+ type: string;
189
+ items: {
190
+ type: string;
191
+ enum: string[];
192
+ };
193
+ description: string;
194
+ };
195
+ direction: {
196
+ type: string;
197
+ enum: string[];
198
+ description: string;
199
+ };
200
+ hub_cap: {
201
+ type: string;
202
+ minimum: number;
203
+ maximum: number;
204
+ description: string;
205
+ };
206
+ limit: {
207
+ type: string;
208
+ minimum: number;
209
+ maximum: number;
210
+ description: string;
211
+ };
212
+ q?: undefined;
213
+ scope?: undefined;
214
+ type?: undefined;
215
+ anchor?: undefined;
216
+ pinned_first?: undefined;
217
+ include_retired?: undefined;
218
+ cwd?: undefined;
219
+ char_budget?: undefined;
220
+ entry_id?: undefined;
221
+ reason?: undefined;
222
+ text?: undefined;
223
+ k?: undefined;
224
+ threshold?: undefined;
225
+ };
226
+ required: string[];
227
+ additionalProperties: boolean;
228
+ };
229
+ } | {
230
+ name: string;
231
+ description: string;
232
+ inputSchema: {
233
+ type: string;
234
+ properties: {
235
+ text: {
236
+ type: string;
237
+ minLength: number;
238
+ description: string;
239
+ };
240
+ type: {
241
+ type: string;
242
+ description: string;
243
+ };
244
+ k: {
245
+ type: string;
246
+ minimum: number;
247
+ maximum: number;
248
+ description: string;
249
+ };
250
+ threshold: {
251
+ type: string;
252
+ minimum: number;
253
+ maximum: number;
254
+ description: string;
255
+ };
256
+ q?: undefined;
257
+ scope?: undefined;
258
+ anchor?: undefined;
259
+ pinned_first?: undefined;
260
+ include_retired?: undefined;
261
+ cwd?: undefined;
262
+ char_budget?: undefined;
263
+ entry_id?: undefined;
264
+ reason?: undefined;
265
+ project_id?: undefined;
266
+ node_ids?: undefined;
267
+ paths?: undefined;
268
+ depth?: undefined;
269
+ kinds?: undefined;
270
+ direction?: undefined;
271
+ hub_cap?: undefined;
272
+ limit?: undefined;
273
+ };
274
+ required: string[];
275
+ additionalProperties: boolean;
276
+ };
277
+ } | {
278
+ name: string;
279
+ description: string;
280
+ inputSchema: {
281
+ type: string;
282
+ properties: {
283
+ project_id: {
284
+ type: string;
285
+ description: string;
286
+ };
287
+ node_ids: {
288
+ type: string;
289
+ items: {
290
+ type: string;
291
+ };
292
+ maxItems: number;
293
+ description: string;
294
+ };
295
+ q?: undefined;
296
+ scope?: undefined;
297
+ type?: undefined;
298
+ anchor?: undefined;
299
+ pinned_first?: undefined;
300
+ include_retired?: undefined;
301
+ cwd?: undefined;
302
+ char_budget?: undefined;
303
+ entry_id?: undefined;
304
+ reason?: undefined;
305
+ paths?: undefined;
306
+ depth?: undefined;
307
+ kinds?: undefined;
308
+ direction?: undefined;
309
+ hub_cap?: undefined;
310
+ limit?: undefined;
311
+ text?: undefined;
312
+ k?: undefined;
313
+ threshold?: undefined;
314
+ };
315
+ required: string[];
316
+ additionalProperties: boolean;
118
317
  };
119
318
  })[];
319
+ type MemoryPost = (path: string, body?: unknown) => Promise<unknown>;
120
320
  export declare function handleMemorySearch(args: SearchArgs): Promise<ToolResult>;
121
321
  export declare function handleMemoryContext(args: {
122
322
  cwd: string;
@@ -130,5 +330,8 @@ export declare function handleMemoryContext(args: {
130
330
  export declare function handleMemoryRequestPin(args: {
131
331
  entry_id: string;
132
332
  reason: string;
133
- }): Promise<ToolResult>;
333
+ }, getMemory?: (path: string) => Promise<unknown>): Promise<ToolResult>;
334
+ export declare function handleMemoryNear(args: Record<string, unknown>, postMemory?: MemoryPost): Promise<ToolResult>;
335
+ export declare function handleMemorySimilar(args: Record<string, unknown>, postMemory?: MemoryPost): Promise<ToolResult>;
336
+ export declare function handleMemoryAnchors(args: Record<string, unknown>, postMemory?: MemoryPost): Promise<ToolResult>;
134
337
  export {};
package/dist/memory.js CHANGED
@@ -3,7 +3,8 @@ import { execFileSync } from "node:child_process";
3
3
  import { readFileSync, statSync } from "node:fs";
4
4
  import { isAbsolute, relative, resolve } from "node:path";
5
5
  import { OPVS_MEMORY_REPOSITORY, parseServicePatterns, repositoryNameFromRemote, serviceForPath, } from "@opvs-ai/cli/memory-services.js";
6
- import { err, getJson, ok } from "./http.js";
6
+ import { brandScopeMismatch } from "./brand-scope.js";
7
+ import { err, getJson, ok, postJson, readFailure } from "./http.js";
7
8
  const DEFAULT_CONTEXT_DEPENDENCIES = {
8
9
  repoRoot: (cwd) => execFileSync("git", ["rev-parse", "--show-toplevel"], {
9
10
  cwd,
@@ -61,7 +62,7 @@ export const MEMORY_TOOLS = [
61
62
  {
62
63
  name: "memory_request_pin",
63
64
  description: "Prepare a human-curator pin request for an existing typed-memory entry. Read-only: " +
64
- "this verifies the entry through search and returns a proposal; it never sets a pin, " +
65
+ "this verifies the entry by exact ID and returns a proposal; it never sets a pin, " +
65
66
  "because pins require an authenticated human dashboard session.",
66
67
  inputSchema: {
67
68
  type: "object",
@@ -72,7 +73,66 @@ export const MEMORY_TOOLS = [
72
73
  required: ["entry_id", "reason"],
73
74
  },
74
75
  },
76
+ {
77
+ name: "memory_near",
78
+ description: "Use before changing code to read lessons on seed files or nodes and their nearby code graph.",
79
+ inputSchema: {
80
+ type: "object",
81
+ properties: {
82
+ project_id: { type: "string", description: "Project whose code graph is being walked." },
83
+ node_ids: { type: "array", items: { type: "string" }, maxItems: 50, description: "Stable code-node UUID seeds." },
84
+ paths: { type: "array", items: { type: "string" }, maxItems: 50, description: "Repository-relative file seeds." },
85
+ depth: { type: "integer", minimum: 0, maximum: 3, description: "Maximum hops from a seed; defaults to 2." },
86
+ kinds: { type: "array", items: { type: "string", enum: ["import", "call", "contains"] }, description: "Allowed edge kinds." },
87
+ direction: { type: "string", enum: ["in", "out", "both"], description: "Edge direction to walk." },
88
+ hub_cap: { type: "integer", minimum: 1, maximum: 200, description: "Neighbour count at which a hub is damped." },
89
+ limit: { type: "integer", minimum: 1, maximum: 100, description: "Maximum lessons returned." },
90
+ },
91
+ required: ["project_id"],
92
+ additionalProperties: false,
93
+ },
94
+ },
95
+ {
96
+ name: "memory_similar",
97
+ description: "Use before writing a lesson to find existing near-duplicate typed-memory entries.",
98
+ inputSchema: {
99
+ type: "object",
100
+ properties: {
101
+ text: { type: "string", minLength: 1, description: "Lesson draft to compare." },
102
+ type: { type: "string", description: "Optional typed-entry kind filter." },
103
+ k: { type: "integer", minimum: 1, maximum: 10, description: "Maximum matches; defaults to 3." },
104
+ threshold: { type: "number", minimum: -1, maximum: 1, description: "Optional cosine-similarity floor." },
105
+ },
106
+ required: ["text"],
107
+ additionalProperties: false,
108
+ },
109
+ },
110
+ {
111
+ name: "memory_anchors",
112
+ description: "Use when you already hold stable code-node ids to read the lessons attached to those nodes.",
113
+ inputSchema: {
114
+ type: "object",
115
+ properties: {
116
+ project_id: { type: "string", description: "Project whose code nodes are being looked up." },
117
+ node_ids: { type: "array", items: { type: "string" }, maxItems: 1000, description: "Stable code-node UUIDs." },
118
+ },
119
+ required: ["project_id", "node_ids"],
120
+ additionalProperties: false,
121
+ },
122
+ },
75
123
  ];
124
+ function memoryBody(args, fields) {
125
+ const body = {};
126
+ for (const field of fields) {
127
+ if (args[field] !== undefined)
128
+ body[field] = args[field];
129
+ }
130
+ return body;
131
+ }
132
+ function memoryScopeError(tool, args) {
133
+ const mismatch = brandScopeMismatch("@opvs-ai", args);
134
+ return mismatch ? err(`${tool} refused: ${mismatch}`) : undefined;
135
+ }
76
136
  function searchPath(args) {
77
137
  const query = new URLSearchParams();
78
138
  for (const key of ["q", "scope", "type", "anchor"]) {
@@ -172,8 +232,7 @@ export async function handleMemorySearch(args) {
172
232
  return ok(await getJson(searchPath(args)));
173
233
  }
174
234
  catch (e) {
175
- const error = e;
176
- return err(`memory_search failed: ${error.status ?? "?"} ${error.detail ?? "unknown"}`);
235
+ return readFailure("memory", "memory_search", e);
177
236
  }
178
237
  }
179
238
  export async function handleMemoryContext(args, dependencies = {}) {
@@ -194,18 +253,19 @@ export async function handleMemoryContext(args, dependencies = {}) {
194
253
  return ok(boundedContext(matchingEntries, budget));
195
254
  }
196
255
  catch (e) {
197
- const error = e;
198
- return err(`memory_context failed: ${error.status ?? "?"} ${error.detail ?? error.message ?? "unknown"}`);
256
+ return readFailure("memory", "memory_context", e);
199
257
  }
200
258
  }
201
- export async function handleMemoryRequestPin(args) {
259
+ export async function handleMemoryRequestPin(args, getMemory = getJson) {
202
260
  if (!args.entry_id || !args.reason)
203
261
  return err("entry_id and reason are required");
204
262
  try {
205
- const payload = await getJson(searchPath({ q: args.entry_id, pinned_first: true }));
206
- const match = entries(payload).find((entry) => entry.id === args.entry_id || entry.path === args.entry_id);
207
- if (!match)
263
+ const encodedId = args.entry_id.split("/").map(encodeURIComponent).join("/");
264
+ const payload = await getMemory(`/api/v1/memory/entries/${encodedId}`);
265
+ const entry = payload && typeof payload === "object" ? payload : undefined;
266
+ if (!entry || (entry.id !== args.entry_id && entry.path !== args.entry_id)) {
208
267
  return err(`memory entry '${args.entry_id}' was not found`);
268
+ }
209
269
  return ok({
210
270
  request: { entry_id: args.entry_id, reason: args.reason },
211
271
  persisted: false,
@@ -214,8 +274,47 @@ export async function handleMemoryRequestPin(args) {
214
274
  });
215
275
  }
216
276
  catch (e) {
217
- const error = e;
218
- return err(`memory_request_pin failed: ${error.status ?? "?"} ${error.detail ?? "unknown"}`);
277
+ return readFailure("memory", "memory_request_pin", e);
278
+ }
279
+ }
280
+ export async function handleMemoryNear(args, postMemory = postJson) {
281
+ if (!args.project_id)
282
+ return err("project_id is required");
283
+ const scoped = memoryScopeError("memory_near", args);
284
+ if (scoped)
285
+ return scoped;
286
+ try {
287
+ return ok(await postMemory("/api/v1/memory/entries:near", memoryBody(args, ["project_id", "node_ids", "paths", "depth", "kinds", "direction", "hub_cap", "limit"])));
288
+ }
289
+ catch (error) {
290
+ return readFailure("memory", "memory_near", error);
291
+ }
292
+ }
293
+ export async function handleMemorySimilar(args, postMemory = postJson) {
294
+ if (!args.text)
295
+ return err("text is required");
296
+ const scoped = memoryScopeError("memory_similar", args);
297
+ if (scoped)
298
+ return scoped;
299
+ try {
300
+ return ok(await postMemory("/api/v1/memory/entries:similar", memoryBody(args, ["text", "type", "k", "threshold"])));
301
+ }
302
+ catch (error) {
303
+ return readFailure("memory", "memory_similar", error);
304
+ }
305
+ }
306
+ export async function handleMemoryAnchors(args, postMemory = postJson) {
307
+ if (!args.project_id || !Array.isArray(args.node_ids)) {
308
+ return err("project_id and node_ids are required");
309
+ }
310
+ const scoped = memoryScopeError("memory_anchors", args);
311
+ if (scoped)
312
+ return scoped;
313
+ try {
314
+ return ok(await postMemory("/api/v1/memory/anchors:lookup", memoryBody(args, ["project_id", "node_ids"])));
315
+ }
316
+ catch (error) {
317
+ return readFailure("memory", "memory_anchors", error);
219
318
  }
220
319
  }
221
320
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@opvs-ai/mcp",
3
- "version": "2.10.0",
4
- "description": "OPVS MCP server \u2014 16 tools \u2014 10 always-on (tool_search, tool_help, tool_read, tool_call, tool_pin, tool_list_installed, tool_install, tool_uninstall, whoami, board_as_markdown), sandbox_chat, and the 5 fleet tools (fleet_list, slot_get, slot_health, fleet_logins, slot_order) for the on-demand model. Fits under the ~100-tool cap every MCP client enforces. Routes everything else through tool_call indirection.",
3
+ "version": "2.11.0",
4
+ "description": "OPVS MCP server \u2014 31 tools, including native read-only code-index and lessons-near-code access plus the on-demand marketplace and fleet surfaces. Fits under the ~100-tool cap every MCP client enforces.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "opvs-mcp": "dist/index.js"
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@modelcontextprotocol/sdk": "^1.27.1",
20
- "@opvs-ai/cli": "^0.25.0",
20
+ "@opvs-ai/cli": "^0.26.0",
21
21
  "@opvs-ai/core": "^0.4.8",
22
22
  "zod": "^3.23.0"
23
23
  },
@@ -25,7 +25,7 @@
25
25
  "@types/node": "^20.14.0",
26
26
  "tsx": "^4.15.0",
27
27
  "typescript": "^5.5.0",
28
- "vitest": "^3.2.4"
28
+ "vitest": "^4.1.11"
29
29
  },
30
30
  "engines": {
31
31
  "node": ">=18.0.0"