@aigentyc/mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/AGENTS.md +197 -0
  2. package/LICENSE +21 -0
  3. package/README.md +112 -0
  4. package/context7.json +3 -0
  5. package/dist/cli.d.ts +3 -0
  6. package/dist/cli.d.ts.map +1 -0
  7. package/dist/cli.js +289 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/client.d.ts +10 -0
  10. package/dist/client.d.ts.map +1 -0
  11. package/dist/client.js +70 -0
  12. package/dist/client.js.map +1 -0
  13. package/dist/config.d.ts +31 -0
  14. package/dist/config.d.ts.map +1 -0
  15. package/dist/config.js +79 -0
  16. package/dist/config.js.map +1 -0
  17. package/dist/errors.d.ts +10 -0
  18. package/dist/errors.d.ts.map +1 -0
  19. package/dist/errors.js +28 -0
  20. package/dist/errors.js.map +1 -0
  21. package/dist/fs-safety.d.ts +29 -0
  22. package/dist/fs-safety.d.ts.map +1 -0
  23. package/dist/fs-safety.js +107 -0
  24. package/dist/fs-safety.js.map +1 -0
  25. package/dist/index.d.ts +5 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +4 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/llms-full.txt +659 -0
  30. package/dist/server.d.ts +2 -0
  31. package/dist/server.d.ts.map +1 -0
  32. package/dist/server.js +57 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/tools/analytics.d.ts +4 -0
  35. package/dist/tools/analytics.d.ts.map +1 -0
  36. package/dist/tools/analytics.js +82 -0
  37. package/dist/tools/analytics.js.map +1 -0
  38. package/dist/tools/backups.d.ts +4 -0
  39. package/dist/tools/backups.d.ts.map +1 -0
  40. package/dist/tools/backups.js +99 -0
  41. package/dist/tools/backups.js.map +1 -0
  42. package/dist/tools/config.d.ts +4 -0
  43. package/dist/tools/config.d.ts.map +1 -0
  44. package/dist/tools/config.js +84 -0
  45. package/dist/tools/config.js.map +1 -0
  46. package/dist/tools/corrections.d.ts +4 -0
  47. package/dist/tools/corrections.d.ts.map +1 -0
  48. package/dist/tools/corrections.js +69 -0
  49. package/dist/tools/corrections.js.map +1 -0
  50. package/dist/tools/data_stores.d.ts +4 -0
  51. package/dist/tools/data_stores.d.ts.map +1 -0
  52. package/dist/tools/data_stores.js +244 -0
  53. package/dist/tools/data_stores.js.map +1 -0
  54. package/dist/tools/documents.d.ts +4 -0
  55. package/dist/tools/documents.d.ts.map +1 -0
  56. package/dist/tools/documents.js +162 -0
  57. package/dist/tools/documents.js.map +1 -0
  58. package/dist/tools/extract.d.ts +4 -0
  59. package/dist/tools/extract.d.ts.map +1 -0
  60. package/dist/tools/extract.js +61 -0
  61. package/dist/tools/extract.js.map +1 -0
  62. package/dist/tools/files.d.ts +4 -0
  63. package/dist/tools/files.d.ts.map +1 -0
  64. package/dist/tools/files.js +198 -0
  65. package/dist/tools/files.js.map +1 -0
  66. package/dist/tools/golden_answers.d.ts +4 -0
  67. package/dist/tools/golden_answers.d.ts.map +1 -0
  68. package/dist/tools/golden_answers.js +117 -0
  69. package/dist/tools/golden_answers.js.map +1 -0
  70. package/dist/tools/helpers.d.ts +5 -0
  71. package/dist/tools/helpers.d.ts.map +1 -0
  72. package/dist/tools/helpers.js +10 -0
  73. package/dist/tools/helpers.js.map +1 -0
  74. package/dist/tools/index.d.ts +4 -0
  75. package/dist/tools/index.d.ts.map +1 -0
  76. package/dist/tools/index.js +35 -0
  77. package/dist/tools/index.js.map +1 -0
  78. package/dist/tools/jobs.d.ts +4 -0
  79. package/dist/tools/jobs.d.ts.map +1 -0
  80. package/dist/tools/jobs.js +78 -0
  81. package/dist/tools/jobs.js.map +1 -0
  82. package/dist/tools/link_sources.d.ts +4 -0
  83. package/dist/tools/link_sources.d.ts.map +1 -0
  84. package/dist/tools/link_sources.js +155 -0
  85. package/dist/tools/link_sources.js.map +1 -0
  86. package/dist/tools/misc.d.ts +8 -0
  87. package/dist/tools/misc.d.ts.map +1 -0
  88. package/dist/tools/misc.js +73 -0
  89. package/dist/tools/misc.js.map +1 -0
  90. package/dist/tools/page_questions.d.ts +4 -0
  91. package/dist/tools/page_questions.d.ts.map +1 -0
  92. package/dist/tools/page_questions.js +77 -0
  93. package/dist/tools/page_questions.js.map +1 -0
  94. package/dist/tools/personas.d.ts +4 -0
  95. package/dist/tools/personas.d.ts.map +1 -0
  96. package/dist/tools/personas.js +78 -0
  97. package/dist/tools/personas.js.map +1 -0
  98. package/dist/tools/tools_crud.d.ts +4 -0
  99. package/dist/tools/tools_crud.d.ts.map +1 -0
  100. package/dist/tools/tools_crud.js +207 -0
  101. package/dist/tools/tools_crud.js.map +1 -0
  102. package/dist/tools/types.d.ts +25 -0
  103. package/dist/tools/types.d.ts.map +1 -0
  104. package/dist/tools/types.js +15 -0
  105. package/dist/tools/types.js.map +1 -0
  106. package/llms.txt +150 -0
  107. package/package.json +53 -0
package/dist/server.js ADDED
@@ -0,0 +1,57 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { createClient } from "./client.js";
4
+ import { assertSafePerms, getActiveProfile, requireConfig, } from "./config.js";
5
+ import { AigentycError } from "./errors.js";
6
+ import { allTools } from "./tools/index.js";
7
+ export async function runStdioServer() {
8
+ await assertSafePerms();
9
+ const cfg = await requireConfig();
10
+ const profile = getActiveProfile(cfg);
11
+ const client = createClient(profile);
12
+ const server = new McpServer({
13
+ name: "aigentyc-mcp",
14
+ version: "0.1.0",
15
+ });
16
+ for (const tool of allTools(client)) {
17
+ // biome-ignore lint/suspicious/noExplicitAny: SDK generic inference hits
18
+ // TS2589 on our ZodObject shape; the SDK still validates at runtime.
19
+ server.registerTool(tool.name, {
20
+ title: tool.title,
21
+ description: tool.description,
22
+ inputSchema: tool.inputSchema.shape,
23
+ }, async (args) => {
24
+ try {
25
+ const result = await tool.handler(args);
26
+ return {
27
+ content: [
28
+ { type: "text", text: JSON.stringify(result, null, 2) },
29
+ ],
30
+ };
31
+ }
32
+ catch (err) {
33
+ const payload = err instanceof AigentycError
34
+ ? {
35
+ code: err.code,
36
+ message: err.message,
37
+ status: err.status,
38
+ requestId: err.requestId,
39
+ details: err.details,
40
+ }
41
+ : {
42
+ code: "SERVER_ERROR",
43
+ message: err instanceof Error ? err.message : String(err ?? "error"),
44
+ };
45
+ return {
46
+ isError: true,
47
+ content: [
48
+ { type: "text", text: JSON.stringify(payload, null, 2) },
49
+ ],
50
+ };
51
+ }
52
+ });
53
+ }
54
+ const transport = new StdioServerTransport();
55
+ await server.connect(transport);
56
+ }
57
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,eAAe,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,yEAAyE;QACzE,qEAAqE;QACrE,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,KAAY;SAC3C,EACD,KAAK,EAAE,IAA6B,EAAE,EAAE;YACtC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACxC,OAAO;oBACL,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;qBACjE;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GACX,GAAG,YAAY,aAAa;oBAC1B,CAAC,CAAC;wBACE,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,OAAO,EAAE,GAAG,CAAC,OAAO;qBACrB;oBACH,CAAC,CAAC;wBACE,IAAI,EAAE,cAAuB;wBAC7B,OAAO,EACL,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC;qBAC9D,CAAC;gBACR,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;qBAClE;iBACF,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DashboardClient } from "../client.js";
2
+ import { type ToolDef } from "./types.js";
3
+ export declare function analyticsTools(client: DashboardClient): ToolDef[];
4
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,EAAE,CAkFjE"}
@@ -0,0 +1,82 @@
1
+ import { z } from "zod";
2
+ import { pid, projectIdArg } from "./helpers.js";
3
+ import { defineTool } from "./types.js";
4
+ export function analyticsTools(client) {
5
+ return [
6
+ defineTool({
7
+ name: "analytics_overview",
8
+ title: "Analytics overview",
9
+ description: "Aggregate KPIs (sessions, messages, cost, latency, feedback) for a time window. Defaults to the last 30 days.",
10
+ inputSchema: z.object({
11
+ projectId: projectIdArg,
12
+ from: z.string().datetime().optional().describe("ISO datetime, inclusive."),
13
+ to: z.string().datetime().optional().describe("ISO datetime, inclusive."),
14
+ }),
15
+ handler: async (args) => {
16
+ const projectId = pid(client, args.projectId);
17
+ return client.get(`/api/dashboard/${projectId}/analytics/overview`, {
18
+ from: args.from,
19
+ to: args.to,
20
+ });
21
+ },
22
+ }),
23
+ defineTool({
24
+ name: "analytics_sessions",
25
+ title: "List analytics sessions",
26
+ description: "Paginated list of chat sessions with summary data, optional text search and date window.",
27
+ inputSchema: z.object({
28
+ projectId: projectIdArg,
29
+ from: z.string().datetime().optional(),
30
+ to: z.string().datetime().optional(),
31
+ page: z.number().int().min(1).default(1),
32
+ pageSize: z.number().int().min(1).max(200).default(50),
33
+ search: z.string().optional(),
34
+ }),
35
+ handler: async (args) => {
36
+ const projectId = pid(client, args.projectId);
37
+ return client.get(`/api/dashboard/${projectId}/analytics/sessions`, {
38
+ from: args.from,
39
+ to: args.to,
40
+ page: args.page,
41
+ pageSize: args.pageSize,
42
+ search: args.search,
43
+ });
44
+ },
45
+ }),
46
+ defineTool({
47
+ name: "analytics_session_timeline",
48
+ title: "Session Q&A timeline",
49
+ description: "Full Q&A timeline (messages + search events) for a single session.",
50
+ inputSchema: z.object({
51
+ projectId: projectIdArg,
52
+ sessionId: z.string().min(1),
53
+ }),
54
+ handler: async (args) => {
55
+ const projectId = pid(client, args.projectId);
56
+ return client.get(`/api/dashboard/${projectId}/analytics/sessions/${encodeURIComponent(args.sessionId)}/timeline`);
57
+ },
58
+ }),
59
+ defineTool({
60
+ name: "analytics_comments",
61
+ title: "List analytics comments",
62
+ description: "Project-wide list of admin-authored feedback comments on chat messages, ordered newest first.",
63
+ inputSchema: z.object({
64
+ projectId: projectIdArg,
65
+ from: z.string().datetime().optional(),
66
+ to: z.string().datetime().optional(),
67
+ limit: z.number().int().min(1).max(200).default(50),
68
+ offset: z.number().int().min(0).default(0),
69
+ }),
70
+ handler: async (args) => {
71
+ const projectId = pid(client, args.projectId);
72
+ return client.get(`/api/dashboard/${projectId}/analytics/comments`, {
73
+ from: args.from,
74
+ to: args.to,
75
+ limit: args.limit,
76
+ offset: args.offset,
77
+ });
78
+ },
79
+ }),
80
+ ];
81
+ }
82
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { DashboardClient } from "../client.js";
2
+ import { type ToolDef } from "./types.js";
3
+ export declare function backupsTools(client: DashboardClient): ToolDef[];
4
+ //# sourceMappingURL=backups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backups.d.ts","sourceRoot":"","sources":["../../src/tools/backups.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,EAAE,CA2G/D"}
@@ -0,0 +1,99 @@
1
+ import { z } from "zod";
2
+ import { pid, projectIdArg } from "./helpers.js";
3
+ import { defineTool } from "./types.js";
4
+ export function backupsTools(client) {
5
+ return [
6
+ defineTool({
7
+ name: "backups_list",
8
+ title: "List backups",
9
+ description: "List available project backups (Qdrant snapshots + MySQL exports).",
10
+ inputSchema: z.object({ projectId: projectIdArg }),
11
+ handler: async (args) => {
12
+ const projectId = pid(client, args.projectId);
13
+ return client.get(`/api/dashboard/${projectId}/backups`);
14
+ },
15
+ }),
16
+ defineTool({
17
+ name: "backups_create",
18
+ title: "Create backup",
19
+ description: "Snapshot the project's Qdrant collections + MySQL data. Synchronous; may take tens of seconds on large projects.",
20
+ inputSchema: z.object({
21
+ projectId: projectIdArg,
22
+ label: z.string().max(200).optional(),
23
+ }),
24
+ handler: async (args) => {
25
+ const projectId = pid(client, args.projectId);
26
+ return client.post(`/api/dashboard/${projectId}/backups`, {
27
+ label: args.label,
28
+ });
29
+ },
30
+ }),
31
+ defineTool({
32
+ name: "backups_restore",
33
+ title: "Restore from backup",
34
+ description: "Restore the project's Qdrant + MySQL state from a backup. HIGHLY DESTRUCTIVE: overwrites current data.",
35
+ inputSchema: z.object({
36
+ projectId: projectIdArg,
37
+ index: z.number().int().min(0),
38
+ confirm: z.literal(true).describe("Must be set to true to execute. Guards against accidental restores."),
39
+ }),
40
+ handler: async (args) => {
41
+ const projectId = pid(client, args.projectId);
42
+ return client.post(`/api/dashboard/${projectId}/backups/restore`, {
43
+ index: args.index,
44
+ confirm: args.confirm,
45
+ });
46
+ },
47
+ }),
48
+ defineTool({
49
+ name: "backups_download",
50
+ title: "Download a backup",
51
+ description: "Download a backup by index. type='mysql' returns JSON (secrets redacted for API-key callers); type='qdrant' returns an opaque Qdrant snapshot reference.",
52
+ inputSchema: z.object({
53
+ projectId: projectIdArg,
54
+ index: z.number().int().min(0),
55
+ type: z.enum(["mysql", "qdrant"]).default("mysql"),
56
+ }),
57
+ handler: async (args) => {
58
+ const projectId = pid(client, args.projectId);
59
+ return client.get(`/api/dashboard/${projectId}/backups/${args.index}/download`, { type: args.type });
60
+ },
61
+ }),
62
+ defineTool({
63
+ name: "backups_import",
64
+ title: "Import a backup",
65
+ description: "Upload a previously-exported backup JSON blob.",
66
+ inputSchema: z.object({
67
+ projectId: projectIdArg,
68
+ backup: z.record(z.unknown()),
69
+ label: z.string().optional(),
70
+ }),
71
+ handler: async (args) => {
72
+ const { projectId: rawPid, ...body } = args;
73
+ const projectId = pid(client, rawPid);
74
+ return client.post(`/api/dashboard/${projectId}/backups/import`, body);
75
+ },
76
+ }),
77
+ defineTool({
78
+ name: "backups_delete",
79
+ title: "Delete a backup",
80
+ description: "Delete a backup by index. Destructive.",
81
+ inputSchema: z.object({
82
+ projectId: projectIdArg,
83
+ index: z.number().int().min(0),
84
+ confirm: z.boolean().default(false),
85
+ }),
86
+ handler: async (args) => {
87
+ if (!args.confirm) {
88
+ return {
89
+ deleted: false,
90
+ reason: "Destructive. Re-invoke with confirm=true.",
91
+ };
92
+ }
93
+ const projectId = pid(client, args.projectId);
94
+ return client.delete(`/api/dashboard/${projectId}/backups/${args.index}`);
95
+ },
96
+ }),
97
+ ];
98
+ }
99
+ //# sourceMappingURL=backups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backups.js","sourceRoot":"","sources":["../../src/tools/backups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { DashboardClient } from "../client.js";
2
+ import { type ToolDef } from "./types.js";
3
+ export declare function configTools(client: DashboardClient): ToolDef[];
4
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/tools/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAwDtD,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,EAAE,CA8B9D"}
@@ -0,0 +1,84 @@
1
+ import { z } from "zod";
2
+ import { pid, projectIdArg } from "./helpers.js";
3
+ import { defineTool } from "./types.js";
4
+ // Whitelisted fields that can be updated via API key. Server enforces the
5
+ // same list; this schema is a client-side echo for better tool ergonomics.
6
+ const configPatchSchema = z.object({
7
+ // Chat
8
+ systemPrompt: z.string().optional(),
9
+ chatModel: z.string().optional(),
10
+ embeddingModel: z.string().optional(),
11
+ embeddingDimensions: z.string().optional(),
12
+ // Chunking
13
+ chunkSize: z.string().optional(),
14
+ chunkOverlap: z.string().optional(),
15
+ separators: z.string().optional(),
16
+ keepSeparator: z.boolean().optional(),
17
+ stripWhitespace: z.boolean().optional(),
18
+ // Extraction
19
+ extractionRules: z.unknown().optional(),
20
+ // Search
21
+ searchStrategy: z.string().optional(),
22
+ searchTopK: z.string().optional(),
23
+ searchThreshold: z.string().optional(),
24
+ rerankerEnabled: z.boolean().optional(),
25
+ rerankerTopN: z.string().optional(),
26
+ boostWeights: z.unknown().optional(),
27
+ // UI
28
+ showSuggestedQuestions: z.boolean().optional(),
29
+ followupSuggestionsPrompt: z.string().optional(),
30
+ preChatQuestions: z.unknown().optional(),
31
+ pageContextEnabled: z.boolean().optional(),
32
+ pageQuestionsMode: z.enum(["auto", "manual"]).optional(),
33
+ pageQuestionsExpiryDays: z.number().int().min(1).max(365).optional(),
34
+ personasEnabled: z.boolean().optional(),
35
+ personalSelectionMode: z.string().optional(),
36
+ visualRulesEnabled: z.boolean().optional(),
37
+ visualRules: z.unknown().optional(),
38
+ playgroundEnabled: z.boolean().optional(),
39
+ dataStoreEnabled: z.boolean().optional(),
40
+ logoUrl: z.string().url().nullable().optional(),
41
+ // Live chat
42
+ liveChatEnabled: z.boolean().optional(),
43
+ liveChatBusinessHours: z.unknown().optional(),
44
+ // Tracking
45
+ gtmContainerId: z.string().nullable().optional(),
46
+ gtmEnabled: z.boolean().optional(),
47
+ sessionSummaryEnabled: z.boolean().optional(),
48
+ sessionTopicsEnabled: z.boolean().optional(),
49
+ sessionTopics: z.array(z.string()).optional(),
50
+ sessionSuggestedTopics: z.array(z.string()).optional(),
51
+ // Connectors
52
+ connectors: z.unknown().optional(),
53
+ // Meta
54
+ name: z.string().optional(),
55
+ defaultSitemapUrl: z.string().url().nullable().optional(),
56
+ });
57
+ export function configTools(client) {
58
+ return [
59
+ defineTool({
60
+ name: "config_get",
61
+ title: "Get project config",
62
+ description: "Fetch the full project configuration. When called via API key, secret fields (openaiApiKey, customHttpHeaders) are redacted to '***'.",
63
+ inputSchema: z.object({ projectId: projectIdArg }),
64
+ handler: async (args) => {
65
+ const projectId = pid(client, args.projectId);
66
+ return client.get(`/api/dashboard/${projectId}/config`);
67
+ },
68
+ }),
69
+ defineTool({
70
+ name: "config_update",
71
+ title: "Update project config",
72
+ description: "Patch project config. Send only the fields you want to change. Secret fields (openaiApiKey, customHttpHeaders, neonConnectionString) cannot be updated via API key and will be rejected with 403.",
73
+ inputSchema: z.object({
74
+ projectId: projectIdArg,
75
+ patch: configPatchSchema.describe("Partial config. Unknown keys are rejected by the server."),
76
+ }),
77
+ handler: async (args) => {
78
+ const projectId = pid(client, args.projectId);
79
+ return client.patch(`/api/dashboard/${projectId}/config`, args.patch);
80
+ },
81
+ }),
82
+ ];
83
+ }
84
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/tools/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { DashboardClient } from "../client.js";
2
+ import { type ToolDef } from "./types.js";
3
+ export declare function correctionsTools(client: DashboardClient): ToolDef[];
4
+ //# sourceMappingURL=corrections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corrections.d.ts","sourceRoot":"","sources":["../../src/tools/corrections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,EAAE,CAoEnE"}
@@ -0,0 +1,69 @@
1
+ import { z } from "zod";
2
+ import { pid, projectIdArg } from "./helpers.js";
3
+ import { defineTool } from "./types.js";
4
+ export function correctionsTools(client) {
5
+ return [
6
+ defineTool({
7
+ name: "corrections_list",
8
+ title: "List knowledge corrections",
9
+ description: "List user feedback / suggested edits against the knowledge base. Corrections are NOT auto-applied — review + mark status.",
10
+ inputSchema: z.object({
11
+ projectId: projectIdArg,
12
+ status: z.enum(["pending", "applied", "dismissed"]).optional(),
13
+ correctionType: z.string().optional(),
14
+ limit: z.number().int().min(1).max(500).default(50),
15
+ offset: z.number().int().min(0).default(0),
16
+ includeStats: z.boolean().default(false),
17
+ }),
18
+ handler: async (args) => {
19
+ const projectId = pid(client, args.projectId);
20
+ return client.get(`/api/dashboard/${projectId}/corrections`, {
21
+ status: args.status,
22
+ correctionType: args.correctionType,
23
+ limit: args.limit,
24
+ offset: args.offset,
25
+ includeStats: args.includeStats,
26
+ });
27
+ },
28
+ }),
29
+ defineTool({
30
+ name: "corrections_create",
31
+ title: "Log a correction",
32
+ description: "Record a suggested correction for a past Q&A. Status starts as 'pending'.",
33
+ inputSchema: z.object({
34
+ projectId: projectIdArg,
35
+ sourceEventId: z.string().optional(),
36
+ originalQuery: z.string().min(1),
37
+ originalResponse: z.string().optional(),
38
+ correctionType: z.string().default("response"),
39
+ isCorrect: z.boolean().default(false),
40
+ correctedResponse: z.string().optional(),
41
+ correctionNotes: z.string().optional(),
42
+ affectedDocumentIds: z.array(z.number().int()).optional(),
43
+ createdBy: z.string().optional(),
44
+ }),
45
+ handler: async (args) => {
46
+ const { projectId: rawPid, ...body } = args;
47
+ const projectId = pid(client, rawPid);
48
+ return client.post(`/api/dashboard/${projectId}/corrections`, body);
49
+ },
50
+ }),
51
+ defineTool({
52
+ name: "corrections_update_status",
53
+ title: "Mark correction status",
54
+ description: "Set a correction's status to 'applied' or 'dismissed'.",
55
+ inputSchema: z.object({
56
+ projectId: projectIdArg,
57
+ id: z.union([z.string(), z.number()]),
58
+ status: z.enum(["applied", "dismissed"]),
59
+ appliedBy: z.string().optional(),
60
+ }),
61
+ handler: async (args) => {
62
+ const { projectId: rawPid, ...body } = args;
63
+ const projectId = pid(client, rawPid);
64
+ return client.patch(`/api/dashboard/${projectId}/corrections`, body);
65
+ },
66
+ }),
67
+ ];
68
+ }
69
+ //# sourceMappingURL=corrections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corrections.js","sourceRoot":"","sources":["../../src/tools/corrections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { DashboardClient } from "../client.js";
2
+ import { type ToolDef } from "./types.js";
3
+ export declare function dataStoresTools(client: DashboardClient): ToolDef[];
4
+ //# sourceMappingURL=data_stores.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_stores.d.ts","sourceRoot":"","sources":["../../src/tools/data_stores.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAmBtD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,EAAE,CAkQlE"}