@gwdn/nexus-mcp 0.7.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 (133) hide show
  1. package/.github/workflows/ci.yml +38 -0
  2. package/.github/workflows/release.yml +57 -0
  3. package/README.md +89 -0
  4. package/dist/auth.d.ts +39 -0
  5. package/dist/auth.d.ts.map +1 -0
  6. package/dist/auth.js +47 -0
  7. package/dist/auth.js.map +1 -0
  8. package/dist/nexus-api.d.ts +35 -0
  9. package/dist/nexus-api.d.ts.map +1 -0
  10. package/dist/nexus-api.js +90 -0
  11. package/dist/nexus-api.js.map +1 -0
  12. package/dist/server.d.ts +67 -0
  13. package/dist/server.d.ts.map +1 -0
  14. package/dist/server.js +189 -0
  15. package/dist/server.js.map +1 -0
  16. package/dist/tools/add-task-note.d.ts +34 -0
  17. package/dist/tools/add-task-note.d.ts.map +1 -0
  18. package/dist/tools/add-task-note.js +39 -0
  19. package/dist/tools/add-task-note.js.map +1 -0
  20. package/dist/tools/append-session-entry.d.ts +53 -0
  21. package/dist/tools/append-session-entry.d.ts.map +1 -0
  22. package/dist/tools/append-session-entry.js +68 -0
  23. package/dist/tools/append-session-entry.js.map +1 -0
  24. package/dist/tools/create-task.d.ts +52 -0
  25. package/dist/tools/create-task.d.ts.map +1 -0
  26. package/dist/tools/create-task.js +51 -0
  27. package/dist/tools/create-task.js.map +1 -0
  28. package/dist/tools/decision-comments.d.ts +54 -0
  29. package/dist/tools/decision-comments.d.ts.map +1 -0
  30. package/dist/tools/decision-comments.js +81 -0
  31. package/dist/tools/decision-comments.js.map +1 -0
  32. package/dist/tools/get-document.d.ts +47 -0
  33. package/dist/tools/get-document.d.ts.map +1 -0
  34. package/dist/tools/get-document.js +68 -0
  35. package/dist/tools/get-document.js.map +1 -0
  36. package/dist/tools/get-project-memory.d.ts +47 -0
  37. package/dist/tools/get-project-memory.d.ts.map +1 -0
  38. package/dist/tools/get-project-memory.js +53 -0
  39. package/dist/tools/get-project-memory.js.map +1 -0
  40. package/dist/tools/get-related-entities.d.ts +44 -0
  41. package/dist/tools/get-related-entities.d.ts.map +1 -0
  42. package/dist/tools/get-related-entities.js +60 -0
  43. package/dist/tools/get-related-entities.js.map +1 -0
  44. package/dist/tools/governance.d.ts +90 -0
  45. package/dist/tools/governance.d.ts.map +1 -0
  46. package/dist/tools/governance.js +127 -0
  47. package/dist/tools/governance.js.map +1 -0
  48. package/dist/tools/ingest-document.d.ts +40 -0
  49. package/dist/tools/ingest-document.d.ts.map +1 -0
  50. package/dist/tools/ingest-document.js +49 -0
  51. package/dist/tools/ingest-document.js.map +1 -0
  52. package/dist/tools/letter-inbox.d.ts +80 -0
  53. package/dist/tools/letter-inbox.d.ts.map +1 -0
  54. package/dist/tools/letter-inbox.js +118 -0
  55. package/dist/tools/letter-inbox.js.map +1 -0
  56. package/dist/tools/letters.d.ts +91 -0
  57. package/dist/tools/letters.d.ts.map +1 -0
  58. package/dist/tools/letters.js +112 -0
  59. package/dist/tools/letters.js.map +1 -0
  60. package/dist/tools/list-documents.d.ts +33 -0
  61. package/dist/tools/list-documents.d.ts.map +1 -0
  62. package/dist/tools/list-documents.js +47 -0
  63. package/dist/tools/list-documents.js.map +1 -0
  64. package/dist/tools/list-tasks.d.ts +39 -0
  65. package/dist/tools/list-tasks.d.ts.map +1 -0
  66. package/dist/tools/list-tasks.js +46 -0
  67. package/dist/tools/list-tasks.js.map +1 -0
  68. package/dist/tools/project-list.d.ts +28 -0
  69. package/dist/tools/project-list.d.ts.map +1 -0
  70. package/dist/tools/project-list.js +43 -0
  71. package/dist/tools/project-list.js.map +1 -0
  72. package/dist/tools/reviews.d.ts +145 -0
  73. package/dist/tools/reviews.d.ts.map +1 -0
  74. package/dist/tools/reviews.js +220 -0
  75. package/dist/tools/reviews.js.map +1 -0
  76. package/dist/tools/search-knowledge.d.ts +48 -0
  77. package/dist/tools/search-knowledge.d.ts.map +1 -0
  78. package/dist/tools/search-knowledge.js +54 -0
  79. package/dist/tools/search-knowledge.js.map +1 -0
  80. package/dist/tools/sessions.d.ts +81 -0
  81. package/dist/tools/sessions.d.ts.map +1 -0
  82. package/dist/tools/sessions.js +123 -0
  83. package/dist/tools/sessions.js.map +1 -0
  84. package/dist/tools/skill-assign.d.ts +77 -0
  85. package/dist/tools/skill-assign.d.ts.map +1 -0
  86. package/dist/tools/skill-assign.js +108 -0
  87. package/dist/tools/skill-assign.js.map +1 -0
  88. package/dist/tools/skills.d.ts +138 -0
  89. package/dist/tools/skills.d.ts.map +1 -0
  90. package/dist/tools/skills.js +195 -0
  91. package/dist/tools/skills.js.map +1 -0
  92. package/dist/tools/update-task-status.d.ts +48 -0
  93. package/dist/tools/update-task-status.d.ts.map +1 -0
  94. package/dist/tools/update-task-status.js +51 -0
  95. package/dist/tools/update-task-status.js.map +1 -0
  96. package/package.json +30 -0
  97. package/src/__tests__/auth.test.ts +162 -0
  98. package/src/__tests__/decision-comments.test.ts +173 -0
  99. package/src/__tests__/e2e-integration.test.ts +443 -0
  100. package/src/__tests__/helpers.ts +58 -0
  101. package/src/__tests__/layer1-knowledge.test.ts +302 -0
  102. package/src/__tests__/layer2-coordination.test.ts +842 -0
  103. package/src/__tests__/layer3-governance.test.ts +205 -0
  104. package/src/__tests__/project-list-and-skill-assign.test.ts +282 -0
  105. package/src/__tests__/reviews.test.ts +420 -0
  106. package/src/__tests__/server.test.ts +250 -0
  107. package/src/__tests__/setup.ts +15 -0
  108. package/src/__tests__/task-list-and-doc-list.test.ts +226 -0
  109. package/src/auth.ts +81 -0
  110. package/src/nexus-api.ts +127 -0
  111. package/src/server.ts +520 -0
  112. package/src/tools/add-task-note.ts +50 -0
  113. package/src/tools/append-session-entry.ts +84 -0
  114. package/src/tools/create-task.ts +66 -0
  115. package/src/tools/decision-comments.ts +103 -0
  116. package/src/tools/get-document.ts +80 -0
  117. package/src/tools/get-project-memory.ts +65 -0
  118. package/src/tools/get-related-entities.ts +73 -0
  119. package/src/tools/governance.ts +165 -0
  120. package/src/tools/ingest-document.ts +65 -0
  121. package/src/tools/letter-inbox.ts +157 -0
  122. package/src/tools/letters.ts +144 -0
  123. package/src/tools/list-documents.ts +58 -0
  124. package/src/tools/list-tasks.ts +57 -0
  125. package/src/tools/project-list.ts +52 -0
  126. package/src/tools/reviews.ts +281 -0
  127. package/src/tools/search-knowledge.ts +68 -0
  128. package/src/tools/sessions.ts +157 -0
  129. package/src/tools/skill-assign.ts +142 -0
  130. package/src/tools/skills.ts +255 -0
  131. package/src/tools/update-task-status.ts +64 -0
  132. package/tsconfig.json +20 -0
  133. package/vitest.config.ts +8 -0
@@ -0,0 +1,46 @@
1
+ /**
2
+ * task_list -- Layer 2 Coordination
3
+ *
4
+ * List tasks for a project with optional status filtering.
5
+ * Delegates to POST /api/mcp/tasks (action: task_list).
6
+ */
7
+ import { z } from 'zod';
8
+ import { nexusPost } from '../nexus-api.js';
9
+ export const listTasksSchema = {
10
+ project_id: z.string().uuid().describe('Project UUID'),
11
+ status_filter: z
12
+ .array(z.enum(['open', 'in_progress', 'blocked', 'done', 'cancelled']))
13
+ .optional()
14
+ .describe('Filter by task status (default: all statuses)'),
15
+ limit: z
16
+ .number()
17
+ .min(1)
18
+ .max(100)
19
+ .default(50)
20
+ .describe('Maximum number of tasks to return (default 50)'),
21
+ };
22
+ export async function listTasks(args) {
23
+ const result = await nexusPost('/api/mcp/tasks', {
24
+ action: 'task_list',
25
+ project_id: args.project_id,
26
+ status_filter: args.status_filter,
27
+ limit: args.limit ?? 50,
28
+ });
29
+ if (!result.ok) {
30
+ return {
31
+ content: [
32
+ {
33
+ type: 'text',
34
+ text: JSON.stringify({ error: result.error }, null, 2),
35
+ },
36
+ ],
37
+ isError: true,
38
+ };
39
+ }
40
+ return {
41
+ content: [
42
+ { type: 'text', text: JSON.stringify(result.data, null, 2) },
43
+ ],
44
+ };
45
+ }
46
+ //# sourceMappingURL=list-tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-tasks.js","sourceRoot":"","sources":["../../src/tools/list-tasks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACtD,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;SACtE,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,gDAAgD,CAAC;CAC9D,CAAA;AASD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAmB;IACjD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,gBAAgB,EAAE;QAC/C,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;KACxB,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvD;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SACtE;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * project_list -- Layer 1 Knowledge Access
3
+ *
4
+ * List accessible projects for the authenticated user/agent.
5
+ * Delegates to GET /api/mcp/projects.
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const projectListSchema: {
9
+ limit: z.ZodOptional<z.ZodNumber>;
10
+ };
11
+ type ProjectListArgs = {
12
+ limit?: number;
13
+ };
14
+ export declare function projectList(args: ProjectListArgs): Promise<{
15
+ content: {
16
+ type: "text";
17
+ text: string;
18
+ }[];
19
+ isError: boolean;
20
+ } | {
21
+ content: {
22
+ type: "text";
23
+ text: string;
24
+ }[];
25
+ isError?: undefined;
26
+ }>;
27
+ export {};
28
+ //# sourceMappingURL=project-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-list.d.ts","sourceRoot":"","sources":["../../src/tools/project-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,iBAAiB;;CAQ7B,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe;;;;;;;;;;;;GA2BtD"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * project_list -- Layer 1 Knowledge Access
3
+ *
4
+ * List accessible projects for the authenticated user/agent.
5
+ * Delegates to GET /api/mcp/projects.
6
+ */
7
+ import { z } from 'zod';
8
+ import { nexusGet } from '../nexus-api.js';
9
+ export const projectListSchema = {
10
+ limit: z
11
+ .number()
12
+ .int()
13
+ .min(1)
14
+ .max(100)
15
+ .optional()
16
+ .describe('Maximum number of projects to return'),
17
+ };
18
+ export async function projectList(args) {
19
+ const params = new URLSearchParams();
20
+ if (args.limit !== undefined) {
21
+ params.set('limit', String(args.limit));
22
+ }
23
+ const qs = params.toString();
24
+ const path = `/api/mcp/projects${qs ? `?${qs}` : ''}`;
25
+ const result = await nexusGet(path);
26
+ if (!result.ok) {
27
+ return {
28
+ content: [
29
+ {
30
+ type: 'text',
31
+ text: JSON.stringify({ error: result.error }, null, 2),
32
+ },
33
+ ],
34
+ isError: true,
35
+ };
36
+ }
37
+ return {
38
+ content: [
39
+ { type: 'text', text: JSON.stringify(result.data, null, 2) },
40
+ ],
41
+ };
42
+ }
43
+ //# sourceMappingURL=project-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-list.js","sourceRoot":"","sources":["../../src/tools/project-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;CACpD,CAAA;AAMD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IACpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACzC,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC5B,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAErD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEnC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvD;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SACtE;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * rv_list + rv_get + rv_create + rv_decide + rv_comment -- Layer 4 Reviews
3
+ *
4
+ * Review lifecycle management tools for the Nexus platform.
5
+ * Reviews cover skills, agents, and other governed entities.
6
+ * Delegates to POST /api/mcp/reviews.
7
+ */
8
+ import { z } from 'zod';
9
+ export declare const rvListSchema: {
10
+ entity_type: z.ZodOptional<z.ZodEnum<{
11
+ skill: "skill";
12
+ agent: "agent";
13
+ }>>;
14
+ status: z.ZodOptional<z.ZodString>;
15
+ limit: z.ZodOptional<z.ZodNumber>;
16
+ };
17
+ type RvListArgs = {
18
+ entity_type?: string;
19
+ status?: string;
20
+ limit?: number;
21
+ user_id: string;
22
+ };
23
+ export declare function rvList(args: RvListArgs): Promise<{
24
+ content: {
25
+ type: "text";
26
+ text: string;
27
+ }[];
28
+ isError: boolean;
29
+ } | {
30
+ content: {
31
+ type: "text";
32
+ text: string;
33
+ }[];
34
+ isError?: undefined;
35
+ }>;
36
+ export declare const rvGetSchema: {
37
+ review_id: z.ZodOptional<z.ZodString>;
38
+ entity_type: z.ZodOptional<z.ZodString>;
39
+ entity_id: z.ZodOptional<z.ZodString>;
40
+ };
41
+ type RvGetArgs = {
42
+ review_id?: string;
43
+ entity_type?: string;
44
+ entity_id?: string;
45
+ user_id: string;
46
+ };
47
+ export declare function rvGet(args: RvGetArgs): Promise<{
48
+ content: {
49
+ type: "text";
50
+ text: string;
51
+ }[];
52
+ isError: boolean;
53
+ } | {
54
+ content: {
55
+ type: "text";
56
+ text: string;
57
+ }[];
58
+ isError?: undefined;
59
+ }>;
60
+ export declare const rvCreateSchema: {
61
+ entity_type: z.ZodEnum<{
62
+ skill: "skill";
63
+ agent: "agent";
64
+ }>;
65
+ entity_id: z.ZodString;
66
+ };
67
+ type RvCreateArgs = {
68
+ entity_type: string;
69
+ entity_id: string;
70
+ user_id: string;
71
+ };
72
+ export declare function rvCreate(args: RvCreateArgs): Promise<{
73
+ content: {
74
+ type: "text";
75
+ text: string;
76
+ }[];
77
+ isError: boolean;
78
+ } | {
79
+ content: {
80
+ type: "text";
81
+ text: string;
82
+ }[];
83
+ isError?: undefined;
84
+ }>;
85
+ export declare const rvDecideSchema: {
86
+ review_id: z.ZodString;
87
+ transition: z.ZodEnum<{
88
+ accept: "accept";
89
+ submit: "submit";
90
+ reject: "reject";
91
+ request_revision: "request_revision";
92
+ resubmit: "resubmit";
93
+ archive: "archive";
94
+ }>;
95
+ rationale: z.ZodOptional<z.ZodString>;
96
+ };
97
+ type RvDecideArgs = {
98
+ review_id: string;
99
+ transition: string;
100
+ rationale?: string;
101
+ user_id: string;
102
+ };
103
+ export declare function rvDecide(args: RvDecideArgs): Promise<{
104
+ content: {
105
+ type: "text";
106
+ text: string;
107
+ }[];
108
+ isError: boolean;
109
+ } | {
110
+ content: {
111
+ type: "text";
112
+ text: string;
113
+ }[];
114
+ isError?: undefined;
115
+ }>;
116
+ export declare const rvCommentSchema: {
117
+ review_id: z.ZodString;
118
+ body: z.ZodString;
119
+ agent_id: z.ZodOptional<z.ZodString>;
120
+ line_start: z.ZodOptional<z.ZodNumber>;
121
+ line_end: z.ZodOptional<z.ZodNumber>;
122
+ };
123
+ type RvCommentArgs = {
124
+ review_id: string;
125
+ body: string;
126
+ agent_id?: string;
127
+ line_start?: number;
128
+ line_end?: number;
129
+ user_id: string;
130
+ };
131
+ export declare function rvComment(args: RvCommentArgs): Promise<{
132
+ content: {
133
+ type: "text";
134
+ text: string;
135
+ }[];
136
+ isError: boolean;
137
+ } | {
138
+ content: {
139
+ type: "text";
140
+ text: string;
141
+ }[];
142
+ isError?: undefined;
143
+ }>;
144
+ export {};
145
+ //# sourceMappingURL=reviews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../src/tools/reviews.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,eAAO,MAAM,YAAY;;;;;;;CAiBxB,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU;;;;;;;;;;;;GAyB5C;AAMD,eAAO,MAAM,WAAW;;;;CAgBvB,CAAA;AAED,KAAK,SAAS,GAAG;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,SAAS;;;;;;;;;;;;GAyB1C;AAMD,eAAO,MAAM,cAAc;;;;;;CAQ1B,CAAA;AAED,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY;;;;;;;;;;;;GAwBhD;AAMD,eAAO,MAAM,cAAc;;;;;;;;;;;CAU1B,CAAA;AAED,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY;;;;;;;;;;;;GAyBhD;AAMD,eAAO,MAAM,eAAe;;;;;;CAkB3B,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa;;;;;;;;;;;;GA2BlD"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * rv_list + rv_get + rv_create + rv_decide + rv_comment -- Layer 4 Reviews
3
+ *
4
+ * Review lifecycle management tools for the Nexus platform.
5
+ * Reviews cover skills, agents, and other governed entities.
6
+ * Delegates to POST /api/mcp/reviews.
7
+ */
8
+ import { z } from 'zod';
9
+ import { nexusPost } from '../nexus-api.js';
10
+ // ---------------------------------------------------------------------------
11
+ // rv_list
12
+ // ---------------------------------------------------------------------------
13
+ export const rvListSchema = {
14
+ entity_type: z
15
+ .enum(['skill', 'agent'])
16
+ .optional()
17
+ .describe('Filter by entity type (skill or agent)'),
18
+ status: z
19
+ .string()
20
+ .max(50)
21
+ .optional()
22
+ .describe('Filter by review status'),
23
+ limit: z
24
+ .number()
25
+ .int()
26
+ .min(1)
27
+ .max(100)
28
+ .optional()
29
+ .describe('Maximum number of reviews to return'),
30
+ };
31
+ export async function rvList(args) {
32
+ const result = await nexusPost('/api/mcp/reviews', {
33
+ action: 'rv_list',
34
+ entity_type: args.entity_type,
35
+ status: args.status,
36
+ limit: args.limit,
37
+ });
38
+ if (!result.ok) {
39
+ return {
40
+ content: [
41
+ {
42
+ type: 'text',
43
+ text: JSON.stringify({ error: result.error }, null, 2),
44
+ },
45
+ ],
46
+ isError: true,
47
+ };
48
+ }
49
+ return {
50
+ content: [
51
+ { type: 'text', text: JSON.stringify(result.data, null, 2) },
52
+ ],
53
+ };
54
+ }
55
+ // ---------------------------------------------------------------------------
56
+ // rv_get
57
+ // ---------------------------------------------------------------------------
58
+ export const rvGetSchema = {
59
+ review_id: z
60
+ .string()
61
+ .uuid()
62
+ .optional()
63
+ .describe('Review UUID (look up by review ID)'),
64
+ entity_type: z
65
+ .string()
66
+ .max(50)
67
+ .optional()
68
+ .describe('Entity type (used with entity_id for lookup by entity)'),
69
+ entity_id: z
70
+ .string()
71
+ .uuid()
72
+ .optional()
73
+ .describe('Entity UUID (used with entity_type for lookup by entity)'),
74
+ };
75
+ export async function rvGet(args) {
76
+ const result = await nexusPost('/api/mcp/reviews', {
77
+ action: 'rv_get',
78
+ review_id: args.review_id,
79
+ entity_type: args.entity_type,
80
+ entity_id: args.entity_id,
81
+ });
82
+ if (!result.ok) {
83
+ return {
84
+ content: [
85
+ {
86
+ type: 'text',
87
+ text: JSON.stringify({ error: result.error }, null, 2),
88
+ },
89
+ ],
90
+ isError: true,
91
+ };
92
+ }
93
+ return {
94
+ content: [
95
+ { type: 'text', text: JSON.stringify(result.data, null, 2) },
96
+ ],
97
+ };
98
+ }
99
+ // ---------------------------------------------------------------------------
100
+ // rv_create
101
+ // ---------------------------------------------------------------------------
102
+ export const rvCreateSchema = {
103
+ entity_type: z
104
+ .enum(['skill', 'agent'])
105
+ .describe('Type of entity to create a review for'),
106
+ entity_id: z
107
+ .string()
108
+ .uuid()
109
+ .describe('UUID of the entity to review'),
110
+ };
111
+ export async function rvCreate(args) {
112
+ const result = await nexusPost('/api/mcp/reviews', {
113
+ action: 'rv_create',
114
+ entity_type: args.entity_type,
115
+ entity_id: args.entity_id,
116
+ });
117
+ if (!result.ok) {
118
+ return {
119
+ content: [
120
+ {
121
+ type: 'text',
122
+ text: JSON.stringify({ error: result.error }, null, 2),
123
+ },
124
+ ],
125
+ isError: true,
126
+ };
127
+ }
128
+ return {
129
+ content: [
130
+ { type: 'text', text: JSON.stringify(result.data, null, 2) },
131
+ ],
132
+ };
133
+ }
134
+ // ---------------------------------------------------------------------------
135
+ // rv_decide
136
+ // ---------------------------------------------------------------------------
137
+ export const rvDecideSchema = {
138
+ review_id: z.string().uuid().describe('Review UUID'),
139
+ transition: z
140
+ .enum(['submit', 'accept', 'reject', 'request_revision', 'resubmit', 'archive'])
141
+ .describe('State transition to apply'),
142
+ rationale: z
143
+ .string()
144
+ .max(10_000)
145
+ .optional()
146
+ .describe('Optional rationale for the decision'),
147
+ };
148
+ export async function rvDecide(args) {
149
+ const result = await nexusPost('/api/mcp/reviews', {
150
+ action: 'rv_decide',
151
+ review_id: args.review_id,
152
+ transition: args.transition,
153
+ rationale: args.rationale,
154
+ });
155
+ if (!result.ok) {
156
+ return {
157
+ content: [
158
+ {
159
+ type: 'text',
160
+ text: JSON.stringify({ error: result.error }, null, 2),
161
+ },
162
+ ],
163
+ isError: true,
164
+ };
165
+ }
166
+ return {
167
+ content: [
168
+ { type: 'text', text: JSON.stringify(result.data, null, 2) },
169
+ ],
170
+ };
171
+ }
172
+ // ---------------------------------------------------------------------------
173
+ // rv_comment
174
+ // ---------------------------------------------------------------------------
175
+ export const rvCommentSchema = {
176
+ review_id: z.string().uuid().describe('Review UUID'),
177
+ body: z.string().max(100_000).describe('Comment body (markdown supported)'),
178
+ agent_id: z
179
+ .string()
180
+ .max(200)
181
+ .optional()
182
+ .describe('Agent identifier if comment is posted by an agent'),
183
+ line_start: z
184
+ .number()
185
+ .int()
186
+ .optional()
187
+ .describe('Start line number for inline comments'),
188
+ line_end: z
189
+ .number()
190
+ .int()
191
+ .optional()
192
+ .describe('End line number for inline comments'),
193
+ };
194
+ export async function rvComment(args) {
195
+ const result = await nexusPost('/api/mcp/reviews', {
196
+ action: 'rv_comment',
197
+ review_id: args.review_id,
198
+ body: args.body,
199
+ agent_id: args.agent_id,
200
+ line_start: args.line_start,
201
+ line_end: args.line_end,
202
+ });
203
+ if (!result.ok) {
204
+ return {
205
+ content: [
206
+ {
207
+ type: 'text',
208
+ text: JSON.stringify({ error: result.error }, null, 2),
209
+ },
210
+ ],
211
+ isError: true,
212
+ };
213
+ }
214
+ return {
215
+ content: [
216
+ { type: 'text', text: JSON.stringify(result.data, null, 2) },
217
+ ],
218
+ };
219
+ }
220
+ //# sourceMappingURL=reviews.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviews.js","sourceRoot":"","sources":["../../src/tools/reviews.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * kb_search -- Layer 1 Knowledge Access
3
+ *
4
+ * Searches project knowledge using keyword, semantic, or hybrid mode.
5
+ * Delegates to POST /api/mcp/search.
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const searchKnowledgeSchema: {
9
+ query: z.ZodString;
10
+ project_id: z.ZodString;
11
+ entity_types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
12
+ session: "session";
13
+ decision: "decision";
14
+ letter: "letter";
15
+ task: "task";
16
+ research_note: "research_note";
17
+ planning_item: "planning_item";
18
+ ingest_item: "ingest_item";
19
+ }>>>;
20
+ search_mode: z.ZodDefault<z.ZodEnum<{
21
+ keyword: "keyword";
22
+ semantic: "semantic";
23
+ hybrid: "hybrid";
24
+ }>>;
25
+ limit: z.ZodDefault<z.ZodNumber>;
26
+ };
27
+ type SearchArgs = {
28
+ query: string;
29
+ project_id: string;
30
+ entity_types?: string[];
31
+ search_mode?: string;
32
+ limit?: number;
33
+ };
34
+ export declare function searchKnowledge(args: SearchArgs): Promise<{
35
+ content: {
36
+ type: "text";
37
+ text: string;
38
+ }[];
39
+ isError: boolean;
40
+ } | {
41
+ content: {
42
+ type: "text";
43
+ text: string;
44
+ }[];
45
+ isError?: undefined;
46
+ }>;
47
+ export {};
48
+ //# sourceMappingURL=search-knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-knowledge.d.ts","sourceRoot":"","sources":["../../src/tools/search-knowledge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;CA4BjC,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU;;;;;;;;;;;;GAmBrD"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * kb_search -- Layer 1 Knowledge Access
3
+ *
4
+ * Searches project knowledge using keyword, semantic, or hybrid mode.
5
+ * Delegates to POST /api/mcp/search.
6
+ */
7
+ import { z } from 'zod';
8
+ import { nexusPost } from '../nexus-api.js';
9
+ export const searchKnowledgeSchema = {
10
+ query: z.string().max(1000).describe('Free-text search query'),
11
+ project_id: z.string().uuid().describe('Project UUID to scope the search'),
12
+ entity_types: z
13
+ .array(z.enum([
14
+ 'session',
15
+ 'decision',
16
+ 'letter',
17
+ 'task',
18
+ 'research_note',
19
+ 'planning_item',
20
+ 'ingest_item',
21
+ ]))
22
+ .optional()
23
+ .describe('Filter to specific entity types'),
24
+ search_mode: z
25
+ .enum(['keyword', 'semantic', 'hybrid'])
26
+ .default('keyword')
27
+ .describe('Search mode: keyword, semantic, or hybrid'),
28
+ limit: z
29
+ .number()
30
+ .int()
31
+ .min(1)
32
+ .max(50)
33
+ .default(10)
34
+ .describe('Maximum results to return'),
35
+ };
36
+ export async function searchKnowledge(args) {
37
+ const result = await nexusPost('/api/mcp/search', {
38
+ project_id: args.project_id,
39
+ query: args.query,
40
+ entity_types: args.entity_types,
41
+ search_mode: args.search_mode ?? 'keyword',
42
+ limit: args.limit ?? 10,
43
+ });
44
+ if (!result.ok) {
45
+ return {
46
+ content: [{ type: 'text', text: JSON.stringify({ error: result.error }, null, 2) }],
47
+ isError: true,
48
+ };
49
+ }
50
+ return {
51
+ content: [{ type: 'text', text: JSON.stringify(result.data, null, 2) }],
52
+ };
53
+ }
54
+ //# sourceMappingURL=search-knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-knowledge.js","sourceRoot":"","sources":["../../src/tools/search-knowledge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC9D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC1E,YAAY,EAAE,CAAC;SACZ,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC;QACL,SAAS;QACT,UAAU;QACV,QAAQ;QACR,MAAM;QACN,eAAe;QACf,eAAe;QACf,aAAa;KACd,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,WAAW,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SACvC,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,2CAA2C,CAAC;IACxD,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,2BAA2B,CAAC;CACzC,CAAA;AAUD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAgB;IACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE;QAChD,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;QAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;KACxB,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC5F,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACjF,CAAA;AACH,CAAC"}