@silverbackbase/root 0.3.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/dist/core/db.d.ts +7 -1
- package/dist/core/db.d.ts.map +1 -1
- package/dist/core/db.js +63 -0
- package/dist/core/db.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/knowledge.d.ts +7 -1
- package/dist/core/knowledge.d.ts.map +1 -1
- package/dist/core/knowledge.js +14 -0
- package/dist/core/knowledge.js.map +1 -1
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +64 -24
- package/dist/mcp.js.map +1 -1
- package/package.json +1 -1
package/dist/core/db.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { KnowledgeCategory } from "./types.js";
|
|
1
|
+
import type { KnowledgeCategory, ClientRow } from "./types.js";
|
|
2
2
|
export interface KnowledgeRow {
|
|
3
3
|
id: string;
|
|
4
4
|
accountId: string;
|
|
@@ -8,6 +8,12 @@ export interface KnowledgeRow {
|
|
|
8
8
|
updatedAt: Date;
|
|
9
9
|
}
|
|
10
10
|
export interface KnowledgeDB {
|
|
11
|
+
createClient(id: string, name: string, url: string): Promise<ClientRow>;
|
|
12
|
+
listClients(): Promise<ClientRow[]>;
|
|
13
|
+
getClient(id: string): Promise<ClientRow | undefined>;
|
|
14
|
+
deleteClient(id: string): Promise<{
|
|
15
|
+
items_removed: number;
|
|
16
|
+
}>;
|
|
11
17
|
getAll(accountId: string): Promise<KnowledgeRow[]>;
|
|
12
18
|
getByCategory(accountId: string, category: string): Promise<KnowledgeRow[]>;
|
|
13
19
|
insert(id: string, accountId: string, category: string, data: Record<string, unknown>): Promise<void>;
|
package/dist/core/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAE1B,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACxE,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACtD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE7D,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IACxG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACnE;AAoND,eAAO,MAAM,EAAE,EAAE,WAES,CAAC"}
|
package/dist/core/db.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { DatabaseSync } from "node:sqlite";
|
|
2
2
|
import postgres from "postgres";
|
|
3
3
|
const CREATE_TABLE_SQL = `
|
|
4
|
+
CREATE TABLE IF NOT EXISTS clients (
|
|
5
|
+
id TEXT PRIMARY KEY,
|
|
6
|
+
name TEXT NOT NULL,
|
|
7
|
+
url TEXT NOT NULL,
|
|
8
|
+
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))
|
|
9
|
+
);
|
|
4
10
|
CREATE TABLE IF NOT EXISTS knowledge_items (
|
|
5
11
|
id TEXT PRIMARY KEY,
|
|
6
12
|
account_id TEXT NOT NULL,
|
|
@@ -13,6 +19,12 @@ const CREATE_TABLE_SQL = `
|
|
|
13
19
|
CREATE INDEX IF NOT EXISTS idx_ki_category ON knowledge_items(account_id, category);
|
|
14
20
|
`;
|
|
15
21
|
const CREATE_TABLE_PG = `
|
|
22
|
+
CREATE TABLE IF NOT EXISTS clients (
|
|
23
|
+
id TEXT PRIMARY KEY,
|
|
24
|
+
name TEXT NOT NULL,
|
|
25
|
+
url TEXT NOT NULL,
|
|
26
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
27
|
+
);
|
|
16
28
|
CREATE TABLE IF NOT EXISTS knowledge_items (
|
|
17
29
|
id TEXT PRIMARY KEY,
|
|
18
30
|
account_id TEXT NOT NULL,
|
|
@@ -34,12 +46,39 @@ function parseSqliteRow(row) {
|
|
|
34
46
|
updatedAt: new Date(row.updated_at),
|
|
35
47
|
};
|
|
36
48
|
}
|
|
49
|
+
function parseSqliteClient(row) {
|
|
50
|
+
return {
|
|
51
|
+
id: row.id,
|
|
52
|
+
name: row.name,
|
|
53
|
+
url: row.url,
|
|
54
|
+
createdAt: new Date(row.created_at),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
37
57
|
function createSQLiteDB(dbPath) {
|
|
38
58
|
const sqlite = new DatabaseSync(dbPath);
|
|
39
59
|
sqlite.exec("PRAGMA journal_mode = WAL;");
|
|
40
60
|
sqlite.exec("PRAGMA foreign_keys = ON;");
|
|
41
61
|
sqlite.exec(CREATE_TABLE_SQL);
|
|
42
62
|
return {
|
|
63
|
+
async createClient(id, name, url) {
|
|
64
|
+
const now = new Date().toISOString();
|
|
65
|
+
sqlite.prepare("INSERT INTO clients (id, name, url, created_at) VALUES (?, ?, ?, ?)").run(id, name, url, now);
|
|
66
|
+
return { id, name, url, createdAt: new Date(now) };
|
|
67
|
+
},
|
|
68
|
+
async listClients() {
|
|
69
|
+
const rows = sqlite.prepare("SELECT * FROM clients ORDER BY created_at DESC").all();
|
|
70
|
+
return rows.map(parseSqliteClient);
|
|
71
|
+
},
|
|
72
|
+
async getClient(id) {
|
|
73
|
+
const row = sqlite.prepare("SELECT * FROM clients WHERE id = ?").get(id);
|
|
74
|
+
return row ? parseSqliteClient(row) : undefined;
|
|
75
|
+
},
|
|
76
|
+
async deleteClient(id) {
|
|
77
|
+
const count = sqlite.prepare("SELECT COUNT(*) as n FROM knowledge_items WHERE account_id = ?").get(id).n;
|
|
78
|
+
sqlite.prepare("DELETE FROM knowledge_items WHERE account_id = ?").run(id);
|
|
79
|
+
sqlite.prepare("DELETE FROM clients WHERE id = ?").run(id);
|
|
80
|
+
return { items_removed: count };
|
|
81
|
+
},
|
|
43
82
|
async getAll(accountId) {
|
|
44
83
|
const stmt = sqlite.prepare("SELECT * FROM knowledge_items WHERE account_id = ?");
|
|
45
84
|
return stmt.all(accountId).map(parseSqliteRow);
|
|
@@ -94,6 +133,30 @@ function createPostgresDB(url) {
|
|
|
94
133
|
};
|
|
95
134
|
}
|
|
96
135
|
return {
|
|
136
|
+
async createClient(id, name, url) {
|
|
137
|
+
const now = new Date();
|
|
138
|
+
await sql `INSERT INTO clients (id, name, url, created_at) VALUES (${id}, ${name}, ${url}, ${now})`;
|
|
139
|
+
return { id, name, url, createdAt: now };
|
|
140
|
+
},
|
|
141
|
+
async listClients() {
|
|
142
|
+
await ensureInit();
|
|
143
|
+
const rows = await sql `SELECT * FROM clients ORDER BY created_at DESC`;
|
|
144
|
+
return rows.map((r) => ({ id: r.id, name: r.name, url: r.url, createdAt: new Date(r.created_at) }));
|
|
145
|
+
},
|
|
146
|
+
async getClient(id) {
|
|
147
|
+
await ensureInit();
|
|
148
|
+
const [row] = await sql `SELECT * FROM clients WHERE id = ${id}`;
|
|
149
|
+
if (!row)
|
|
150
|
+
return undefined;
|
|
151
|
+
return { id: row.id, name: row.name, url: row.url, createdAt: new Date(row.created_at) };
|
|
152
|
+
},
|
|
153
|
+
async deleteClient(id) {
|
|
154
|
+
await ensureInit();
|
|
155
|
+
const [{ n }] = await sql `SELECT COUNT(*)::int as n FROM knowledge_items WHERE account_id = ${id}`;
|
|
156
|
+
await sql `DELETE FROM knowledge_items WHERE account_id = ${id}`;
|
|
157
|
+
await sql `DELETE FROM clients WHERE id = ${id}`;
|
|
158
|
+
return { items_removed: n };
|
|
159
|
+
},
|
|
97
160
|
async getAll(accountId) {
|
|
98
161
|
await ensureInit();
|
|
99
162
|
const rows = await sql `SELECT * FROM knowledge_items WHERE account_id = ${accountId}`;
|
package/dist/core/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { getContext, getCategory, createItem, updateItem, deleteItem, searchKnowledge } from "./knowledge.js";
|
|
1
|
+
export { getContext, getCategory, createItem, updateItem, deleteItem, searchKnowledge, createClient, listClients, deleteClient } from "./knowledge.js";
|
|
2
2
|
export { onboardFromUrl } from "./onboard.js";
|
|
3
3
|
export { refreshKnowledge } from "./refresh.js";
|
|
4
|
-
export type { KnowledgeCategory, KnowledgeItem, BusinessContext, OnboardResult, RefreshDiff } from "./types.js";
|
|
4
|
+
export type { KnowledgeCategory, KnowledgeItem, BusinessContext, OnboardResult, RefreshDiff, ClientRow } from "./types.js";
|
|
5
5
|
export { CATEGORIES } from "./types.js";
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvJ,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC3H,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { getContext, getCategory, createItem, updateItem, deleteItem, searchKnowledge } from "./knowledge.js";
|
|
1
|
+
export { getContext, getCategory, createItem, updateItem, deleteItem, searchKnowledge, createClient, listClients, deleteClient } from "./knowledge.js";
|
|
2
2
|
export { onboardFromUrl } from "./onboard.js";
|
|
3
3
|
export { refreshKnowledge } from "./refresh.js";
|
|
4
4
|
export { CATEGORIES } from "./types.js";
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvJ,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/core/knowledge.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import type { KnowledgeCategory, BusinessContext } from "./types.js";
|
|
1
|
+
import type { KnowledgeCategory, BusinessContext, ClientRow } from "./types.js";
|
|
2
|
+
export declare function createClient(name: string, url: string): Promise<ClientRow>;
|
|
3
|
+
export declare function listClients(): Promise<ClientRow[]>;
|
|
4
|
+
export declare function deleteClient(clientId: string): Promise<{
|
|
5
|
+
deleted: boolean;
|
|
6
|
+
items_removed: number;
|
|
7
|
+
}>;
|
|
2
8
|
export declare function getContext(accountId: string): Promise<BusinessContext>;
|
|
3
9
|
export declare function getCategory(accountId: string, category: KnowledgeCategory): Promise<{
|
|
4
10
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/core/knowledge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/core/knowledge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEhF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAGhF;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAExD;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAKzG;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAsC5E;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB;;KAG/E;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;GAK9B;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;GAK9B;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;;;GAG7D;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;KAGrE"}
|
package/dist/core/knowledge.js
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import { nanoid } from "nanoid";
|
|
2
2
|
import { db } from "./db.js";
|
|
3
|
+
export async function createClient(name, url) {
|
|
4
|
+
const id = nanoid();
|
|
5
|
+
return db.createClient(id, name, url);
|
|
6
|
+
}
|
|
7
|
+
export async function listClients() {
|
|
8
|
+
return db.listClients();
|
|
9
|
+
}
|
|
10
|
+
export async function deleteClient(clientId) {
|
|
11
|
+
const client = await db.getClient(clientId);
|
|
12
|
+
if (!client)
|
|
13
|
+
return { deleted: false, items_removed: 0 };
|
|
14
|
+
const { items_removed } = await db.deleteClient(clientId);
|
|
15
|
+
return { deleted: true, items_removed };
|
|
16
|
+
}
|
|
3
17
|
export async function getContext(accountId) {
|
|
4
18
|
const items = await db.getAll(accountId);
|
|
5
19
|
const result = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/core/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAG7B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB;IAChD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,EAAE;QACnB,WAAW,EAAE,EAAE;QACf,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACT,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBAAC,MAAM;YAC9C,KAAK,OAAO;gBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM;YAC/C,KAAK,SAAS;gBAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM;YACnD,KAAK,WAAW;gBAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM;YACvD,KAAK,gBAAgB;gBAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM;YACjE,KAAK,YAAY;gBAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM;YACzD,KAAK,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM;YAC1C,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM;YAClD,KAAK,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,MAAM;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAClG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACrF,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC1G,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAE5F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,QAA2B;IAC9E,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,QAA2B,EAC3B,IAA6B;IAE7B,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,EAAU,EACV,IAA6B;IAE7B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB,EAAE,EAAU;IAC5D,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,KAAa;IACpE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC"}
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/core/knowledge.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
export interface ClientRow {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
url: string;
|
|
5
|
+
createdAt: Date;
|
|
6
|
+
}
|
|
1
7
|
export declare const CATEGORIES: readonly ["offer", "persona", "objection", "differentiator", "competitor", "geo", "pricing", "faq", "profile"];
|
|
2
8
|
export type KnowledgeCategory = (typeof CATEGORIES)[number];
|
|
3
9
|
export interface KnowledgeItem {
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,gHAUb,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,gHAUb,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB"}
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO;IACP,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,YAAY;IACZ,KAAK;IACL,SAAS;IACT,KAAK;IACL,SAAS;CACD,CAAC"}
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAqBpC,wBAAgB,WAAW,IAAI,SAAS,CA8HvC;AAED,wBAAgB,gBAAgB,KAChB,GAAG,OAAO,uBAMzB"}
|
package/dist/mcp.js
CHANGED
|
@@ -1,86 +1,126 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { getContext, getCategory, createItem, updateItem, deleteItem, searchKnowledge } from "./core/knowledge.js";
|
|
4
|
+
import { getContext, getCategory, createItem, updateItem, deleteItem, searchKnowledge, createClient, listClients, deleteClient, } from "./core/knowledge.js";
|
|
5
5
|
import { onboardFromUrl } from "./core/onboard.js";
|
|
6
6
|
import { refreshKnowledge } from "./core/refresh.js";
|
|
7
7
|
const CATEGORY_ENUM = z.enum([
|
|
8
8
|
"offer", "persona", "objection", "differentiator",
|
|
9
9
|
"competitor", "geo", "pricing", "faq", "profile",
|
|
10
10
|
]);
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const CLIENT_ID_PARAM = z.string().optional().describe("Client ID. If omitted, uses ROOT_ACCOUNT_ID env var (defaults to 'default').");
|
|
12
|
+
function resolveClientId(clientId) {
|
|
13
|
+
return clientId ?? process.env.ROOT_ACCOUNT_ID ?? "default";
|
|
13
14
|
}
|
|
14
15
|
export function buildServer() {
|
|
15
|
-
const server = new McpServer({ name: "root", version: "0.
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const server = new McpServer({ name: "root", version: "0.4.0" });
|
|
17
|
+
// ── CLIENT MANAGEMENT ─────────────────────────────────────────────────────
|
|
18
|
+
server.registerTool("root_create_client", {
|
|
19
|
+
description: "Create a new client account and automatically onboard their website. Scrapes the URL, extracts business knowledge (offers, personas, competitors, geo zones…) and stores it under a new isolated client ID. Returns the client object and the full onboarding summary.",
|
|
20
|
+
inputSchema: {
|
|
21
|
+
name: z.string().describe("Client name (e.g. 'Agence Dupont')"),
|
|
22
|
+
url: z.string().describe("Client website URL (e.g. 'https://dupont.fr')"),
|
|
23
|
+
},
|
|
24
|
+
}, async ({ name, url }) => {
|
|
25
|
+
const client = await createClient(name, url);
|
|
26
|
+
const onboarding = await onboardFromUrl(client.id, url);
|
|
27
|
+
return { content: [{ type: "text", text: JSON.stringify({ client, onboarding }) }] };
|
|
28
|
+
});
|
|
29
|
+
server.registerTool("root_list_clients", {
|
|
30
|
+
description: "List all client accounts stored in Root — name, URL, ID, and creation date.",
|
|
18
31
|
inputSchema: {},
|
|
19
32
|
}, async () => {
|
|
20
|
-
const
|
|
33
|
+
const clients = await listClients();
|
|
34
|
+
return { content: [{ type: "text", text: JSON.stringify({ count: clients.length, clients }) }] };
|
|
35
|
+
});
|
|
36
|
+
server.registerTool("root_delete_client", {
|
|
37
|
+
description: "Delete a client account and all their associated knowledge items.",
|
|
38
|
+
inputSchema: {
|
|
39
|
+
client_id: z.string().describe("The client ID to delete"),
|
|
40
|
+
},
|
|
41
|
+
}, async ({ client_id }) => {
|
|
42
|
+
const result = await deleteClient(client_id);
|
|
43
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
44
|
+
});
|
|
45
|
+
// ── KNOWLEDGE TOOLS ────────────────────────────────────────────────────────
|
|
46
|
+
server.registerTool("root_get_context", {
|
|
47
|
+
description: "Returns complete business knowledge for a client — offers, personas, objections, differentiators, competitors, geo zones, pricing, and FAQs. ALWAYS call this tool before generating any content, SEO article, email, or prospection material.",
|
|
48
|
+
inputSchema: {
|
|
49
|
+
client_id: CLIENT_ID_PARAM,
|
|
50
|
+
},
|
|
51
|
+
}, async ({ client_id }) => {
|
|
52
|
+
const context = await getContext(resolveClientId(client_id));
|
|
21
53
|
return { content: [{ type: "text", text: JSON.stringify(context) }] };
|
|
22
54
|
});
|
|
23
55
|
server.registerTool("root_get_category", {
|
|
24
56
|
description: "Returns a specific category of business knowledge. Use when you need only one type of data (e.g. just personas for a prospection email, just objections for a sales script).",
|
|
25
57
|
inputSchema: {
|
|
58
|
+
client_id: CLIENT_ID_PARAM,
|
|
26
59
|
category: CATEGORY_ENUM.describe("The knowledge category to retrieve"),
|
|
27
60
|
},
|
|
28
|
-
}, async ({ category }) => {
|
|
29
|
-
const items = await getCategory(
|
|
61
|
+
}, async ({ client_id, category }) => {
|
|
62
|
+
const items = await getCategory(resolveClientId(client_id), category);
|
|
30
63
|
return { content: [{ type: "text", text: JSON.stringify({ category, count: items.length, items }) }] };
|
|
31
64
|
});
|
|
32
65
|
server.registerTool("root_search", {
|
|
33
66
|
description: "Search across all business knowledge with a text query. Use to find a specific objection, competitor detail, or FAQ answer.",
|
|
34
67
|
inputSchema: {
|
|
68
|
+
client_id: CLIENT_ID_PARAM,
|
|
35
69
|
query: z.string().describe("Search query"),
|
|
36
70
|
},
|
|
37
|
-
}, async ({ query }) => {
|
|
38
|
-
const results = await searchKnowledge(
|
|
71
|
+
}, async ({ client_id, query }) => {
|
|
72
|
+
const results = await searchKnowledge(resolveClientId(client_id), query);
|
|
39
73
|
return { content: [{ type: "text", text: JSON.stringify({ query, count: results.length, results }) }] };
|
|
40
74
|
});
|
|
41
75
|
server.registerTool("root_onboard_from_url", {
|
|
42
|
-
description: "Onboard a client by scraping their website URL. Automatically extracts offers, personas, differentiators, geo zones, pricing, FAQs, and analyzes local competitors. Returns full context + gaps + followup questions for missing data.",
|
|
76
|
+
description: "Onboard a client by scraping their website URL. Automatically extracts offers, personas, differentiators, geo zones, pricing, FAQs, and analyzes local competitors. Returns full context + gaps + followup questions for missing data. Use root_create_client instead if the client doesn't exist yet.",
|
|
43
77
|
inputSchema: {
|
|
78
|
+
client_id: CLIENT_ID_PARAM,
|
|
44
79
|
url: z.string().describe("The client website URL (e.g. https://client.fr)"),
|
|
45
80
|
},
|
|
46
|
-
}, async ({ url }) => {
|
|
47
|
-
const result = await onboardFromUrl(
|
|
81
|
+
}, async ({ client_id, url }) => {
|
|
82
|
+
const result = await onboardFromUrl(resolveClientId(client_id), url);
|
|
48
83
|
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
49
84
|
});
|
|
50
85
|
server.registerTool("root_create_item", {
|
|
51
86
|
description: "Add a new knowledge item to a category. Use to add an offer, persona, competitor, or any data not extracted automatically.",
|
|
52
87
|
inputSchema: {
|
|
88
|
+
client_id: CLIENT_ID_PARAM,
|
|
53
89
|
category: CATEGORY_ENUM.describe("Knowledge category"),
|
|
54
90
|
data: z.record(z.unknown()).describe("The item data as a JSON object"),
|
|
55
91
|
},
|
|
56
|
-
}, async ({ category, data }) => {
|
|
57
|
-
const item = await createItem(
|
|
92
|
+
}, async ({ client_id, category, data }) => {
|
|
93
|
+
const item = await createItem(resolveClientId(client_id), category, data);
|
|
58
94
|
return { content: [{ type: "text", text: JSON.stringify({ success: true, item }) }] };
|
|
59
95
|
});
|
|
60
96
|
server.registerTool("root_update_item", {
|
|
61
97
|
description: "Update an existing knowledge item by ID.",
|
|
62
98
|
inputSchema: {
|
|
99
|
+
client_id: CLIENT_ID_PARAM,
|
|
63
100
|
id: z.string().describe("The item ID to update"),
|
|
64
101
|
data: z.record(z.unknown()).describe("Fields to update (merged with existing data)"),
|
|
65
102
|
},
|
|
66
|
-
}, async ({ id, data }) => {
|
|
67
|
-
const item = await updateItem(
|
|
103
|
+
}, async ({ client_id, id, data }) => {
|
|
104
|
+
const item = await updateItem(resolveClientId(client_id), id, data);
|
|
68
105
|
return { content: [{ type: "text", text: JSON.stringify({ success: true, item }) }] };
|
|
69
106
|
});
|
|
70
107
|
server.registerTool("root_delete_item", {
|
|
71
108
|
description: "Delete a knowledge item by ID.",
|
|
72
109
|
inputSchema: {
|
|
110
|
+
client_id: CLIENT_ID_PARAM,
|
|
73
111
|
id: z.string().describe("The item ID to delete"),
|
|
74
112
|
},
|
|
75
|
-
}, async ({ id }) => {
|
|
76
|
-
const result = await deleteItem(
|
|
113
|
+
}, async ({ client_id, id }) => {
|
|
114
|
+
const result = await deleteItem(resolveClientId(client_id), id);
|
|
77
115
|
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
78
116
|
});
|
|
79
117
|
server.registerTool("root_refresh", {
|
|
80
|
-
description: "Refresh market intelligence for
|
|
81
|
-
inputSchema: {
|
|
82
|
-
|
|
83
|
-
|
|
118
|
+
description: "Refresh market intelligence for a client. Re-queries DataForSEO SERP for the configured geo zones and sector, detects new competitors and competitors that disappeared from search results. Returns a structured diff. Run weekly or when you suspect market changes.",
|
|
119
|
+
inputSchema: {
|
|
120
|
+
client_id: CLIENT_ID_PARAM,
|
|
121
|
+
},
|
|
122
|
+
}, async ({ client_id }) => {
|
|
123
|
+
const diff = await refreshKnowledge(resolveClientId(client_id));
|
|
84
124
|
return { content: [{ type: "text", text: JSON.stringify(diff) }] };
|
|
85
125
|
});
|
|
86
126
|
return server;
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,wCAAwC,EAAE,MAAM,+DAA+D,CAAC;AACzH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|