@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 +76 -2
- package/dist/action-item-shape.d.ts +24 -0
- package/dist/action-item-shape.d.ts.map +1 -0
- package/dist/action-item-shape.js +89 -0
- package/dist/action-item-shape.js.map +1 -0
- package/dist/brain-http-client.d.ts +63 -5
- package/dist/brain-http-client.d.ts.map +1 -1
- package/dist/brain-http-client.js +20 -2
- package/dist/brain-http-client.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +9 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +179 -46
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
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
|
-
|
|
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":"AACA,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAarE,gFAAgF;AAChF,MAAM,MAAM,SAAS,GAAG,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAwB,MAAM,aAAa,CAAC;
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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));
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAczD,SAAS,EAAE,CAAC,IAAa;IACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACrE,CAAC;AACD,SAAS,IAAI,CAAC,CAAU;IACtB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClG,CAAC;AAWD,MAAM,qBAAqB,GAAG;IAC5B,cAAc;IACd,mBAAmB;IACnB,UAAU;IACV,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,iBAAiB;IACjB,kBAAkB;IAClB,yBAAyB;IACzB,QAAQ;IACR,0BAA0B;IAC1B,eAAe;IACf,WAAW;IACX,gBAAgB;CACR,CAAC;AAEX,SAAS,aAAa,CAAC,IAA0D;IAC/E,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AACpC,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,cAAc,CAAC,UAAyE,EAAE;IACxG,MAAM,KAAK,GAAa,CAAC,GAAG,qBAAqB,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,cAAc,IAAI,aAAa,CAAC,yBAAyB,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtG,IAAI,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,wBAAwB,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,EAAE,CAAC;AAEjD,MAAM,UAAU,GAAG,CAAC;KACjB,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KAC3B,QAAQ,EAAE;KACV,QAAQ,CAAC,0EAA0E,CAAC,CAAC;AAExF,MAAM,gBAAgB,GAAG;IACvB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IACpI,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACrG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CACxG,CAAC;AAEF;mFACmF;AACnF,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AACzF,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACvE,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzF,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;AAClF,MAAM,eAAe,GAAG,CAAC;KACtB,KAAK,CACJ,CAAC;KACE,MAAM,CAAC;IACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,MAAM,EAAE,CACZ;KACA,GAAG,CAAC,EAAE,CAAC;KACP,QAAQ,EAAE;KACV,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAA4B;IACrE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACnF,MAAM,gBAAgB,GAAG,OAAO,CAAC,cAAc,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAC5F,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAEzF,oCAAoC;IACpC,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,4NAA4N;QAC9N,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACxD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACrD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;YACxG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;YACzG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;YACrH,GAAG,gBAAgB;YACnB,UAAU;SACX;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yCAAyC;IACzC,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,sKAAsK;QACxK,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACrD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;YACxG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;YACzG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;YACrH,GAAG,gBAAgB;YACnB,UAAU;SACX;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,sEAAsE;IACtE,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,WAAW,EACT,gTAAgT;QAClT,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YACpE,UAAU;YACV,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;SAC9F;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yCAAyC;IACzC,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,6EAA6E;QAC1F,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACtF,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;SACpE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,4HAA4H;QAC9H,WAAW,EAAE;YACX,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YAC7C,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;YACnC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC/E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACjF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACjC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACzE,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YACxF,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;SACvD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iDAAiD;IACjD,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,iHAAiH;QAC9H,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;KACvC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,gDAAgD;IAChD,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,qHAAqH;QACvH,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC1E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACvE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;YACnG,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;YACrI,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACrF,eAAe,EAAE,kBAAkB,CAAC,QAAQ,EAAE;YAC9C,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACzC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACvC,SAAS,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC3E,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACnF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACnE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC7D,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE;YACvC,eAAe;YACf,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;YACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACzE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACtC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC1C;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,6KAA6K;QAC/K,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YACrB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yGAAyG,CAAC;YACjJ,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;YACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACxF,eAAe,EAAE,kBAAkB,CAAC,QAAQ,EAAE;YAC9C,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACzC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACvC,SAAS,EAAE,mBAAmB,CAAC,QAAQ,EAAE;YACzC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACxC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACnE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC5C,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE;YACvC,eAAe;YACf,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACvF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACxF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC1C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACjD,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACxF,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC1C;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yDAAyD;IACzD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,sFAAsF;QACnG,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;KACvC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;KACjD,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,+DAA+D;IAC/D,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,yFAAyF;QACtG,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SACxB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2EAA2E;IAC3E,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACvE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAC9E;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,0CAA0C;IAC1C,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,+FAA+F;QAC5G,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAClE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YAC7F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;SAClD;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kDAAkD;IAClD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,4EAA4E;QACzF,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5B;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,sDAAsD;IACtD,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,WAAW,EACT,+HAA+H;QACjI,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YACzB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SAClG;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,WAAW,EAAE,iGAAiG;QAC9G,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,WAAW,EACT,+GAA+G;QACjH,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,uCAAuC;IACvC,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,+BAA+B;IAC/B,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yCAAyC;IACzC,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,wFAAwF;QACrG,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;YACE,WAAW,EACT,mIAAmI;YACrI,WAAW,EAAE;gBACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;gBACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC/B;SACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;YACE,WAAW,EACT,8HAA8H;YAChI,WAAW,EAAE;gBACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;gBACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC/B;SACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
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.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",
|