@opvs-ai/mcp 0.7.3 → 2.6.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.
@@ -1,25 +0,0 @@
1
- /**
2
- * Shared types for MCP handler modules.
3
- */
4
- export function ok(text) {
5
- return { content: [{ type: "text", text }] };
6
- }
7
- export function err(msg) {
8
- return {
9
- content: [{ type: "text", text: `Error: ${msg}` }],
10
- isError: true,
11
- };
12
- }
13
- export const WORKSPACE_PROP = {
14
- workspace: {
15
- type: "string",
16
- description: "Workspace slug to use. If omitted, uses the current workspace. Use list_workspaces to see available workspaces.",
17
- },
18
- };
19
- export function resolveWorkspace(args) {
20
- return args.workspace || process.env.OPVS_WORKSPACE || undefined;
21
- }
22
- export function getFormat() {
23
- return "json";
24
- }
25
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2BH,MAAM,UAAU,EAAE,CAAC,IAAY;IAC7B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC;QAC3D,OAAO,EAAE,IAAa;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,iHAAiH;KACpH;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAA6B;IAC5D,OAAQ,IAAI,CAAC,SAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Views handler — session, overview, activity, metrics, extended views
3
- */
4
- import { type ToolDef, type ToolResult, type CallApiFn, type BuildUrlFn } from "./types.js";
5
- export declare const TOOLS: ToolDef[];
6
- export declare function handleTool(name: string, args: Record<string, unknown>, callApi: CallApiFn, buildUrl: BuildUrlFn): Promise<ToolResult | null>;
@@ -1,74 +0,0 @@
1
- /**
2
- * Views handler — session, overview, activity, metrics, extended views
3
- */
4
- import { ok, err, WORKSPACE_PROP, resolveWorkspace, getFormat } from "./types.js";
5
- export const TOOLS = [
6
- { name: "get_board_session", description: "RECOMMENDED FIRST CALL when starting work on a board. Returns everything in one call: board info, all columns with their UUIDs and names (needed for move_task), and your assigned tasks. Much more efficient than calling get_board + list_tasks separately.", inputSchema: { type: "object", properties: { board_id: { type: "string", description: "Board UUID" }, ...WORKSPACE_PROP }, required: ["board_id"] } },
7
- { name: "get_board_overview", description: "Get board overview with column structure, task counts per column, and board metadata. Lighter than get_board_session (no task details).", inputSchema: { type: "object", properties: { board_id: { type: "string", description: "Board UUID" }, ...WORKSPACE_PROP }, required: ["board_id"] } },
8
- { name: "get_session", description: "Get your assigned tasks across all boards. Use this to find what you should work on. For a specific board's full context (columns, tasks), use get_board_session instead.", inputSchema: { type: "object", properties: { board_id: { type: "string", description: "Optional: scope to a specific board" }, ...WORKSPACE_PROP } } },
9
- { name: "list_activity", description: "Get recent activity feed (who did what, when). Provide exactly ONE of board_id or task_id. Shows task creation, status changes, comments, assignments, and moves. Ordered newest first.", inputSchema: { type: "object", properties: { board_id: { type: "string", description: "Board UUID — activity for the whole board" }, task_id: { type: "string", description: "Task UUID — activity for a single task" }, limit: { type: "number", description: "Max results (default 25)" }, ...WORKSPACE_PROP } } },
10
- { name: "get_board_summary", description: "Get board KPIs: task counts by status, workload by assignee, priority distribution, and recent activity stats. Useful for reporting and understanding board health.", inputSchema: { type: "object", properties: { board_id: { type: "string", description: "Board UUID" }, days: { type: "number", description: "Time window in days (default 7)" }, ...WORKSPACE_PROP }, required: ["board_id"] } },
11
- { name: "get_task_velocity", description: "Get task velocity: tasks created vs completed per day over time. Useful for tracking team throughput and trends.", inputSchema: { type: "object", properties: { days: { type: "number", description: "Time window in days (default 30)" }, ...WORKSPACE_PROP } } },
12
- { name: "get_cost_metrics", description: "Get LLM cost data over time.", inputSchema: { type: "object", properties: { days: { type: "number", description: "Time window in days (default 30)" }, ...WORKSPACE_PROP } } },
13
- { name: "get_task_distribution", description: "Get task status distribution (counts by status, for dashboards).", inputSchema: { type: "object", properties: { board_id: { type: "string", description: "Board UUID (optional)" }, ...WORKSPACE_PROP } } },
14
- { name: "view_board_tasks", description: "Filtered task list view for a board. Returns tasks with full context in YAML/JSON format.", inputSchema: { type: "object", properties: { board_id: { type: "string", description: "Board UUID" }, status: { type: "string", description: "Filter by status" }, limit: { type: "number", description: "Max results" }, ...WORKSPACE_PROP }, required: ["board_id"] } },
15
- { name: "view_task_detail", description: "Single task detail view with full context — description, stages, links, comments, activity.", inputSchema: { type: "object", properties: { task_id: { type: "string", description: "Task UUID" }, ...WORKSPACE_PROP }, required: ["task_id"] } },
16
- ];
17
- export async function handleTool(name, args, callApi, buildUrl) {
18
- const fmt = getFormat();
19
- const ws = resolveWorkspace(args);
20
- switch (name) {
21
- case "get_board_session": return ok(await callApi("GET", buildUrl(`/api/v1/board/views/boards/${args.board_id}/session`, undefined, fmt || "yaml"), ws));
22
- case "get_board_overview": return ok(await callApi("GET", buildUrl(`/api/v1/board/views/boards/${args.board_id}/overview`, undefined, fmt || "yaml"), ws));
23
- case "get_session": {
24
- if (args.board_id)
25
- return ok(await callApi("GET", buildUrl(`/api/v1/board/boards/${args.board_id}`, undefined, fmt), ws));
26
- return ok(await callApi("GET", buildUrl("/api/v1/board/agent-api/my-tasks", undefined, fmt), ws));
27
- }
28
- case "list_activity": {
29
- const params = {};
30
- if (args.limit)
31
- params.per_page = String(args.limit);
32
- if (args.task_id)
33
- return ok(await callApi("GET", buildUrl(`/api/v1/board/activity/tasks/${args.task_id}`, params, fmt), ws));
34
- if (args.board_id)
35
- return ok(await callApi("GET", buildUrl(`/api/v1/board/activity/boards/${args.board_id}`, params, fmt), ws));
36
- return err("Provide board_id or task_id");
37
- }
38
- case "get_board_summary": {
39
- const params = { board_id: String(args.board_id) };
40
- if (args.days)
41
- params.days = String(args.days);
42
- return ok(await callApi("GET", buildUrl("/api/v1/board/metrics/board-summary", params, fmt), ws));
43
- }
44
- case "get_task_velocity": {
45
- const params = {};
46
- if (args.days)
47
- params.days = String(args.days);
48
- return ok(await callApi("GET", buildUrl("/api/v1/board/metrics/task-velocity", params, fmt), ws));
49
- }
50
- case "get_cost_metrics": {
51
- const params = {};
52
- if (args.days)
53
- params.days = String(args.days);
54
- return ok(await callApi("GET", buildUrl("/api/v1/board/metrics/costs", params, fmt), ws));
55
- }
56
- case "get_task_distribution": {
57
- const params = {};
58
- if (args.board_id)
59
- params.board_id = String(args.board_id);
60
- return ok(await callApi("GET", buildUrl("/api/v1/board/metrics/distribution", params, fmt), ws));
61
- }
62
- case "view_board_tasks": {
63
- const params = {};
64
- if (args.status)
65
- params.status = String(args.status);
66
- if (args.limit)
67
- params.limit = String(args.limit);
68
- return ok(await callApi("GET", buildUrl(`/api/v1/board/views/boards/${args.board_id}/tasks`, params, fmt || "yaml"), ws));
69
- }
70
- case "view_task_detail": return ok(await callApi("GET", buildUrl(`/api/v1/board/views/tasks/${args.task_id}`, undefined, fmt || "yaml"), ws));
71
- default: return null;
72
- }
73
- }
74
- //# sourceMappingURL=views.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/handlers/views.ts"],"names":[],"mappings":"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"}