@novaeo/brain-connector 0.2.0 → 0.4.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 CHANGED
@@ -2,7 +2,7 @@
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 twenty Brain tools to any
5
+ It runs as a local **stdio** MCP server and exposes twenty-two Brain tools to any
6
6
  MCP client (Claude Desktop, Cursor, Codex, or a generic stdio host). Every call
7
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
@@ -19,13 +19,15 @@ and no secrets. Its only runtime dependencies are
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
21
  | `ask_novi` | The full Novi agent loop with your permissions — plans, calls tools, returns a cited answer. |
22
+ | `list_brain_sources` | List the sources matching a scope, with chunk counts and a two-part coverage line. The first half of an ALL / EVERY answer. |
23
+ | `read_brain_source` | Read evidence from listed sources — one source paged, or a batch of keys focused on a query. The second half. |
22
24
  | `write_brain_memory` | Write a draft note into the brain under a visibility policy. |
23
25
  | `get_me` | Your identity, capabilities, and admin/review flags. |
24
26
  | `list_visibility_policies` | Visibility policies you may write to (ids for `write_brain_memory` / `create_action_item`). |
25
27
  | `list_projects` | List projects (ids for task assignment and filters). |
26
28
  | `list_pods` | List active pods (ids for task assignment and filters). |
27
29
  | `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). |
30
+ | `list_action_items` | List action items (defaults to your own open items; rich filters, cursor pagination, server-side totals). |
29
31
  | `get_action_item` | Get one action item, including its `updatedAt` and your capabilities. |
30
32
  | `create_action_item` | Create an action item (full field set: priority, dates, frequency, pod, estimate, attachments, …). Returns the full created item including `updatedAt`. |
31
33
  | `update_action_item` | Update an action item's status or fields (optimistic concurrency via `expectedUpdatedAt`). |
@@ -37,10 +39,82 @@ and no secrets. Its only runtime dependencies are
37
39
  | `summarize_thread` | Summarize a chat thread into a short, cited summary. |
38
40
  | `promote_to_curated_note` | Promote a reviewed note into the curated `novaeo-brain` vault. |
39
41
 
42
+ ### Listing action items without miscounting
43
+
44
+ `list_action_items` returns **one page**, capped at `limit` (max 100). Two habits keep
45
+ the results honest:
46
+
47
+ - **Paginate with `cursor`.** A non-null `nextCursor` in the response means more items
48
+ match. Pass it back as `cursor`, with the same filters and sort, to get the next page —
49
+ a cursor is bound to the filters that minted it, and reusing one after changing a filter
50
+ is an error rather than a silently short page.
51
+ - **Count with `includeStats`, never by counting rows.** `stats` is a server-side
52
+ aggregate over *every* item matching your filter (under your permissions), so it stays
53
+ correct when the page is capped. Its by-status buckets — `open`, `inProgress`,
54
+ `blocked`, `completed`, `cancelled` — sum to `total`. Add `includeClosed: true` for a
55
+ breakdown across all statuses. Counting the returned rows instead reports the page cap
56
+ as though it were a total.
57
+
58
+ Rows are a **compact projection** by default (`id`, `itemNumber`, `title`, `status`,
59
+ `priority`, `dueDate`, `ownerName`, `ownerIdentityId`, `lastActivityAt`, `updatedAt`) —
60
+ enough to identify, triage, and immediately update an item. Pass `verbose: true` for the
61
+ full field set. `lastActivityFrom` / `lastActivityTo` window the set on `last_activity_at`,
62
+ which is also the default sort key; items with no recorded activity fall outside any window.
63
+ Both take an ISO date (`YYYY-MM-DD`) or a full ISO instant, normalized to UTC — a date-only
64
+ bound covers that entire UTC day, so `lastActivityTo: "2026-08-19"` includes the 19th.
65
+
66
+ Unknown arguments are rejected with an MCP `InvalidParams` error rather than silently
67
+ dropped, so a call that works around a schema gap fails loudly instead of returning
68
+ correct-looking page-one data.
69
+
40
70
  Two governance tools are hidden unless the connector starts with
41
71
  `BRAIN_RULE_TIER_ENABLED=on` / `BRAIN_LAW_TIER_ENABLED=on`:
42
72
  `promote_to_rule` and `set_law` (reviewer / Brain-admin enforced server-side).
43
73
 
74
+ ### Answering "all" / "every" questions without guessing
75
+
76
+ `search_brain` returns a *ranked page*, so it can never prove it saw everything. For a question that
77
+ asks for all of something — every Loom a person posted, every meeting about a topic, a complete
78
+ document list — use the two source tools instead:
79
+
80
+ 1. `list_brain_sources` with the filters the question states. The response's coverage line reports two
81
+ separate numbers: how many sources **matched** your scope, and how many this page **shows**. A
82
+ source you cannot see is absent from both — hidden is indistinguishable from does-not-exist, by
83
+ design.
84
+ 2. `read_brain_source` over the listed keys, in batch shape (`sourceKeys` + `query`), for the evidence.
85
+ 3. If the listing reported a next page, list again with its `cursor` before reading further.
86
+
87
+ Report catalog coverage and evidence coverage separately. Do not call a set complete unless the listing
88
+ says the catalog is complete *and* every listed source was read.
89
+
90
+ ## Compatibility
91
+
92
+ | Connector | Contract |
93
+ |---|---|
94
+ | `0.4.0` | Adds `filters`, `coverageMode`, `budgets`, and `mode` to `search_brain` / `answer_from_brain`; adds `list_brain_sources` and `read_brain_source`; adds `continuation` to `ask_novi`. |
95
+ | `0.3.0` and earlier | Flat `sourceTypes` / `functionSlug` / `projectId` / time-window filters only; no source tools. |
96
+
97
+ Every `0.4.0` change is **additive**: existing arguments keep their names, types, and meaning, and
98
+ every new one is optional. The legacy flat filters are still accepted — the Brain API folds them into
99
+ the same resolved scope.
100
+
101
+ **`citations` semantics changed in `0.4.0`.** `ask_novi` now returns the sources the answer actually
102
+ **cites**, renumbered to `[1..k]` to match the `[n]` markers in the answer text, plus a
103
+ `sourcesConsulted` count of everything the turn looked at. Before `0.4.0` a broad turn returned every
104
+ retrieved source — forty or more on a wide question — with no way to tell which ones the answer rested
105
+ on. An answer that carries no `[n]` markers still returns every consulted source — note that this set
106
+ now also includes the rows a `list_brain_sources` call enumerated, so an uncited answer after a large
107
+ listing returns more citations than `0.3.0` would have.
108
+
109
+ `ask_novi` also returns `coverage` (catalog and evidence totals for the turn), `scope.summary`
110
+ (permission-safe sentences describing how each filter resolved), and `continuation` (whether unread
111
+ sources remain in this thread, and when that offer expires). All four fields are optional and absent
112
+ when the turn did no retrieval. Continuation state itself is server-held: pass `continuation: true`
113
+ with the same `threadId` to resume. No cursor or internal id is ever returned to a client.
114
+
115
+ Unknown arguments are still rejected with an MCP `InvalidParams` error rather than silently dropped, so
116
+ a client written against a newer schema fails loudly against an older connector.
117
+
44
118
  ## Configuration
45
119
 
46
120
  Two environment variables are **required**. The connector exits with a clear
@@ -0,0 +1,24 @@
1
+ /** The fields a listing needs to be useful: identify, triage, and act. */
2
+ export declare const COMPACT_ACTION_ITEM_FIELDS: readonly ["id", "itemNumber", "title", "status", "priority", "dueDate", "ownerName", "ownerIdentityId", "lastActivityAt", "updatedAt"];
3
+ /**
4
+ * Drop snake_case keys that merely duplicate a camelCase twin. A snake_case key
5
+ * with no twin (`closed_by_identity_id`, `updated_by_identity_id`) is renamed
6
+ * rather than dropped, so no *field* is lost by folding the casing. Where both
7
+ * casings are present the camelCase one wins outright — if the two ever
8
+ * disagreed the API would already be serialising one item two ways, and
9
+ * camelCase is the documented surface.
10
+ */
11
+ export declare function camelizeActionItem(item: Record<string, unknown>): Record<string, unknown>;
12
+ /** One item, full camelCase field set. Used for get/create responses. */
13
+ export declare function shapeActionItem(value: unknown): unknown;
14
+ /** `{ item, capabilities, correlationId }` — shape the nested item in place. */
15
+ export declare function shapeActionItemDetail(response: unknown): unknown;
16
+ /**
17
+ * A list response: camelCase items, compact unless `verbose`. Everything else
18
+ * on the envelope (`nextCursor`, `withheldCount`, `stats`, `correlationId`) is
19
+ * preserved untouched — those are how a caller knows the page is not the set.
20
+ */
21
+ export declare function shapeActionItemList(response: unknown, options: {
22
+ verbose: boolean;
23
+ }): unknown;
24
+ //# sourceMappingURL=action-item-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-item-shape.d.ts","sourceRoot":"","sources":["../src/action-item-shape.ts"],"names":[],"mappings":"AAYA,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B,wIAc7B,CAAC;AAMX;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzF;AAMD,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAGhE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAa7F"}
@@ -0,0 +1,89 @@
1
+ /* ---------------------------------------------------------------------------
2
+ * NOVI-387 — response shaping for action-item payloads.
3
+ *
4
+ * The Brain API serialises every action item in BOTH casings (`dueDate` and
5
+ * `due_date`, `actualMinutesByDate` and `actual_minutes_by_date`, ~25 fields
6
+ * deep) for a legacy consumer. That doubles the wire payload: 100 items came to
7
+ * ~223 KB, past MCP client output limits, so a routine list call spilled to a
8
+ * file the agent then had to parse. The connector's documented surface is
9
+ * camelCase, so the duplicates are folded away here — and a list defaults to a
10
+ * compact projection, with `verbose: true` for the full item.
11
+ * ------------------------------------------------------------------------- */
12
+ /** The fields a listing needs to be useful: identify, triage, and act. */
13
+ export const COMPACT_ACTION_ITEM_FIELDS = [
14
+ "id",
15
+ // The durable "#1247" that chat posts quote.
16
+ "itemNumber",
17
+ "title",
18
+ "status",
19
+ "priority",
20
+ "dueDate",
21
+ "ownerName",
22
+ "ownerIdentityId",
23
+ "lastActivityAt",
24
+ // Carried so an immediate follow-up edit needs no re-read: update_action_item
25
+ // requires it as expectedUpdatedAt.
26
+ "updatedAt",
27
+ ];
28
+ function toCamelCase(key) {
29
+ return key.replace(/_([a-z0-9])/g, (_match, char) => char.toUpperCase());
30
+ }
31
+ /**
32
+ * Drop snake_case keys that merely duplicate a camelCase twin. A snake_case key
33
+ * with no twin (`closed_by_identity_id`, `updated_by_identity_id`) is renamed
34
+ * rather than dropped, so no *field* is lost by folding the casing. Where both
35
+ * casings are present the camelCase one wins outright — if the two ever
36
+ * disagreed the API would already be serialising one item two ways, and
37
+ * camelCase is the documented surface.
38
+ */
39
+ export function camelizeActionItem(item) {
40
+ const out = {};
41
+ for (const [key, value] of Object.entries(item)) {
42
+ if (!key.includes("_")) {
43
+ out[key] = value;
44
+ continue;
45
+ }
46
+ const camel = toCamelCase(key);
47
+ if (camel === key || camel in item)
48
+ continue;
49
+ out[camel] = value;
50
+ }
51
+ return out;
52
+ }
53
+ function isRecord(value) {
54
+ return typeof value === "object" && value !== null && !Array.isArray(value);
55
+ }
56
+ /** One item, full camelCase field set. Used for get/create responses. */
57
+ export function shapeActionItem(value) {
58
+ return isRecord(value) ? camelizeActionItem(value) : value;
59
+ }
60
+ /** `{ item, capabilities, correlationId }` — shape the nested item in place. */
61
+ export function shapeActionItemDetail(response) {
62
+ if (!isRecord(response) || !isRecord(response.item))
63
+ return shapeActionItem(response);
64
+ return { ...response, item: camelizeActionItem(response.item) };
65
+ }
66
+ /**
67
+ * A list response: camelCase items, compact unless `verbose`. Everything else
68
+ * on the envelope (`nextCursor`, `withheldCount`, `stats`, `correlationId`) is
69
+ * preserved untouched — those are how a caller knows the page is not the set.
70
+ */
71
+ export function shapeActionItemList(response, options) {
72
+ if (!isRecord(response) || !Array.isArray(response.items))
73
+ return response;
74
+ const items = response.items.map((raw) => {
75
+ if (!isRecord(raw))
76
+ return raw;
77
+ const camel = camelizeActionItem(raw);
78
+ if (options.verbose)
79
+ return camel;
80
+ const compact = {};
81
+ for (const field of COMPACT_ACTION_ITEM_FIELDS) {
82
+ if (field in camel)
83
+ compact[field] = camel[field];
84
+ }
85
+ return compact;
86
+ });
87
+ return { ...response, items };
88
+ }
89
+ //# sourceMappingURL=action-item-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-item-shape.js","sourceRoot":"","sources":["../src/action-item-shape.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export type FetchLike = (input: string, init: {
4
4
  method: string;
5
5
  headers: Record<string, string>;
6
6
  body?: string;
7
+ signal?: AbortSignal;
7
8
  }) => Promise<{
8
9
  ok: boolean;
9
10
  status: number;
@@ -25,7 +26,31 @@ export declare class BrainApiError extends Error {
25
26
  cause?: string;
26
27
  });
27
28
  }
28
- export interface SearchPayload {
29
+ /**
30
+ * U6 (NOVI-388) — the shared retrieval contract, identical on both MCP
31
+ * surfaces. Forwarded verbatim; the Brain API resolves every operand to exact
32
+ * ids, returns choices for an ambiguous name, and fails closed on a hidden or
33
+ * unparseable one.
34
+ */
35
+ export interface SharedRetrievalFields {
36
+ filters?: {
37
+ providers?: string[];
38
+ sourceKinds?: string[];
39
+ author?: string;
40
+ space?: string;
41
+ project?: string;
42
+ since?: string;
43
+ until?: string;
44
+ sinceDays?: number;
45
+ };
46
+ coverageMode?: "focused" | "broad" | "exhaustive";
47
+ budgets?: {
48
+ maxSources?: number;
49
+ chunksPerSource?: number;
50
+ };
51
+ mode?: string;
52
+ }
53
+ export interface SearchPayload extends SharedRetrievalFields {
29
54
  query: string;
30
55
  limit?: number;
31
56
  answerMode?: "private" | "shared";
@@ -37,7 +62,7 @@ export interface SearchPayload {
37
62
  until?: string;
38
63
  sinceDays?: number;
39
64
  }
40
- export interface AnswerPayload {
65
+ export interface AnswerPayload extends SharedRetrievalFields {
41
66
  query: string;
42
67
  limit?: number;
43
68
  answerMode?: "private" | "shared";
@@ -52,6 +77,22 @@ export interface AgentPayload {
52
77
  query: string;
53
78
  answerMode?: "private" | "shared";
54
79
  threadId?: string;
80
+ /** U6: resume the continuation stored for this threadId. Ignored when none. */
81
+ continuation?: boolean;
82
+ }
83
+ /** U5 source catalog / read. */
84
+ export interface SourceListPayload {
85
+ filters?: SharedRetrievalFields["filters"];
86
+ pageSize?: number;
87
+ cursor?: string;
88
+ coverageMode?: "focused" | "broad" | "exhaustive";
89
+ }
90
+ export interface SourceReadPayload {
91
+ sourceKey?: string;
92
+ sourceKeys?: string[];
93
+ query?: string;
94
+ chunksPerSource?: number;
95
+ cursor?: string;
55
96
  }
56
97
  export interface WriteMemoryPayload {
57
98
  title: string;
@@ -61,7 +102,7 @@ export interface WriteMemoryPayload {
61
102
  }
62
103
  export interface ListActionItemsPayload {
63
104
  ownerIdentityId?: string;
64
- status?: "open" | "in_progress" | "blocked" | "done" | "cancelled";
105
+ status?: "open" | "in_progress" | "blocked" | "done" | "cancelled" | Array<"open" | "in_progress" | "blocked" | "done" | "cancelled">;
65
106
  limit?: number;
66
107
  projectId?: string;
67
108
  includeClosed?: boolean;
@@ -70,6 +111,16 @@ export interface ListActionItemsPayload {
70
111
  dueFrom?: string;
71
112
  dueTo?: string;
72
113
  pod?: string;
114
+ /** Opaque `nextCursor` from a previous page. Without it a caller with more
115
+ * than `limit` matching items simply cannot reach page two. */
116
+ cursor?: string;
117
+ /** Window on `last_activity_at`, which is also the default sort key. */
118
+ lastActivityFrom?: string;
119
+ lastActivityTo?: string;
120
+ sort?: "due_date" | "priority" | "last_activity_at" | "created_at";
121
+ dir?: "asc" | "desc";
122
+ /** Ask for server-side totals over the whole matching set, not the page. */
123
+ includeStats?: boolean;
73
124
  }
74
125
  export interface ActionItemAttachmentLink {
75
126
  url: string;
@@ -86,7 +137,7 @@ export interface CreateActionItemPayload {
86
137
  dueDateFirmness?: "hard" | "medium" | "soft";
87
138
  startDate?: string | null;
88
139
  endDate?: string | null;
89
- frequency?: "one_time" | "daily" | "weekly" | "monthly" | "yearly";
140
+ frequency?: "one_time" | "daily" | "weekly" | "monthly" | "weekdays" | "yearly";
90
141
  estimatedDuration?: string;
91
142
  estimatedMinutes?: number | null;
92
143
  pod?: string;
@@ -108,7 +159,7 @@ export interface UpdateActionItemPayload {
108
159
  dueDateFirmness?: "hard" | "medium" | "soft";
109
160
  startDate?: string | null;
110
161
  endDate?: string | null;
111
- frequency?: "one_time" | "daily" | "weekly" | "monthly" | "yearly";
162
+ frequency?: "one_time" | "daily" | "weekly" | "monthly" | "weekdays" | "yearly";
112
163
  estimatedDuration?: string;
113
164
  estimatedMinutes?: number | null;
114
165
  pod?: string | null;
@@ -153,22 +204,29 @@ export interface AuthorityTierPayload {
153
204
  export interface BrainHttpClientOptions {
154
205
  /** Injected for tests; defaults to the global `fetch`. */
155
206
  fetchImpl?: FetchLike;
207
+ /** Optional outer operation deadline/cancellation signal. */
208
+ signal?: AbortSignal;
156
209
  }
157
210
  export declare class BrainHttpClient {
158
211
  private readonly baseUrl;
159
212
  private readonly token;
160
213
  private readonly fetchImpl;
214
+ private readonly signal;
161
215
  constructor(config: ConnectorConfig, options?: BrainHttpClientOptions);
162
216
  /** Issue an authenticated JSON request. The token resolves the identity. */
163
217
  private call;
164
218
  search(payload: SearchPayload): Promise<unknown>;
165
219
  answer(payload: AnswerPayload): Promise<unknown>;
166
220
  agent(payload: AgentPayload): Promise<unknown>;
221
+ listSources(payload: SourceListPayload): Promise<unknown>;
222
+ readSource(payload: SourceReadPayload): Promise<unknown>;
167
223
  writeMemory(payload: WriteMemoryPayload): Promise<unknown>;
168
224
  listActionItems(payload: ListActionItemsPayload): Promise<unknown>;
169
225
  createActionItem(payload: CreateActionItemPayload): Promise<unknown>;
170
226
  getActionItem(payload: {
171
227
  id: string;
228
+ } | {
229
+ itemNumber: number;
172
230
  }): Promise<unknown>;
173
231
  listActionItemEvents(payload: {
174
232
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"brain-http-client.d.ts","sourceRoot":"","sources":["../src/brain-http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain-http-client.d.ts","sourceRoot":"","sources":["../src/brain-http-client.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export class BrainHttpClient {
13
13
  baseUrl;
14
14
  token;
15
15
  fetchImpl;
16
+ signal;
16
17
  constructor(config, options = {}) {
17
18
  this.baseUrl = config.brainApiUrl.replace(/\/$/, "");
18
19
  this.token = config.token;
@@ -21,6 +22,7 @@ export class BrainHttpClient {
21
22
  throw new Error("No fetch implementation available. Use Node 18+ or pass options.fetchImpl.");
22
23
  }
23
24
  this.fetchImpl = impl;
25
+ this.signal = options.signal;
24
26
  }
25
27
  /** Issue an authenticated JSON request. The token resolves the identity. */
26
28
  async call(method, path, body, extraHeaders) {
@@ -37,10 +39,16 @@ export class BrainHttpClient {
37
39
  ...extraHeaders,
38
40
  },
39
41
  ...(body ? { body: JSON.stringify(body) } : {}),
42
+ ...(this.signal ? { signal: this.signal } : {}),
40
43
  });
41
44
  }
42
45
  catch (err) {
43
- throw new BrainApiError("Brain API request failed", { path, correlationId, cause: String(err) });
46
+ const aborted = this.signal?.aborted || (err instanceof DOMException && err.name === "AbortError");
47
+ throw new BrainApiError(aborted ? "Brain API request aborted" : "Brain API request failed", {
48
+ path,
49
+ correlationId,
50
+ cause: aborted ? "aborted" : "network_error",
51
+ });
44
52
  }
45
53
  if (!res.ok) {
46
54
  let detail = "";
@@ -68,6 +76,12 @@ export class BrainHttpClient {
68
76
  agent(payload) {
69
77
  return this.call("POST", "/v1/agent", { ...payload });
70
78
  }
79
+ listSources(payload) {
80
+ return this.call("POST", "/v1/sources/list", { ...payload });
81
+ }
82
+ readSource(payload) {
83
+ return this.call("POST", "/v1/sources/read", { ...payload });
84
+ }
71
85
  writeMemory(payload) {
72
86
  return this.call("POST", "/v1/notes", { ...payload });
73
87
  }
@@ -89,7 +103,11 @@ export class BrainHttpClient {
89
103
  }
90
104
  }
91
105
  getActionItem(payload) {
92
- return this.call("GET", `/v1/action-items/${payload.id}`);
106
+ // A durable number resolves through its own route, which applies the same
107
+ // visibility filter and 404s identically for an item the caller cannot see.
108
+ return "itemNumber" in payload
109
+ ? this.call("GET", `/v1/action-items/by-number/${payload.itemNumber}`)
110
+ : this.call("GET", `/v1/action-items/${payload.id}`);
93
111
  }
94
112
  listActionItemEvents(payload) {
95
113
  return this.call("GET", `/v1/action-items/${payload.id}/events`);
@@ -1 +1 @@
1
- {"version":3,"file":"brain-http-client.js","sourceRoot":"","sources":["../src/brain-http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain-http-client.js","sourceRoot":"","sources":["../src/brain-http-client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { createBrainConnectorServer, BRAIN_TOOL_NAMES, type CreateServerOptions } from "./server.js";
1
+ export { createBrainConnectorServer, BRAIN_TOOL_NAMES, CONNECTOR_VERSION, type CreateServerOptions } from "./server.js";
2
+ export { camelizeActionItem, shapeActionItem, shapeActionItemDetail, shapeActionItemList, COMPACT_ACTION_ITEM_FIELDS } from "./action-item-shape.js";
2
3
  export { BrainHttpClient, BrainApiError, type FetchLike, type BrainHttpClientOptions } from "./brain-http-client.js";
3
4
  export { loadConfig, ConfigError, newCorrelationId, type ConnectorConfig } from "./config.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACrJ,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/index.js CHANGED
@@ -1,4 +1,5 @@
1
- export { createBrainConnectorServer, BRAIN_TOOL_NAMES } from "./server.js";
1
+ export { createBrainConnectorServer, BRAIN_TOOL_NAMES, CONNECTOR_VERSION } from "./server.js";
2
+ export { camelizeActionItem, shapeActionItem, shapeActionItemDetail, shapeActionItemList, COMPACT_ACTION_ITEM_FIELDS } from "./action-item-shape.js";
2
3
  export { BrainHttpClient, BrainApiError } from "./brain-http-client.js";
3
4
  export { loadConfig, ConfigError, newCorrelationId } from "./config.js";
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAA4B,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,aAAa,EAA+C,MAAM,wBAAwB,CAAC;AACrH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAwB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,iBAAiB,EAA4B,MAAM,aAAa,CAAC;AACxH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACrJ,OAAO,EAAE,eAAe,EAAE,aAAa,EAA+C,MAAM,wBAAwB,CAAC;AACrH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAwB,MAAM,aAAa,CAAC"}
package/dist/server.d.ts CHANGED
@@ -1,5 +1,14 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { BrainHttpClient } from "./brain-http-client.js";
3
+ /**
4
+ * The connector's own version, read from `package.json` rather than hardcoded.
5
+ * `src/` and `dist/` are both one directory below the package root, so the same
6
+ * relative path resolves whether this runs from source (vitest) or from the
7
+ * published build. A hardcoded literal is what made `initialize` advertise
8
+ * 0.1.0 from a 0.2.0 package, leaving clients unable to tell which build they
9
+ * were talking to.
10
+ */
11
+ export declare const CONNECTOR_VERSION: string;
3
12
  export interface CreateServerOptions {
4
13
  /** HTTP client to the Brain API. Tests inject one with a mock fetch. */
5
14
  client: BrainHttpClient;
@@ -1 +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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAU5B,CAAC;AAuBL,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;AA+BD,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;AAqEjD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAmiBlF"}
package/dist/server.js CHANGED
@@ -1,6 +1,48 @@
1
+ import { readFileSync } from "node:fs";
1
2
  import { z } from "zod";
2
3
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
4
  import { BrainHttpClient } from "./brain-http-client.js";
5
+ import { shapeActionItem, shapeActionItemDetail, shapeActionItemList } from "./action-item-shape.js";
6
+ /* ---------------------------------------------------------------------------
7
+ * DER-274 — Public Brain MCP connector.
8
+ *
9
+ * A standalone, DB-free, dependency-self-contained stdio MCP server exposing
10
+ * the Brain tools. Each tool validates its input with zod and calls the
11
+ * Brain API over HTTPS via a `BrainHttpClient`. The per-user token IS the
12
+ * identity, so tools accept only their functional arguments — never a
13
+ * requesterId.
14
+ * ------------------------------------------------------------------------- */
15
+ /**
16
+ * The connector's own version, read from `package.json` rather than hardcoded.
17
+ * `src/` and `dist/` are both one directory below the package root, so the same
18
+ * relative path resolves whether this runs from source (vitest) or from the
19
+ * published build. A hardcoded literal is what made `initialize` advertise
20
+ * 0.1.0 from a 0.2.0 package, leaving clients unable to tell which build they
21
+ * were talking to.
22
+ */
23
+ export const CONNECTOR_VERSION = (() => {
24
+ try {
25
+ const raw = readFileSync(new URL("../package.json", import.meta.url), "utf8");
26
+ const parsed = JSON.parse(raw);
27
+ const version = parsed.version;
28
+ if (typeof version === "string" && version.length > 0)
29
+ return version;
30
+ }
31
+ catch {
32
+ /* fall through to the unknown marker below */
33
+ }
34
+ return "0.0.0-unknown";
35
+ })();
36
+ /**
37
+ * Every tool's declared JSON Schema says `additionalProperties: false`; passing
38
+ * a strict Zod object (rather than a bare shape, which the SDK turns into a
39
+ * stripping object) makes the runtime match the declaration. A caller who
40
+ * works around a schema gap by injecting an argument now gets an MCP error
41
+ * instead of silently correct-looking page-one data.
42
+ */
43
+ function strict(shape) {
44
+ return z.object(shape).strict();
45
+ }
4
46
  function ok(data) {
5
47
  return { content: [{ type: "text", text: JSON.stringify(data) }] };
6
48
  }
@@ -12,6 +54,8 @@ const BASE_BRAIN_TOOL_NAMES = [
12
54
  "search_brain",
13
55
  "answer_from_brain",
14
56
  "ask_novi",
57
+ "list_brain_sources",
58
+ "read_brain_source",
15
59
  "write_brain_memory",
16
60
  "list_action_items",
17
61
  "get_action_item",
@@ -53,11 +97,45 @@ const retrievalFilters = {
53
97
  functionSlug: z.string().min(1).optional().describe("Optional function slug filter for note memory."),
54
98
  projectId: z.string().uuid().optional().describe("Optional project id filter for notes and documents."),
55
99
  };
100
+ /**
101
+ * U6 (NOVI-388) — the shared retrieval contract. Strict, like every schema
102
+ * here: an undeclared argument is an MCP InvalidParams error, never a silent
103
+ * drop. Values are forwarded verbatim; the Brain API owns resolution and clamping.
104
+ */
105
+ const sharedRetrieval = {
106
+ filters: z
107
+ .object({
108
+ providers: z.array(z.string()).optional().describe("Source providers, e.g. loom, google_chat, google_meet, telegram, drive."),
109
+ sourceKinds: z.array(z.string()).optional(),
110
+ author: z.string().optional().describe("Person who posted/recorded/wrote it, by name."),
111
+ space: z.string().optional().describe("Channel or space name."),
112
+ project: z.string().optional().describe("Project name."),
113
+ since: z.string().optional().describe("ISO date/time: at or after this source EVENT time."),
114
+ until: z.string().optional().describe("ISO date/time: at or before this source EVENT time."),
115
+ sinceDays: z.number().int().positive().optional().describe("Relative window in days on source event time."),
116
+ })
117
+ .strict()
118
+ .optional()
119
+ .describe("Structured scope filters. A name matching more than one person, space, or project returns choices and runs no search."),
120
+ coverageMode: z.enum(["focused", "broad", "exhaustive"]).optional().describe("How much of the corpus the answer needs. For ALL/EVERY questions use list_brain_sources + read_brain_source instead."),
121
+ budgets: z
122
+ .object({ maxSources: z.number().int().positive().optional(), chunksPerSource: z.number().int().positive().optional() })
123
+ .strict()
124
+ .optional()
125
+ .describe("Requested source/excerpt budgets; the API clamps them per coverage mode."),
126
+ mode: z.string().optional().describe("Ranking mode; validated by the API."),
127
+ };
56
128
  /* Action-item field schemas mirror the Brain API route contract (work.ts).
57
129
  * Dates are date-only (YYYY-MM-DD); nullable means "clear the field" on update. */
58
130
  const actionItemStatus = z.enum(["open", "in_progress", "blocked", "done", "cancelled"]);
131
+ const actionItemStatusFilter = z
132
+ .union([actionItemStatus, z.array(actionItemStatus).max(actionItemStatus.options.length)])
133
+ .transform((value) => {
134
+ const statuses = Array.isArray(value) ? value : [value];
135
+ return statuses.length > 0 ? [...new Set(statuses)] : undefined;
136
+ });
59
137
  const actionItemPriority = z.enum(["urgent", "high", "normal", "low"]);
60
- const actionItemFrequency = z.enum(["one_time", "daily", "weekly", "monthly", "yearly"]);
138
+ const actionItemFrequency = z.enum(["one_time", "daily", "weekly", "monthly", "weekdays", "yearly"]);
61
139
  const actionItemTaskType = z.enum(["task", "reminder", "time_off"]);
62
140
  const actionItemFirmness = z.enum(["hard", "medium", "soft"]);
63
141
  const dateOnly = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "date-only, YYYY-MM-DD");
@@ -77,21 +155,22 @@ const attachmentLinks = z
77
155
  */
78
156
  export function createBrainConnectorServer(options) {
79
157
  const { client } = options;
80
- const server = new McpServer({ name: "novaeo-brain-connector", version: "0.1.0" });
158
+ const server = new McpServer({ name: "novaeo-brain-connector", version: CONNECTOR_VERSION });
81
159
  const registerRuleTool = options.enableRuleTier ?? isFlagEnabled("BRAIN_RULE_TIER_ENABLED");
82
160
  const registerLawTool = options.enableLawTier ?? isFlagEnabled("BRAIN_LAW_TIER_ENABLED");
83
161
  // 1. search_brain → POST /v1/search
84
162
  server.registerTool("search_brain", {
85
163
  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).",
86
- inputSchema: {
164
+ inputSchema: strict({
87
165
  query: z.string().min(1).describe("What to search for."),
88
166
  limit: z.number().int().positive().max(50).optional(),
89
167
  since: z.string().optional().describe("ISO date/time: only content at or after this source event time."),
90
168
  until: z.string().optional().describe("ISO date/time: only content at or before this source event time."),
91
169
  sinceDays: z.number().optional().describe("Relative window: only content from the last N days by source event time."),
92
170
  ...retrievalFilters,
171
+ ...sharedRetrieval,
93
172
  answerMode,
94
- },
173
+ }),
95
174
  }, async (args) => {
96
175
  try {
97
176
  return ok(await client.search(args));
@@ -103,15 +182,16 @@ export function createBrainConnectorServer(options) {
103
182
  // 2. answer_from_brain → POST /v1/answer
104
183
  server.registerTool("answer_from_brain", {
105
184
  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.",
106
- inputSchema: {
185
+ inputSchema: strict({
107
186
  query: z.string().min(1).describe("The question to answer."),
108
187
  limit: z.number().int().positive().max(50).optional(),
109
188
  since: z.string().optional().describe("ISO date/time: only content at or after this source event time."),
110
189
  until: z.string().optional().describe("ISO date/time: only content at or before this source event time."),
111
190
  sinceDays: z.number().optional().describe("Relative window: only content from the last N days by source event time."),
112
191
  ...retrievalFilters,
192
+ ...sharedRetrieval,
113
193
  answerMode,
114
- },
194
+ }),
115
195
  }, async (args) => {
116
196
  try {
117
197
  return ok(await client.answer(args));
@@ -127,11 +207,12 @@ export function createBrainConnectorServer(options) {
127
207
  // Hermes — gated to what your token may read/write. MCP parity with Novi.
128
208
  server.registerTool("ask_novi", {
129
209
  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: {
210
+ inputSchema: strict({
131
211
  query: z.string().min(1).describe("Your request in plain language."),
132
212
  answerMode,
133
213
  threadId: z.string().optional().describe("Conversation id for follow-up context (optional)."),
134
- },
214
+ continuation: z.boolean().optional().describe("Resume the continuation stored for this threadId (the source listing/reading the previous turn left unfinished). Ignored when nothing is stored."),
215
+ }),
135
216
  }, async (args) => {
136
217
  try {
137
218
  return ok(await client.agent(args));
@@ -140,15 +221,52 @@ export function createBrainConnectorServer(options) {
140
221
  return fail(e);
141
222
  }
142
223
  });
224
+ // 2c. list_brain_sources → POST /v1/sources/list (U5/U6)
225
+ server.registerTool("list_brain_sources", {
226
+ description: "List the sources matching a scope, permission-filtered to your access, with per-source chunk counts and a two-part coverage line (how many matched, how many are shown). Use this — then read_brain_source — for ALL / EVERY / complete-list questions. A source you cannot see is absent, never counted. Page with the returned cursor.",
227
+ inputSchema: strict({
228
+ filters: sharedRetrieval.filters,
229
+ pageSize: z.number().int().positive().optional().describe("Sources per page; the API caps it."),
230
+ cursor: z.string().optional().describe("Opaque nextCursor from the previous page. Short-lived: an expired cursor returns a generic 'no longer valid' outcome, so list again."),
231
+ coverageMode: sharedRetrieval.coverageMode,
232
+ answerMode,
233
+ }),
234
+ }, async (args) => {
235
+ try {
236
+ return ok(await client.listSources(args));
237
+ }
238
+ catch (e) {
239
+ return fail(e);
240
+ }
241
+ });
242
+ // 2d. read_brain_source → POST /v1/sources/read (U5/U6)
243
+ server.registerTool("read_brain_source", {
244
+ description: "Read evidence from sources listed by list_brain_sources. Pass sourceKey for one source (paged with cursor), or sourceKeys plus query for a query-focused batch read. A key you cannot see reads as not readable, exactly as a missing one does. Rate limits surface as an API error carrying Retry-After.",
245
+ inputSchema: strict({
246
+ sourceKey: z.string().min(1).optional().describe("Canonical key of ONE source, e.g. loom:<id> or note:<uuid>."),
247
+ sourceKeys: z.array(z.string().min(1)).optional().describe("Canonical keys for a batch read; the API caps the batch size."),
248
+ query: z.string().min(1).optional().describe("Required with sourceKeys: what the excerpts should be about."),
249
+ chunksPerSource: z.number().int().positive().optional().describe("Excerpts per source in a batch read (1-4)."),
250
+ cursor: z.string().optional().describe("Opaque nextCursor from the previous read page."),
251
+ answerMode,
252
+ }),
253
+ }, async (args) => {
254
+ try {
255
+ return ok(await client.readSource(args));
256
+ }
257
+ catch (e) {
258
+ return fail(e);
259
+ }
260
+ });
143
261
  // 3. write_brain_memory → POST /v1/notes
144
262
  server.registerTool("write_brain_memory", {
145
263
  description: "Write a memory (draft note) into the brain under a given visibility policy.",
146
- inputSchema: {
264
+ inputSchema: strict({
147
265
  title: z.string().min(1),
148
266
  body: z.string().min(1),
149
267
  visibilityPolicyId: z.string().uuid().describe("Visibility policy the note inherits."),
150
268
  noteType: z.enum(["decision", "sop", "summary", "fact"]).optional(),
151
- },
269
+ }),
152
270
  }, async (args) => {
153
271
  try {
154
272
  return ok(await client.writeMemory(args));
@@ -159,10 +277,13 @@ export function createBrainConnectorServer(options) {
159
277
  });
160
278
  // 4. list_action_items → POST /v1/action-items/query
161
279
  server.registerTool("list_action_items", {
162
- description: "List action items (permission-filtered). Defaults to your own open items; an owner filter for another user requires admin.",
163
- inputSchema: {
280
+ description: "List action items (permission-filtered). Defaults to your own open items; an owner filter for another user requires admin. " +
281
+ "This returns ONE PAGE, capped at `limit` (max 100): if `nextCursor` comes back non-null there are more items — pass it as `cursor` for the next page. " +
282
+ "Never count the returned rows to answer 'how many' — pass `includeStats: true` and read `stats`, which is a server-side count over every matching item. " +
283
+ "Rows are a compact projection by default; pass `verbose: true` for the full field set.",
284
+ inputSchema: strict({
164
285
  ownerIdentityId: z.string().uuid().optional(),
165
- status: actionItemStatus.optional(),
286
+ status: actionItemStatusFilter.optional(),
166
287
  includeClosed: z.boolean().optional().describe("Include done/cancelled items."),
167
288
  priority: z.array(z.enum(["urgent", "high", "normal", "low", "none"])).optional(),
168
289
  projectId: z.string().uuid().optional(),
@@ -170,23 +291,35 @@ export function createBrainConnectorServer(options) {
170
291
  q: z.string().optional().describe("Free-text filter over title/details."),
171
292
  dueFrom: dateOnly.optional().describe("Only items due on/after this date (YYYY-MM-DD)."),
172
293
  dueTo: dateOnly.optional().describe("Only items due on/before this date (YYYY-MM-DD)."),
173
- limit: z.number().int().positive().max(100).optional(),
174
- },
294
+ lastActivityFrom: z.string().min(1).optional().describe("ISO date/time: only items whose last activity is at or after this. Items with no recorded activity are excluded by any window."),
295
+ lastActivityTo: z.string().min(1).optional().describe("ISO date/time: only items whose last activity is at or before this. Items with no recorded activity are excluded by any window."),
296
+ sort: z.enum(["due_date", "priority", "last_activity_at", "created_at"]).optional().describe("Sort key. Defaults to last_activity_at."),
297
+ dir: z.enum(["asc", "desc"]).optional().describe("Sort direction. Defaults to desc."),
298
+ cursor: z.string().min(1).optional().describe("The `nextCursor` from the previous page. Must be paired with the same filters and sort."),
299
+ includeStats: z.boolean().optional().describe("Return `stats`: server-side totals over every matching item, not just this page."),
300
+ verbose: z.boolean().optional().describe("Return every field on each item instead of the compact projection."),
301
+ limit: z.number().int().positive().max(100).optional().describe("Rows per page (max 100). Caps the page, never `stats`."),
302
+ }),
175
303
  }, async (args) => {
176
304
  try {
177
- return ok(await client.listActionItems(args));
305
+ // `verbose` shapes the response here and is not an API filter.
306
+ const { verbose, ...payload } = args;
307
+ return ok(shapeActionItemList(await client.listActionItems(payload), { verbose: verbose === true }));
178
308
  }
179
309
  catch (e) {
180
310
  return fail(e);
181
311
  }
182
312
  });
183
- // 4b. get_action_item → GET /v1/action-items/:id
313
+ // 4b. get_action_item → GET /v1/action-items/:id or /by-number/:number
184
314
  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() },
315
+ description: "Get a single action item by id or by its durable number (the '#1247' shown in chat posts), including its updatedAt value (needed for updates) and your capabilities on it. Pass exactly one of id or itemNumber. Resolve a number here first when you only have the number, then call update_action_item with the returned id.",
316
+ inputSchema: strict({ id: z.string().uuid().optional(), itemNumber: z.number().int().positive().optional() }),
187
317
  }, async (args) => {
188
318
  try {
189
- return ok(await client.getActionItem(args));
319
+ if ((args.id === undefined) === (args.itemNumber === undefined)) {
320
+ return fail(new Error("Pass exactly one of id or itemNumber."));
321
+ }
322
+ return ok(shapeActionItemDetail(await client.getActionItem(args.id !== undefined ? { id: args.id } : { itemNumber: args.itemNumber })));
190
323
  }
191
324
  catch (e) {
192
325
  return fail(e);
@@ -195,7 +328,7 @@ export function createBrainConnectorServer(options) {
195
328
  // 5. create_action_item → POST /v1/action-items
196
329
  server.registerTool("create_action_item", {
197
330
  description: "Create an action item. Returns the full created item including updatedAt (use it as expectedUpdatedAt for updates).",
198
- inputSchema: {
331
+ inputSchema: strict({
199
332
  title: z.string().min(1),
200
333
  details: z.string().optional(),
201
334
  ownerIdentityId: z.string().uuid().optional().describe("Defaults to you."),
@@ -217,10 +350,10 @@ export function createBrainConnectorServer(options) {
217
350
  priority: actionItemPriority.optional().describe("Omit for no priority."),
218
351
  resolutionNotes: z.string().optional(),
219
352
  calendarSyncOptIn: z.boolean().optional(),
220
- },
353
+ }),
221
354
  }, async (args) => {
222
355
  try {
223
- return ok(await client.createActionItem(args));
356
+ return ok(shapeActionItem(await client.createActionItem(args)));
224
357
  }
225
358
  catch (e) {
226
359
  return fail(e);
@@ -229,7 +362,7 @@ export function createBrainConnectorServer(options) {
229
362
  // 6. update_action_item → PATCH /v1/action-items/:id
230
363
  server.registerTool("update_action_item", {
231
364
  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.",
232
- inputSchema: {
365
+ inputSchema: strict({
233
366
  id: z.string().uuid(),
234
367
  expectedUpdatedAt: z.string().describe("The current item updatedAt value returned by list_action_items, get_action_item, or create_action_item."),
235
368
  status: actionItemStatus.optional(),
@@ -252,7 +385,7 @@ export function createBrainConnectorServer(options) {
252
385
  resolutionNotes: z.string().nullable().optional(),
253
386
  priority: actionItemPriority.nullable().optional().describe("Null clears the priority."),
254
387
  calendarSyncOptIn: z.boolean().optional(),
255
- },
388
+ }),
256
389
  }, async (args) => {
257
390
  try {
258
391
  return ok(await client.updateActionItem(args));
@@ -264,7 +397,7 @@ export function createBrainConnectorServer(options) {
264
397
  // 6b. list_task_events → GET /v1/action-items/:id/events
265
398
  server.registerTool("list_task_events", {
266
399
  description: "List the activity/event history of an action item (status changes, edits, comments).",
267
- inputSchema: { id: z.string().uuid() },
400
+ inputSchema: strict({ id: z.string().uuid() }),
268
401
  }, async (args) => {
269
402
  try {
270
403
  return ok(await client.listActionItemEvents(args));
@@ -276,7 +409,7 @@ export function createBrainConnectorServer(options) {
276
409
  // 6c. list_task_comments → GET /v1/action-items/:id/comments
277
410
  server.registerTool("list_task_comments", {
278
411
  description: "List comments on an action item.",
279
- inputSchema: { actionItemId: z.string().uuid() },
412
+ inputSchema: strict({ actionItemId: z.string().uuid() }),
280
413
  }, async (args) => {
281
414
  try {
282
415
  return ok(await client.listComments(args));
@@ -288,10 +421,10 @@ export function createBrainConnectorServer(options) {
288
421
  // 6d. create_task_comment → POST /v1/action-items/:id/comments
289
422
  server.registerTool("create_task_comment", {
290
423
  description: "Add a comment to an action item. Use for progress notes, findings, or hand-off context.",
291
- inputSchema: {
424
+ inputSchema: strict({
292
425
  actionItemId: z.string().uuid(),
293
426
  body: z.string().min(1),
294
- },
427
+ }),
295
428
  }, async (args) => {
296
429
  try {
297
430
  return ok(await client.createComment(args));
@@ -303,12 +436,12 @@ export function createBrainConnectorServer(options) {
303
436
  // 6e. update_task_comment → PATCH /v1/action-items/:id/comments/:commentId
304
437
  server.registerTool("update_task_comment", {
305
438
  description: "Edit or delete one of your comments on an action item.",
306
- inputSchema: {
439
+ inputSchema: strict({
307
440
  actionItemId: z.string().uuid(),
308
441
  commentId: z.string().uuid(),
309
442
  body: z.string().min(1).optional().describe("New comment text (edit)."),
310
443
  isDeleted: z.boolean().optional().describe("Set true to delete the comment."),
311
- },
444
+ }),
312
445
  }, async (args) => {
313
446
  try {
314
447
  return ok(await client.updateComment(args));
@@ -320,13 +453,13 @@ export function createBrainConnectorServer(options) {
320
453
  // 7. create_reminder → POST /v1/reminders
321
454
  server.registerTool("create_reminder", {
322
455
  description: "Create a reminder that fires after a given time, inheriting the trigger message's visibility.",
323
- inputSchema: {
456
+ inputSchema: strict({
324
457
  remindAfter: z.string().describe("ISO timestamp to remind after."),
325
458
  triggerMessageId: z.string().uuid().describe("Message the reminder derives visibility from."),
326
459
  spaceId: z.string().uuid().optional(),
327
460
  threadId: z.string().optional(),
328
461
  mentionedIdentityId: z.string().uuid().optional(),
329
- },
462
+ }),
330
463
  }, async (args) => {
331
464
  try {
332
465
  return ok(await client.createReminder(args));
@@ -338,9 +471,9 @@ export function createBrainConnectorServer(options) {
338
471
  // 8. summarize_thread → POST /v1/summarize-thread
339
472
  server.registerTool("summarize_thread", {
340
473
  description: "Summarize a chat thread (permission-filtered) into a short, cited summary.",
341
- inputSchema: {
474
+ inputSchema: strict({
342
475
  threadId: z.string().min(1),
343
- },
476
+ }),
344
477
  }, async (args) => {
345
478
  try {
346
479
  return ok(await client.summarizeThread(args));
@@ -352,10 +485,10 @@ export function createBrainConnectorServer(options) {
352
485
  // 9. promote_to_curated_note → POST /v1/notes/promote
353
486
  server.registerTool("promote_to_curated_note", {
354
487
  description: "Promote a reviewed brain note into the curated novaeo-brain vault. Defaults to a dry run; sensitive promotions require admin.",
355
- inputSchema: {
488
+ inputSchema: strict({
356
489
  noteId: z.string().uuid(),
357
490
  dryRun: z.boolean().optional().describe("Preview without writing. Defaults to true server-side."),
358
- },
491
+ }),
359
492
  }, async (args) => {
360
493
  try {
361
494
  return ok(await client.promoteNote(args));
@@ -367,7 +500,7 @@ export function createBrainConnectorServer(options) {
367
500
  // 10. get_me → GET /v1/me
368
501
  server.registerTool("get_me", {
369
502
  description: "Your identity, capabilities, and admin/review flags. Call first to learn who the token acts as.",
370
- inputSchema: {},
503
+ inputSchema: strict({}),
371
504
  }, async () => {
372
505
  try {
373
506
  return ok(await client.getMe());
@@ -379,7 +512,7 @@ export function createBrainConnectorServer(options) {
379
512
  // 11. list_visibility_policies → GET /v1/visibility/writable
380
513
  server.registerTool("list_visibility_policies", {
381
514
  description: "Visibility policies you may write to. Use a policy id from here for write_brain_memory or create_action_item.",
382
- inputSchema: {},
515
+ inputSchema: strict({}),
383
516
  }, async () => {
384
517
  try {
385
518
  return ok(await client.listWritableVisibility());
@@ -391,7 +524,7 @@ export function createBrainConnectorServer(options) {
391
524
  // 12. list_projects → GET /v1/projects
392
525
  server.registerTool("list_projects", {
393
526
  description: "List projects (for projectId filters and task assignment).",
394
- inputSchema: {},
527
+ inputSchema: strict({}),
395
528
  }, async () => {
396
529
  try {
397
530
  return ok(await client.listProjects());
@@ -403,7 +536,7 @@ export function createBrainConnectorServer(options) {
403
536
  // 13. list_pods → GET /v1/pods
404
537
  server.registerTool("list_pods", {
405
538
  description: "List active pods (for pod filters and task assignment).",
406
- inputSchema: {},
539
+ inputSchema: strict({}),
407
540
  }, async () => {
408
541
  try {
409
542
  return ok(await client.listPods());
@@ -415,7 +548,7 @@ export function createBrainConnectorServer(options) {
415
548
  // 14. list_directory → GET /v1/directory
416
549
  server.registerTool("list_directory", {
417
550
  description: "List people in the workspace directory (identity ids for owners, assignees, mentions).",
418
- inputSchema: {},
551
+ inputSchema: strict({}),
419
552
  }, async () => {
420
553
  try {
421
554
  return ok(await client.listDirectory());
@@ -427,10 +560,10 @@ export function createBrainConnectorServer(options) {
427
560
  if (registerRuleTool) {
428
561
  server.registerTool("promote_to_rule", {
429
562
  description: "Promote a reviewed/accepted durable memory note to rule tier. The Brain API enforces feature flags and reviewer/lead permissions.",
430
- inputSchema: {
563
+ inputSchema: strict({
431
564
  noteId: z.string().uuid(),
432
565
  comment: z.string().optional(),
433
- },
566
+ }),
434
567
  }, async (args) => {
435
568
  try {
436
569
  return ok(await client.promoteToRule(args));
@@ -443,10 +576,10 @@ export function createBrainConnectorServer(options) {
443
576
  if (registerLawTool) {
444
577
  server.registerTool("set_law", {
445
578
  description: "Set a reviewed/accepted durable memory note to law tier. The Brain API enforces feature flags and Brain admin authorization.",
446
- inputSchema: {
579
+ inputSchema: strict({
447
580
  noteId: z.string().uuid(),
448
581
  comment: z.string().optional(),
449
- },
582
+ }),
450
583
  }, async (args) => {
451
584
  try {
452
585
  return ok(await client.setLaw(args));
@@ -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.2.0",
3
+ "version": "0.4.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",