@novaeo/brain-connector 0.1.0 → 0.2.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/README.md +21 -6
- package/dist/brain-http-client.d.ts +96 -2
- package/dist/brain-http-client.d.ts.map +1 -0
- package/dist/brain-http-client.js +62 -4
- package/dist/brain-http-client.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/server.d.ts +10 -3
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +291 -16
- package/dist/server.js.map +1 -1
- package/package.json +2 -9
- package/LICENSE +0 -15
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
A standalone [Model Context Protocol](https://modelcontextprotocol.io) (MCP)
|
|
4
4
|
connector for the **Novaeo Brain** — your company's permission-aware memory.
|
|
5
|
-
It runs as a local **stdio** MCP server and exposes
|
|
6
|
-
client (Claude Desktop, Cursor, Codex, or a generic stdio host). Every call
|
|
7
|
-
made over HTTPS to the Brain API, authenticated with your personal token. The
|
|
5
|
+
It runs as a local **stdio** MCP server and exposes twenty Brain tools to any
|
|
6
|
+
MCP client (Claude Desktop, Cursor, Codex, or a generic stdio host). Every call
|
|
7
|
+
is made over HTTPS to the Brain API, authenticated with your personal token. The
|
|
8
8
|
token **is** your identity: the server resolves who you are and only ever
|
|
9
9
|
returns what you are allowed to see.
|
|
10
10
|
|
|
@@ -18,14 +18,29 @@ and no secrets. Its only runtime dependencies are
|
|
|
18
18
|
|---|---|
|
|
19
19
|
| `search_brain` | Permission-filtered semantic search; returns ranked snippets with citations. |
|
|
20
20
|
| `answer_from_brain` | Grounded answer to a question, with source citations. |
|
|
21
|
+
| `ask_novi` | The full Novi agent loop with your permissions — plans, calls tools, returns a cited answer. |
|
|
21
22
|
| `write_brain_memory` | Write a draft note into the brain under a visibility policy. |
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
| `
|
|
23
|
+
| `get_me` | Your identity, capabilities, and admin/review flags. |
|
|
24
|
+
| `list_visibility_policies` | Visibility policies you may write to (ids for `write_brain_memory` / `create_action_item`). |
|
|
25
|
+
| `list_projects` | List projects (ids for task assignment and filters). |
|
|
26
|
+
| `list_pods` | List active pods (ids for task assignment and filters). |
|
|
27
|
+
| `list_directory` | List people in the workspace (identity ids for owners/assignees). |
|
|
28
|
+
| `list_action_items` | List action items (defaults to your own open items; rich filters). |
|
|
29
|
+
| `get_action_item` | Get one action item, including its `updatedAt` and your capabilities. |
|
|
30
|
+
| `create_action_item` | Create an action item (full field set: priority, dates, frequency, pod, estimate, attachments, …). Returns the full created item including `updatedAt`. |
|
|
31
|
+
| `update_action_item` | Update an action item's status or fields (optimistic concurrency via `expectedUpdatedAt`). |
|
|
32
|
+
| `list_task_events` | Activity/event history of an action item. |
|
|
33
|
+
| `list_task_comments` | List comments on an action item. |
|
|
34
|
+
| `create_task_comment` | Comment on an action item (progress notes, findings). |
|
|
35
|
+
| `update_task_comment` | Edit or delete one of your comments. |
|
|
25
36
|
| `create_reminder` | Create a reminder that inherits its trigger message's visibility. |
|
|
26
37
|
| `summarize_thread` | Summarize a chat thread into a short, cited summary. |
|
|
27
38
|
| `promote_to_curated_note` | Promote a reviewed note into the curated `novaeo-brain` vault. |
|
|
28
39
|
|
|
40
|
+
Two governance tools are hidden unless the connector starts with
|
|
41
|
+
`BRAIN_RULE_TIER_ENABLED=on` / `BRAIN_LAW_TIER_ENABLED=on`:
|
|
42
|
+
`promote_to_rule` and `set_law` (reviewer / Brain-admin enforced server-side).
|
|
43
|
+
|
|
29
44
|
## Configuration
|
|
30
45
|
|
|
31
46
|
Two environment variables are **required**. The connector exits with a clear
|
|
@@ -29,11 +29,29 @@ export interface SearchPayload {
|
|
|
29
29
|
query: string;
|
|
30
30
|
limit?: number;
|
|
31
31
|
answerMode?: "private" | "shared";
|
|
32
|
+
sourceTypes?: string[];
|
|
33
|
+
functionSlug?: string;
|
|
34
|
+
projectId?: string;
|
|
35
|
+
/** Time window on source event time (ISO); sinceDays is a relative lookback. */
|
|
36
|
+
since?: string;
|
|
37
|
+
until?: string;
|
|
38
|
+
sinceDays?: number;
|
|
32
39
|
}
|
|
33
40
|
export interface AnswerPayload {
|
|
34
41
|
query: string;
|
|
35
42
|
limit?: number;
|
|
36
43
|
answerMode?: "private" | "shared";
|
|
44
|
+
sourceTypes?: string[];
|
|
45
|
+
functionSlug?: string;
|
|
46
|
+
projectId?: string;
|
|
47
|
+
since?: string;
|
|
48
|
+
until?: string;
|
|
49
|
+
sinceDays?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface AgentPayload {
|
|
52
|
+
query: string;
|
|
53
|
+
answerMode?: "private" | "shared";
|
|
54
|
+
threadId?: string;
|
|
37
55
|
}
|
|
38
56
|
export interface WriteMemoryPayload {
|
|
39
57
|
title: string;
|
|
@@ -45,6 +63,17 @@ export interface ListActionItemsPayload {
|
|
|
45
63
|
ownerIdentityId?: string;
|
|
46
64
|
status?: "open" | "in_progress" | "blocked" | "done" | "cancelled";
|
|
47
65
|
limit?: number;
|
|
66
|
+
projectId?: string;
|
|
67
|
+
includeClosed?: boolean;
|
|
68
|
+
priority?: Array<"urgent" | "high" | "normal" | "low" | "none">;
|
|
69
|
+
q?: string;
|
|
70
|
+
dueFrom?: string;
|
|
71
|
+
dueTo?: string;
|
|
72
|
+
pod?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface ActionItemAttachmentLink {
|
|
75
|
+
url: string;
|
|
76
|
+
label?: string;
|
|
48
77
|
}
|
|
49
78
|
export interface CreateActionItemPayload {
|
|
50
79
|
title: string;
|
|
@@ -53,14 +82,45 @@ export interface CreateActionItemPayload {
|
|
|
53
82
|
projectId?: string;
|
|
54
83
|
sourceMessageId?: string;
|
|
55
84
|
visibilityPolicyId?: string;
|
|
56
|
-
dueDate?: string;
|
|
85
|
+
dueDate?: string | null;
|
|
86
|
+
dueDateFirmness?: "hard" | "medium" | "soft";
|
|
87
|
+
startDate?: string | null;
|
|
88
|
+
endDate?: string | null;
|
|
89
|
+
frequency?: "one_time" | "daily" | "weekly" | "monthly" | "yearly";
|
|
90
|
+
estimatedDuration?: string;
|
|
91
|
+
estimatedMinutes?: number | null;
|
|
92
|
+
pod?: string;
|
|
93
|
+
taskType?: "task" | "reminder" | "time_off";
|
|
94
|
+
attachmentLinks?: ActionItemAttachmentLink[];
|
|
95
|
+
status?: "open" | "in_progress" | "blocked" | "done" | "cancelled";
|
|
96
|
+
assignedAt?: string;
|
|
97
|
+
priority?: "urgent" | "high" | "normal" | "low";
|
|
98
|
+
resolutionNotes?: string;
|
|
99
|
+
calendarSyncOptIn?: boolean;
|
|
57
100
|
}
|
|
58
101
|
export interface UpdateActionItemPayload {
|
|
59
102
|
id: string;
|
|
103
|
+
expectedUpdatedAt: string;
|
|
60
104
|
status?: "open" | "in_progress" | "blocked" | "done" | "cancelled";
|
|
61
105
|
title?: string;
|
|
62
|
-
|
|
106
|
+
details?: string;
|
|
107
|
+
dueDate?: string | null;
|
|
108
|
+
dueDateFirmness?: "hard" | "medium" | "soft";
|
|
109
|
+
startDate?: string | null;
|
|
110
|
+
endDate?: string | null;
|
|
111
|
+
frequency?: "one_time" | "daily" | "weekly" | "monthly" | "yearly";
|
|
112
|
+
estimatedDuration?: string;
|
|
113
|
+
estimatedMinutes?: number | null;
|
|
114
|
+
pod?: string | null;
|
|
115
|
+
taskType?: "task" | "reminder" | "time_off";
|
|
116
|
+
attachmentLinks?: ActionItemAttachmentLink[];
|
|
117
|
+
dueDateMoveReason?: string | null;
|
|
63
118
|
ownerIdentityId?: string;
|
|
119
|
+
assignedAt?: string;
|
|
120
|
+
closedAt?: string | null;
|
|
121
|
+
resolutionNotes?: string | null;
|
|
122
|
+
priority?: "urgent" | "high" | "normal" | "low" | null;
|
|
123
|
+
calendarSyncOptIn?: boolean;
|
|
64
124
|
}
|
|
65
125
|
export interface CreateReminderPayload {
|
|
66
126
|
remindAfter: string;
|
|
@@ -72,10 +132,24 @@ export interface CreateReminderPayload {
|
|
|
72
132
|
export interface SummarizeThreadPayload {
|
|
73
133
|
threadId: string;
|
|
74
134
|
}
|
|
135
|
+
export interface CreateCommentPayload {
|
|
136
|
+
actionItemId: string;
|
|
137
|
+
body: string;
|
|
138
|
+
}
|
|
139
|
+
export interface UpdateCommentPayload {
|
|
140
|
+
actionItemId: string;
|
|
141
|
+
commentId: string;
|
|
142
|
+
body?: string;
|
|
143
|
+
isDeleted?: boolean;
|
|
144
|
+
}
|
|
75
145
|
export interface PromoteNotePayload {
|
|
76
146
|
noteId: string;
|
|
77
147
|
dryRun?: boolean;
|
|
78
148
|
}
|
|
149
|
+
export interface AuthorityTierPayload {
|
|
150
|
+
noteId: string;
|
|
151
|
+
comment?: string;
|
|
152
|
+
}
|
|
79
153
|
export interface BrainHttpClientOptions {
|
|
80
154
|
/** Injected for tests; defaults to the global `fetch`. */
|
|
81
155
|
fetchImpl?: FetchLike;
|
|
@@ -89,11 +163,31 @@ export declare class BrainHttpClient {
|
|
|
89
163
|
private call;
|
|
90
164
|
search(payload: SearchPayload): Promise<unknown>;
|
|
91
165
|
answer(payload: AnswerPayload): Promise<unknown>;
|
|
166
|
+
agent(payload: AgentPayload): Promise<unknown>;
|
|
92
167
|
writeMemory(payload: WriteMemoryPayload): Promise<unknown>;
|
|
93
168
|
listActionItems(payload: ListActionItemsPayload): Promise<unknown>;
|
|
94
169
|
createActionItem(payload: CreateActionItemPayload): Promise<unknown>;
|
|
170
|
+
getActionItem(payload: {
|
|
171
|
+
id: string;
|
|
172
|
+
}): Promise<unknown>;
|
|
173
|
+
listActionItemEvents(payload: {
|
|
174
|
+
id: string;
|
|
175
|
+
}): Promise<unknown>;
|
|
95
176
|
updateActionItem(payload: UpdateActionItemPayload): Promise<unknown>;
|
|
177
|
+
listComments(payload: {
|
|
178
|
+
actionItemId: string;
|
|
179
|
+
}): Promise<unknown>;
|
|
180
|
+
createComment(payload: CreateCommentPayload): Promise<unknown>;
|
|
181
|
+
updateComment(payload: UpdateCommentPayload): Promise<unknown>;
|
|
182
|
+
getMe(): Promise<unknown>;
|
|
183
|
+
listWritableVisibility(): Promise<unknown>;
|
|
184
|
+
listProjects(): Promise<unknown>;
|
|
185
|
+
listPods(): Promise<unknown>;
|
|
186
|
+
listDirectory(): Promise<unknown>;
|
|
96
187
|
createReminder(payload: CreateReminderPayload): Promise<unknown>;
|
|
97
188
|
summarizeThread(payload: SummarizeThreadPayload): Promise<unknown>;
|
|
98
189
|
promoteNote(payload: PromoteNotePayload): Promise<unknown>;
|
|
190
|
+
promoteToRule(payload: AuthorityTierPayload): Promise<unknown>;
|
|
191
|
+
setLaw(payload: AuthorityTierPayload): Promise<unknown>;
|
|
99
192
|
}
|
|
193
|
+
//# sourceMappingURL=brain-http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain-http-client.d.ts","sourceRoot":"","sources":["../src/brain-http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
1
2
|
import { newCorrelationId } from "./config.js";
|
|
2
3
|
/** Raised when the Brain API call fails (network or non-2xx response). */
|
|
3
4
|
export class BrainApiError extends Error {
|
|
@@ -22,7 +23,7 @@ export class BrainHttpClient {
|
|
|
22
23
|
this.fetchImpl = impl;
|
|
23
24
|
}
|
|
24
25
|
/** Issue an authenticated JSON request. The token resolves the identity. */
|
|
25
|
-
async call(method, path, body) {
|
|
26
|
+
async call(method, path, body, extraHeaders) {
|
|
26
27
|
const correlationId = newCorrelationId();
|
|
27
28
|
const url = `${this.baseUrl}${path}`;
|
|
28
29
|
let res;
|
|
@@ -33,6 +34,7 @@ export class BrainHttpClient {
|
|
|
33
34
|
"content-type": "application/json",
|
|
34
35
|
authorization: `Bearer ${this.token}`,
|
|
35
36
|
"x-correlation-id": correlationId,
|
|
37
|
+
...extraHeaders,
|
|
36
38
|
},
|
|
37
39
|
...(body ? { body: JSON.stringify(body) } : {}),
|
|
38
40
|
});
|
|
@@ -56,26 +58,74 @@ export class BrainHttpClient {
|
|
|
56
58
|
}
|
|
57
59
|
return (await res.json());
|
|
58
60
|
}
|
|
59
|
-
/*
|
|
61
|
+
/* Brain tools → HTTP paths. requesterId is NEVER sent. */
|
|
60
62
|
search(payload) {
|
|
61
63
|
return this.call("POST", "/v1/search", { ...payload });
|
|
62
64
|
}
|
|
63
65
|
answer(payload) {
|
|
64
66
|
return this.call("POST", "/v1/answer", { ...payload });
|
|
65
67
|
}
|
|
68
|
+
agent(payload) {
|
|
69
|
+
return this.call("POST", "/v1/agent", { ...payload });
|
|
70
|
+
}
|
|
66
71
|
writeMemory(payload) {
|
|
67
72
|
return this.call("POST", "/v1/notes", { ...payload });
|
|
68
73
|
}
|
|
69
74
|
listActionItems(payload) {
|
|
70
75
|
return this.call("POST", "/v1/action-items/query", { ...payload });
|
|
71
76
|
}
|
|
72
|
-
createActionItem(payload) {
|
|
73
|
-
|
|
77
|
+
async createActionItem(payload) {
|
|
78
|
+
const created = await this.call("POST", "/v1/action-items", { ...payload });
|
|
79
|
+
// The create response carries only id/visibilityPolicyId — follow up with a
|
|
80
|
+
// read so the caller gets the full item (including updatedAt, which
|
|
81
|
+
// update_action_item requires for optimistic concurrency). If the follow-up
|
|
82
|
+
// read fails, still return the create response.
|
|
83
|
+
try {
|
|
84
|
+
const detail = await this.call("GET", `/v1/action-items/${created.id}`);
|
|
85
|
+
return { ...detail.item, ...(detail.capabilities !== undefined ? { capabilities: detail.capabilities } : {}), correlationId: created.correlationId };
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return created;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
getActionItem(payload) {
|
|
92
|
+
return this.call("GET", `/v1/action-items/${payload.id}`);
|
|
93
|
+
}
|
|
94
|
+
listActionItemEvents(payload) {
|
|
95
|
+
return this.call("GET", `/v1/action-items/${payload.id}/events`);
|
|
74
96
|
}
|
|
75
97
|
updateActionItem(payload) {
|
|
76
98
|
const { id, ...rest } = payload;
|
|
77
99
|
return this.call("PATCH", `/v1/action-items/${id}`, { ...rest });
|
|
78
100
|
}
|
|
101
|
+
listComments(payload) {
|
|
102
|
+
return this.call("GET", `/v1/action-items/${payload.actionItemId}/comments`);
|
|
103
|
+
}
|
|
104
|
+
createComment(payload) {
|
|
105
|
+
const { actionItemId, ...rest } = payload;
|
|
106
|
+
// The API requires an Idempotency-Key on comment creation; the connector
|
|
107
|
+
// generates one per call so agents don't have to manage it.
|
|
108
|
+
return this.call("POST", `/v1/action-items/${actionItemId}/comments`, { ...rest }, { "Idempotency-Key": randomUUID() });
|
|
109
|
+
}
|
|
110
|
+
updateComment(payload) {
|
|
111
|
+
const { actionItemId, commentId, ...rest } = payload;
|
|
112
|
+
return this.call("PATCH", `/v1/action-items/${actionItemId}/comments/${commentId}`, { ...rest });
|
|
113
|
+
}
|
|
114
|
+
getMe() {
|
|
115
|
+
return this.call("GET", "/v1/me");
|
|
116
|
+
}
|
|
117
|
+
listWritableVisibility() {
|
|
118
|
+
return this.call("GET", "/v1/visibility/writable");
|
|
119
|
+
}
|
|
120
|
+
listProjects() {
|
|
121
|
+
return this.call("GET", "/v1/projects");
|
|
122
|
+
}
|
|
123
|
+
listPods() {
|
|
124
|
+
return this.call("GET", "/v1/pods");
|
|
125
|
+
}
|
|
126
|
+
listDirectory() {
|
|
127
|
+
return this.call("GET", "/v1/directory");
|
|
128
|
+
}
|
|
79
129
|
createReminder(payload) {
|
|
80
130
|
return this.call("POST", "/v1/reminders", { ...payload });
|
|
81
131
|
}
|
|
@@ -85,5 +135,13 @@ export class BrainHttpClient {
|
|
|
85
135
|
promoteNote(payload) {
|
|
86
136
|
return this.call("POST", "/v1/notes/promote", { ...payload });
|
|
87
137
|
}
|
|
138
|
+
promoteToRule(payload) {
|
|
139
|
+
const { noteId, ...rest } = payload;
|
|
140
|
+
return this.call("POST", `/v1/notes/${noteId}/promote-to-rule`, { ...rest });
|
|
141
|
+
}
|
|
142
|
+
setLaw(payload) {
|
|
143
|
+
const { noteId, ...rest } = payload;
|
|
144
|
+
return this.call("POST", `/v1/notes/${noteId}/set-law`, { ...rest });
|
|
145
|
+
}
|
|
88
146
|
}
|
|
89
147
|
//# sourceMappingURL=brain-http-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain-http-client.js","sourceRoot":"","sources":["../src/brain-http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAwB,MAAM,aAAa,CAAC;AA4BrE,0EAA0E;AAC1E,MAAM,OAAO,aAAc,SAAQ,KAAK;IAG3B;IAFX,YACE,OAAe,EACN,OAAiF;QAE1F,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,YAAO,GAAP,OAAO,CAA0E;QAG1F,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"brain-http-client.js","sourceRoot":"","sources":["../src/brain-http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/config.d.ts
CHANGED
|
@@ -22,3 +22,4 @@ export declare class ConfigError extends Error {
|
|
|
22
22
|
export declare function loadConfig(env?: NodeJS.ProcessEnv): ConnectorConfig;
|
|
23
23
|
/** Correlation id stamped on every tool call for end-to-end audit tracing. */
|
|
24
24
|
export declare function newCorrelationId(): string;
|
|
25
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAUA,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,eAAe,CA+BhF;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { createBrainConnectorServer, BRAIN_TOOL_NAMES, type CreateServerOptions } from "./server.js";
|
|
2
2
|
export { BrainHttpClient, BrainApiError, type FetchLike, type BrainHttpClientOptions } from "./brain-http-client.js";
|
|
3
3
|
export { loadConfig, ConfigError, newCorrelationId, type ConnectorConfig } from "./config.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -3,11 +3,18 @@ import { BrainHttpClient } from "./brain-http-client.js";
|
|
|
3
3
|
export interface CreateServerOptions {
|
|
4
4
|
/** HTTP client to the Brain API. Tests inject one with a mock fetch. */
|
|
5
5
|
client: BrainHttpClient;
|
|
6
|
+
/** Advertise the rule-tier governance tool. Defaults to BRAIN_RULE_TIER_ENABLED=on. */
|
|
7
|
+
enableRuleTier?: boolean;
|
|
8
|
+
/** Advertise the law-tier governance tool. Defaults to BRAIN_LAW_TIER_ENABLED=on. */
|
|
9
|
+
enableLawTier?: boolean;
|
|
6
10
|
}
|
|
7
|
-
/** The stable, ordered list of tool names this connector exposes. */
|
|
8
|
-
export declare
|
|
11
|
+
/** The stable, ordered list of tool names this connector exposes for the given feature flags. */
|
|
12
|
+
export declare function brainToolNames(options?: Pick<CreateServerOptions, "enableRuleTier" | "enableLawTier">): readonly string[];
|
|
13
|
+
/** The default, environment-gated tool list used by docs/tests that do not inject flags. */
|
|
14
|
+
export declare const BRAIN_TOOL_NAMES: readonly string[];
|
|
9
15
|
/**
|
|
10
|
-
* Build the public Brain MCP server with all
|
|
16
|
+
* Build the public Brain MCP server with all registered tools. Connect the
|
|
11
17
|
* returned server to a stdio (or any) transport.
|
|
12
18
|
*/
|
|
13
19
|
export declare function createBrainConnectorServer(options: CreateServerOptions): McpServer;
|
|
20
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAsBzD,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,MAAM,EAAE,eAAe,CAAC;IACxB,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA6BD,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,eAAe,CAAM,GAAG,SAAS,MAAM,EAAE,CAK7H;AAED,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAkCjD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAielF"}
|
package/dist/server.js
CHANGED
|
@@ -8,35 +8,88 @@ function fail(e) {
|
|
|
8
8
|
const message = e instanceof Error ? e.message : String(e);
|
|
9
9
|
return { content: [{ type: "text", text: JSON.stringify({ error: message }) }], isError: true };
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
export const BRAIN_TOOL_NAMES = [
|
|
11
|
+
const BASE_BRAIN_TOOL_NAMES = [
|
|
13
12
|
"search_brain",
|
|
14
13
|
"answer_from_brain",
|
|
14
|
+
"ask_novi",
|
|
15
15
|
"write_brain_memory",
|
|
16
16
|
"list_action_items",
|
|
17
|
+
"get_action_item",
|
|
17
18
|
"create_action_item",
|
|
18
19
|
"update_action_item",
|
|
20
|
+
"list_task_events",
|
|
21
|
+
"list_task_comments",
|
|
22
|
+
"create_task_comment",
|
|
23
|
+
"update_task_comment",
|
|
19
24
|
"create_reminder",
|
|
20
25
|
"summarize_thread",
|
|
21
26
|
"promote_to_curated_note",
|
|
27
|
+
"get_me",
|
|
28
|
+
"list_visibility_policies",
|
|
29
|
+
"list_projects",
|
|
30
|
+
"list_pods",
|
|
31
|
+
"list_directory",
|
|
22
32
|
];
|
|
33
|
+
function isFlagEnabled(name) {
|
|
34
|
+
return process.env[name] === "on";
|
|
35
|
+
}
|
|
36
|
+
/** The stable, ordered list of tool names this connector exposes for the given feature flags. */
|
|
37
|
+
export function brainToolNames(options = {}) {
|
|
38
|
+
const names = [...BASE_BRAIN_TOOL_NAMES];
|
|
39
|
+
if (options.enableRuleTier ?? isFlagEnabled("BRAIN_RULE_TIER_ENABLED"))
|
|
40
|
+
names.push("promote_to_rule");
|
|
41
|
+
if (options.enableLawTier ?? isFlagEnabled("BRAIN_LAW_TIER_ENABLED"))
|
|
42
|
+
names.push("set_law");
|
|
43
|
+
return names;
|
|
44
|
+
}
|
|
45
|
+
/** The default, environment-gated tool list used by docs/tests that do not inject flags. */
|
|
46
|
+
export const BRAIN_TOOL_NAMES = brainToolNames();
|
|
23
47
|
const answerMode = z
|
|
24
48
|
.enum(["private", "shared"])
|
|
25
49
|
.optional()
|
|
26
50
|
.describe("DM (private) vs group/channel (shared). Defaults server-side to private.");
|
|
51
|
+
const retrievalFilters = {
|
|
52
|
+
sourceTypes: z.array(z.string().min(1)).optional().describe("Optional source types to include, such as note, document, or message."),
|
|
53
|
+
functionSlug: z.string().min(1).optional().describe("Optional function slug filter for note memory."),
|
|
54
|
+
projectId: z.string().uuid().optional().describe("Optional project id filter for notes and documents."),
|
|
55
|
+
};
|
|
56
|
+
/* Action-item field schemas mirror the Brain API route contract (work.ts).
|
|
57
|
+
* Dates are date-only (YYYY-MM-DD); nullable means "clear the field" on update. */
|
|
58
|
+
const actionItemStatus = z.enum(["open", "in_progress", "blocked", "done", "cancelled"]);
|
|
59
|
+
const actionItemPriority = z.enum(["urgent", "high", "normal", "low"]);
|
|
60
|
+
const actionItemFrequency = z.enum(["one_time", "daily", "weekly", "monthly", "yearly"]);
|
|
61
|
+
const actionItemTaskType = z.enum(["task", "reminder", "time_off"]);
|
|
62
|
+
const actionItemFirmness = z.enum(["hard", "medium", "soft"]);
|
|
63
|
+
const dateOnly = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "date-only, YYYY-MM-DD");
|
|
64
|
+
const attachmentLinks = z
|
|
65
|
+
.array(z
|
|
66
|
+
.object({
|
|
67
|
+
url: z.string().url().startsWith("https://"),
|
|
68
|
+
label: z.string().trim().min(1).max(120).optional(),
|
|
69
|
+
})
|
|
70
|
+
.strict())
|
|
71
|
+
.max(10)
|
|
72
|
+
.optional()
|
|
73
|
+
.describe("Reference links (https only, max 10).");
|
|
27
74
|
/**
|
|
28
|
-
* Build the public Brain MCP server with all
|
|
75
|
+
* Build the public Brain MCP server with all registered tools. Connect the
|
|
29
76
|
* returned server to a stdio (or any) transport.
|
|
30
77
|
*/
|
|
31
78
|
export function createBrainConnectorServer(options) {
|
|
32
79
|
const { client } = options;
|
|
33
80
|
const server = new McpServer({ name: "novaeo-brain-connector", version: "0.1.0" });
|
|
81
|
+
const registerRuleTool = options.enableRuleTier ?? isFlagEnabled("BRAIN_RULE_TIER_ENABLED");
|
|
82
|
+
const registerLawTool = options.enableLawTier ?? isFlagEnabled("BRAIN_LAW_TIER_ENABLED");
|
|
34
83
|
// 1. search_brain → POST /v1/search
|
|
35
84
|
server.registerTool("search_brain", {
|
|
36
|
-
description: "Search company memory for relevant snippets (permission-filtered to your access). Returns ranked results with citations.",
|
|
85
|
+
description: "Search company memory for relevant snippets (permission-filtered to your access). Returns ranked results with citations. Optionally scope to a time window on the source event time (when the chat/meeting/Loom happened).",
|
|
37
86
|
inputSchema: {
|
|
38
87
|
query: z.string().min(1).describe("What to search for."),
|
|
39
88
|
limit: z.number().int().positive().max(50).optional(),
|
|
89
|
+
since: z.string().optional().describe("ISO date/time: only content at or after this source event time."),
|
|
90
|
+
until: z.string().optional().describe("ISO date/time: only content at or before this source event time."),
|
|
91
|
+
sinceDays: z.number().optional().describe("Relative window: only content from the last N days by source event time."),
|
|
92
|
+
...retrievalFilters,
|
|
40
93
|
answerMode,
|
|
41
94
|
},
|
|
42
95
|
}, async (args) => {
|
|
@@ -49,10 +102,14 @@ export function createBrainConnectorServer(options) {
|
|
|
49
102
|
});
|
|
50
103
|
// 2. answer_from_brain → POST /v1/answer
|
|
51
104
|
server.registerTool("answer_from_brain", {
|
|
52
|
-
description: "Answer a question grounded in company memory, permission-filtered to your access, with source citations.",
|
|
105
|
+
description: "Answer a question grounded in company memory, permission-filtered to your access, with source citations. Optionally scope to a time window on the source event time.",
|
|
53
106
|
inputSchema: {
|
|
54
107
|
query: z.string().min(1).describe("The question to answer."),
|
|
55
108
|
limit: z.number().int().positive().max(50).optional(),
|
|
109
|
+
since: z.string().optional().describe("ISO date/time: only content at or after this source event time."),
|
|
110
|
+
until: z.string().optional().describe("ISO date/time: only content at or before this source event time."),
|
|
111
|
+
sinceDays: z.number().optional().describe("Relative window: only content from the last N days by source event time."),
|
|
112
|
+
...retrievalFilters,
|
|
56
113
|
answerMode,
|
|
57
114
|
},
|
|
58
115
|
}, async (args) => {
|
|
@@ -63,6 +120,26 @@ export function createBrainConnectorServer(options) {
|
|
|
63
120
|
return fail(e);
|
|
64
121
|
}
|
|
65
122
|
});
|
|
123
|
+
// 2b. ask_novi → POST /v1/agent — the full agent loop (plan → tools →
|
|
124
|
+
// synthesize) with YOUR permissions. Beyond a single search/answer, it can
|
|
125
|
+
// search the brain, summarize threads, manage your action items, read live
|
|
126
|
+
// SC15 operational data, search Drive (DM/private context), and delegate to
|
|
127
|
+
// Hermes — gated to what your token may read/write. MCP parity with Novi.
|
|
128
|
+
server.registerTool("ask_novi", {
|
|
129
|
+
description: "Ask Novi using the full agent loop with your permissions — it plans, calls the right tools (brain search, thread summary, action-item management, live SC15 ops reads, Drive search, delegate-to-Hermes), and returns a cited answer plus the tools it used. Use for anything beyond a one-shot search/answer.",
|
|
130
|
+
inputSchema: {
|
|
131
|
+
query: z.string().min(1).describe("Your request in plain language."),
|
|
132
|
+
answerMode,
|
|
133
|
+
threadId: z.string().optional().describe("Conversation id for follow-up context (optional)."),
|
|
134
|
+
},
|
|
135
|
+
}, async (args) => {
|
|
136
|
+
try {
|
|
137
|
+
return ok(await client.agent(args));
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
return fail(e);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
66
143
|
// 3. write_brain_memory → POST /v1/notes
|
|
67
144
|
server.registerTool("write_brain_memory", {
|
|
68
145
|
description: "Write a memory (draft note) into the brain under a given visibility policy.",
|
|
@@ -82,10 +159,17 @@ export function createBrainConnectorServer(options) {
|
|
|
82
159
|
});
|
|
83
160
|
// 4. list_action_items → POST /v1/action-items/query
|
|
84
161
|
server.registerTool("list_action_items", {
|
|
85
|
-
description: "List action items (permission-filtered). Defaults to your own items; an owner filter for another user requires admin.",
|
|
162
|
+
description: "List action items (permission-filtered). Defaults to your own open items; an owner filter for another user requires admin.",
|
|
86
163
|
inputSchema: {
|
|
87
164
|
ownerIdentityId: z.string().uuid().optional(),
|
|
88
|
-
status:
|
|
165
|
+
status: actionItemStatus.optional(),
|
|
166
|
+
includeClosed: z.boolean().optional().describe("Include done/cancelled items."),
|
|
167
|
+
priority: z.array(z.enum(["urgent", "high", "normal", "low", "none"])).optional(),
|
|
168
|
+
projectId: z.string().uuid().optional(),
|
|
169
|
+
pod: z.string().min(1).optional(),
|
|
170
|
+
q: z.string().optional().describe("Free-text filter over title/details."),
|
|
171
|
+
dueFrom: dateOnly.optional().describe("Only items due on/after this date (YYYY-MM-DD)."),
|
|
172
|
+
dueTo: dateOnly.optional().describe("Only items due on/before this date (YYYY-MM-DD)."),
|
|
89
173
|
limit: z.number().int().positive().max(100).optional(),
|
|
90
174
|
},
|
|
91
175
|
}, async (args) => {
|
|
@@ -96,17 +180,43 @@ export function createBrainConnectorServer(options) {
|
|
|
96
180
|
return fail(e);
|
|
97
181
|
}
|
|
98
182
|
});
|
|
183
|
+
// 4b. get_action_item → GET /v1/action-items/:id
|
|
184
|
+
server.registerTool("get_action_item", {
|
|
185
|
+
description: "Get a single action item by id, including its updatedAt value (needed for updates) and your capabilities on it.",
|
|
186
|
+
inputSchema: { id: z.string().uuid() },
|
|
187
|
+
}, async (args) => {
|
|
188
|
+
try {
|
|
189
|
+
return ok(await client.getActionItem(args));
|
|
190
|
+
}
|
|
191
|
+
catch (e) {
|
|
192
|
+
return fail(e);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
99
195
|
// 5. create_action_item → POST /v1/action-items
|
|
100
196
|
server.registerTool("create_action_item", {
|
|
101
|
-
description: "Create an action item
|
|
197
|
+
description: "Create an action item. Returns the full created item including updatedAt (use it as expectedUpdatedAt for updates).",
|
|
102
198
|
inputSchema: {
|
|
103
199
|
title: z.string().min(1),
|
|
104
200
|
details: z.string().optional(),
|
|
105
|
-
ownerIdentityId: z.string().uuid().optional(),
|
|
106
|
-
projectId: z.string().uuid().optional(),
|
|
201
|
+
ownerIdentityId: z.string().uuid().optional().describe("Defaults to you."),
|
|
202
|
+
projectId: z.string().uuid().optional().describe("From list_projects."),
|
|
107
203
|
sourceMessageId: z.string().uuid().optional().describe("Message the item derives visibility from."),
|
|
108
|
-
visibilityPolicyId: z.string().uuid().optional().describe("Explicit visibility
|
|
109
|
-
dueDate:
|
|
204
|
+
visibilityPolicyId: z.string().uuid().optional().describe("Explicit visibility if no source message; from list_visibility_policies."),
|
|
205
|
+
dueDate: dateOnly.nullable().optional().describe("Date-only (YYYY-MM-DD); no times."),
|
|
206
|
+
dueDateFirmness: actionItemFirmness.optional(),
|
|
207
|
+
startDate: dateOnly.nullable().optional(),
|
|
208
|
+
endDate: dateOnly.nullable().optional(),
|
|
209
|
+
frequency: actionItemFrequency.optional().describe("Defaults to one_time."),
|
|
210
|
+
estimatedDuration: z.string().optional().describe("Free-form estimate, e.g. '2h'."),
|
|
211
|
+
estimatedMinutes: z.number().int().positive().nullable().optional(),
|
|
212
|
+
pod: z.string().min(1).optional().describe("From list_pods."),
|
|
213
|
+
taskType: actionItemTaskType.optional(),
|
|
214
|
+
attachmentLinks,
|
|
215
|
+
status: actionItemStatus.optional(),
|
|
216
|
+
assignedAt: z.string().optional(),
|
|
217
|
+
priority: actionItemPriority.optional().describe("Omit for no priority."),
|
|
218
|
+
resolutionNotes: z.string().optional(),
|
|
219
|
+
calendarSyncOptIn: z.boolean().optional(),
|
|
110
220
|
},
|
|
111
221
|
}, async (args) => {
|
|
112
222
|
try {
|
|
@@ -118,13 +228,30 @@ export function createBrainConnectorServer(options) {
|
|
|
118
228
|
});
|
|
119
229
|
// 6. update_action_item → PATCH /v1/action-items/:id
|
|
120
230
|
server.registerTool("update_action_item", {
|
|
121
|
-
description: "Update an action item's status or fields.
|
|
231
|
+
description: "Update an action item's status or fields using the item updatedAt value for optimistic concurrency. On a 409 conflict, re-read the item and retry with the fresh updatedAt.",
|
|
122
232
|
inputSchema: {
|
|
123
233
|
id: z.string().uuid(),
|
|
124
|
-
|
|
234
|
+
expectedUpdatedAt: z.string().describe("The current item updatedAt value returned by list_action_items, get_action_item, or create_action_item."),
|
|
235
|
+
status: actionItemStatus.optional(),
|
|
125
236
|
title: z.string().min(1).optional(),
|
|
126
|
-
|
|
127
|
-
|
|
237
|
+
details: z.string().optional(),
|
|
238
|
+
dueDate: dateOnly.nullable().optional().describe("Date-only (YYYY-MM-DD); null clears."),
|
|
239
|
+
dueDateFirmness: actionItemFirmness.optional(),
|
|
240
|
+
startDate: dateOnly.nullable().optional(),
|
|
241
|
+
endDate: dateOnly.nullable().optional(),
|
|
242
|
+
frequency: actionItemFrequency.optional(),
|
|
243
|
+
estimatedDuration: z.string().optional(),
|
|
244
|
+
estimatedMinutes: z.number().int().positive().nullable().optional(),
|
|
245
|
+
pod: z.string().min(1).nullable().optional(),
|
|
246
|
+
taskType: actionItemTaskType.optional(),
|
|
247
|
+
attachmentLinks,
|
|
248
|
+
dueDateMoveReason: z.string().nullable().optional().describe("Why the due date moved."),
|
|
249
|
+
ownerIdentityId: z.string().uuid().optional().describe("Reassign; from list_directory."),
|
|
250
|
+
assignedAt: z.string().optional(),
|
|
251
|
+
closedAt: z.string().nullable().optional(),
|
|
252
|
+
resolutionNotes: z.string().nullable().optional(),
|
|
253
|
+
priority: actionItemPriority.nullable().optional().describe("Null clears the priority."),
|
|
254
|
+
calendarSyncOptIn: z.boolean().optional(),
|
|
128
255
|
},
|
|
129
256
|
}, async (args) => {
|
|
130
257
|
try {
|
|
@@ -134,6 +261,62 @@ export function createBrainConnectorServer(options) {
|
|
|
134
261
|
return fail(e);
|
|
135
262
|
}
|
|
136
263
|
});
|
|
264
|
+
// 6b. list_task_events → GET /v1/action-items/:id/events
|
|
265
|
+
server.registerTool("list_task_events", {
|
|
266
|
+
description: "List the activity/event history of an action item (status changes, edits, comments).",
|
|
267
|
+
inputSchema: { id: z.string().uuid() },
|
|
268
|
+
}, async (args) => {
|
|
269
|
+
try {
|
|
270
|
+
return ok(await client.listActionItemEvents(args));
|
|
271
|
+
}
|
|
272
|
+
catch (e) {
|
|
273
|
+
return fail(e);
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
// 6c. list_task_comments → GET /v1/action-items/:id/comments
|
|
277
|
+
server.registerTool("list_task_comments", {
|
|
278
|
+
description: "List comments on an action item.",
|
|
279
|
+
inputSchema: { actionItemId: z.string().uuid() },
|
|
280
|
+
}, async (args) => {
|
|
281
|
+
try {
|
|
282
|
+
return ok(await client.listComments(args));
|
|
283
|
+
}
|
|
284
|
+
catch (e) {
|
|
285
|
+
return fail(e);
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
// 6d. create_task_comment → POST /v1/action-items/:id/comments
|
|
289
|
+
server.registerTool("create_task_comment", {
|
|
290
|
+
description: "Add a comment to an action item. Use for progress notes, findings, or hand-off context.",
|
|
291
|
+
inputSchema: {
|
|
292
|
+
actionItemId: z.string().uuid(),
|
|
293
|
+
body: z.string().min(1),
|
|
294
|
+
},
|
|
295
|
+
}, async (args) => {
|
|
296
|
+
try {
|
|
297
|
+
return ok(await client.createComment(args));
|
|
298
|
+
}
|
|
299
|
+
catch (e) {
|
|
300
|
+
return fail(e);
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
// 6e. update_task_comment → PATCH /v1/action-items/:id/comments/:commentId
|
|
304
|
+
server.registerTool("update_task_comment", {
|
|
305
|
+
description: "Edit or delete one of your comments on an action item.",
|
|
306
|
+
inputSchema: {
|
|
307
|
+
actionItemId: z.string().uuid(),
|
|
308
|
+
commentId: z.string().uuid(),
|
|
309
|
+
body: z.string().min(1).optional().describe("New comment text (edit)."),
|
|
310
|
+
isDeleted: z.boolean().optional().describe("Set true to delete the comment."),
|
|
311
|
+
},
|
|
312
|
+
}, async (args) => {
|
|
313
|
+
try {
|
|
314
|
+
return ok(await client.updateComment(args));
|
|
315
|
+
}
|
|
316
|
+
catch (e) {
|
|
317
|
+
return fail(e);
|
|
318
|
+
}
|
|
319
|
+
});
|
|
137
320
|
// 7. create_reminder → POST /v1/reminders
|
|
138
321
|
server.registerTool("create_reminder", {
|
|
139
322
|
description: "Create a reminder that fires after a given time, inheriting the trigger message's visibility.",
|
|
@@ -181,6 +364,98 @@ export function createBrainConnectorServer(options) {
|
|
|
181
364
|
return fail(e);
|
|
182
365
|
}
|
|
183
366
|
});
|
|
367
|
+
// 10. get_me → GET /v1/me
|
|
368
|
+
server.registerTool("get_me", {
|
|
369
|
+
description: "Your identity, capabilities, and admin/review flags. Call first to learn who the token acts as.",
|
|
370
|
+
inputSchema: {},
|
|
371
|
+
}, async () => {
|
|
372
|
+
try {
|
|
373
|
+
return ok(await client.getMe());
|
|
374
|
+
}
|
|
375
|
+
catch (e) {
|
|
376
|
+
return fail(e);
|
|
377
|
+
}
|
|
378
|
+
});
|
|
379
|
+
// 11. list_visibility_policies → GET /v1/visibility/writable
|
|
380
|
+
server.registerTool("list_visibility_policies", {
|
|
381
|
+
description: "Visibility policies you may write to. Use a policy id from here for write_brain_memory or create_action_item.",
|
|
382
|
+
inputSchema: {},
|
|
383
|
+
}, async () => {
|
|
384
|
+
try {
|
|
385
|
+
return ok(await client.listWritableVisibility());
|
|
386
|
+
}
|
|
387
|
+
catch (e) {
|
|
388
|
+
return fail(e);
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
// 12. list_projects → GET /v1/projects
|
|
392
|
+
server.registerTool("list_projects", {
|
|
393
|
+
description: "List projects (for projectId filters and task assignment).",
|
|
394
|
+
inputSchema: {},
|
|
395
|
+
}, async () => {
|
|
396
|
+
try {
|
|
397
|
+
return ok(await client.listProjects());
|
|
398
|
+
}
|
|
399
|
+
catch (e) {
|
|
400
|
+
return fail(e);
|
|
401
|
+
}
|
|
402
|
+
});
|
|
403
|
+
// 13. list_pods → GET /v1/pods
|
|
404
|
+
server.registerTool("list_pods", {
|
|
405
|
+
description: "List active pods (for pod filters and task assignment).",
|
|
406
|
+
inputSchema: {},
|
|
407
|
+
}, async () => {
|
|
408
|
+
try {
|
|
409
|
+
return ok(await client.listPods());
|
|
410
|
+
}
|
|
411
|
+
catch (e) {
|
|
412
|
+
return fail(e);
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
// 14. list_directory → GET /v1/directory
|
|
416
|
+
server.registerTool("list_directory", {
|
|
417
|
+
description: "List people in the workspace directory (identity ids for owners, assignees, mentions).",
|
|
418
|
+
inputSchema: {},
|
|
419
|
+
}, async () => {
|
|
420
|
+
try {
|
|
421
|
+
return ok(await client.listDirectory());
|
|
422
|
+
}
|
|
423
|
+
catch (e) {
|
|
424
|
+
return fail(e);
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
if (registerRuleTool) {
|
|
428
|
+
server.registerTool("promote_to_rule", {
|
|
429
|
+
description: "Promote a reviewed/accepted durable memory note to rule tier. The Brain API enforces feature flags and reviewer/lead permissions.",
|
|
430
|
+
inputSchema: {
|
|
431
|
+
noteId: z.string().uuid(),
|
|
432
|
+
comment: z.string().optional(),
|
|
433
|
+
},
|
|
434
|
+
}, async (args) => {
|
|
435
|
+
try {
|
|
436
|
+
return ok(await client.promoteToRule(args));
|
|
437
|
+
}
|
|
438
|
+
catch (e) {
|
|
439
|
+
return fail(e);
|
|
440
|
+
}
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
if (registerLawTool) {
|
|
444
|
+
server.registerTool("set_law", {
|
|
445
|
+
description: "Set a reviewed/accepted durable memory note to law tier. The Brain API enforces feature flags and Brain admin authorization.",
|
|
446
|
+
inputSchema: {
|
|
447
|
+
noteId: z.string().uuid(),
|
|
448
|
+
comment: z.string().optional(),
|
|
449
|
+
},
|
|
450
|
+
}, async (args) => {
|
|
451
|
+
try {
|
|
452
|
+
return ok(await client.setLaw(args));
|
|
453
|
+
}
|
|
454
|
+
catch (e) {
|
|
455
|
+
return fail(e);
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
}
|
|
184
459
|
return server;
|
|
185
460
|
}
|
|
186
461
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@novaeo/brain-connector",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Standalone stdio MCP connector for the Novaeo Brain. Exposes search, answer, memory, action-item, reminder, summarize, and promote tools over HTTPS using a per-user token.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -20,9 +20,7 @@
|
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
|
-
"build": "tsc",
|
|
24
|
-
"prepublishOnly": "tsc",
|
|
25
|
-
"test": "vitest run",
|
|
23
|
+
"build": "tsc -b",
|
|
26
24
|
"start": "node ./dist/cli.js"
|
|
27
25
|
},
|
|
28
26
|
"keywords": [
|
|
@@ -38,10 +36,5 @@
|
|
|
38
36
|
"dependencies": {
|
|
39
37
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
40
38
|
"zod": "^3.24.1"
|
|
41
|
-
},
|
|
42
|
-
"devDependencies": {
|
|
43
|
-
"@types/node": "^22.10.0",
|
|
44
|
-
"typescript": "^5.7.2",
|
|
45
|
-
"vitest": "^2.1.8"
|
|
46
39
|
}
|
|
47
40
|
}
|
package/LICENSE
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Novaeo
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
|