@gramatr/mcp 0.13.35 → 0.13.37

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 (70) hide show
  1. package/dist/bin/brain.d.ts +64 -0
  2. package/dist/bin/brain.d.ts.map +1 -0
  3. package/dist/bin/brain.js +294 -0
  4. package/dist/bin/brain.js.map +1 -0
  5. package/dist/bin/gramatr-mcp.d.ts +4 -0
  6. package/dist/bin/gramatr-mcp.d.ts.map +1 -1
  7. package/dist/bin/gramatr-mcp.js +99 -1
  8. package/dist/bin/gramatr-mcp.js.map +1 -1
  9. package/dist/bin/setup.d.ts.map +1 -1
  10. package/dist/bin/setup.js +7 -10
  11. package/dist/bin/setup.js.map +1 -1
  12. package/dist/config-runtime.d.ts +2 -0
  13. package/dist/config-runtime.d.ts.map +1 -1
  14. package/dist/config-runtime.js +4 -0
  15. package/dist/config-runtime.js.map +1 -1
  16. package/dist/hooks/lib/compact-writer.d.ts.map +1 -1
  17. package/dist/hooks/lib/compact-writer.js +1 -19
  18. package/dist/hooks/lib/compact-writer.js.map +1 -1
  19. package/dist/hooks/lib/gramatr-hook-utils.d.ts +0 -13
  20. package/dist/hooks/lib/gramatr-hook-utils.d.ts.map +1 -1
  21. package/dist/hooks/lib/gramatr-hook-utils.js +0 -3
  22. package/dist/hooks/lib/gramatr-hook-utils.js.map +1 -1
  23. package/dist/hooks/lib/hook-state.d.ts +2 -0
  24. package/dist/hooks/lib/hook-state.d.ts.map +1 -1
  25. package/dist/hooks/lib/hook-state.js +27 -0
  26. package/dist/hooks/lib/hook-state.js.map +1 -1
  27. package/dist/hooks/lib/session.d.ts +2 -0
  28. package/dist/hooks/lib/session.d.ts.map +1 -1
  29. package/dist/hooks/lib/session.js +5 -5
  30. package/dist/hooks/lib/session.js.map +1 -1
  31. package/dist/hooks/lib/transcript-parser.d.ts +7 -0
  32. package/dist/hooks/lib/transcript-parser.d.ts.map +1 -1
  33. package/dist/hooks/lib/transcript-parser.js +111 -15
  34. package/dist/hooks/lib/transcript-parser.js.map +1 -1
  35. package/dist/hooks/rating-capture.d.ts.map +1 -1
  36. package/dist/hooks/rating-capture.js +4 -15
  37. package/dist/hooks/rating-capture.js.map +1 -1
  38. package/dist/hooks/session-end.d.ts.map +1 -1
  39. package/dist/hooks/session-end.js +52 -11
  40. package/dist/hooks/session-end.js.map +1 -1
  41. package/dist/hooks/session-start.d.ts.map +1 -1
  42. package/dist/hooks/session-start.js +5 -7
  43. package/dist/hooks/session-start.js.map +1 -1
  44. package/dist/hooks/tool-tracker.d.ts.map +1 -1
  45. package/dist/hooks/tool-tracker.js +13 -64
  46. package/dist/hooks/tool-tracker.js.map +1 -1
  47. package/dist/proxy/remote-client.d.ts +13 -0
  48. package/dist/proxy/remote-client.d.ts.map +1 -1
  49. package/dist/proxy/remote-client.js +41 -0
  50. package/dist/proxy/remote-client.js.map +1 -1
  51. package/dist/proxy/tool-privilege.d.ts +58 -0
  52. package/dist/proxy/tool-privilege.d.ts.map +1 -0
  53. package/dist/proxy/tool-privilege.js +134 -0
  54. package/dist/proxy/tool-privilege.js.map +1 -0
  55. package/dist/server/hooks-listener.d.ts.map +1 -1
  56. package/dist/server/hooks-listener.js +21 -6
  57. package/dist/server/hooks-listener.js.map +1 -1
  58. package/dist/server/server.d.ts.map +1 -1
  59. package/dist/server/server.js +48 -14
  60. package/dist/server/server.js.map +1 -1
  61. package/dist/setup/generated/platform-hooks.d.ts +1 -1
  62. package/dist/setup/generated/platform-hooks.d.ts.map +1 -1
  63. package/dist/setup/generated/platform-hooks.js +5 -4
  64. package/dist/setup/generated/platform-hooks.js.map +1 -1
  65. package/dist/tools/local-tools.d.ts +7 -2
  66. package/dist/tools/local-tools.d.ts.map +1 -1
  67. package/dist/tools/local-tools.js +157 -3
  68. package/dist/tools/local-tools.js.map +1 -1
  69. package/dist/types/generated/rest-api-types.d.ts +2 -2
  70. package/package.json +4 -1
@@ -0,0 +1,64 @@
1
+ /**
2
+ * brain — CLI subcommand for bulk file upload to the grāmatr brain.
3
+ *
4
+ * Reads local files (txt, md, csv, pdf, docx), extracts their text, and
5
+ * pushes the content through the RAG pipeline via `add_observation` +
6
+ * `create_entity` MCP tool calls. No flat files are ever written — all
7
+ * state flows through MCP tool calls to the server/database.
8
+ *
9
+ * Usage:
10
+ * gramatr-mcp brain upload <file>
11
+ * gramatr-mcp brain upload --dir <dir>
12
+ * gramatr-mcp brain upload --dir <dir> --recursive
13
+ * gramatr-mcp brain upload <file> --entity-id <id>
14
+ * gramatr-mcp brain upload <file> --entity-name <name>
15
+ * gramatr-mcp brain --help
16
+ */
17
+ export declare const SUPPORTED_EXTENSIONS: Set<string>;
18
+ /**
19
+ * Extract plain text from a file buffer based on its extension.
20
+ * Returns null if the extension is unsupported (caller decides whether to warn).
21
+ */
22
+ export declare function extractText(filePath: string, buffer: Buffer): Promise<string | null>;
23
+ /**
24
+ * Derive an entity name from a file path when no explicit name is given.
25
+ * Strips the extension from the base name.
26
+ */
27
+ export declare function deriveEntityName(filePath: string): string;
28
+ /**
29
+ * Resolve the entity ID to use for a file upload.
30
+ *
31
+ * Priority:
32
+ * 1. --entity-id <id> — use the ID directly (no server call)
33
+ * 2. --entity-name <name> — create_entity with that name
34
+ * 3. fallback — create_entity using the filename (without extension)
35
+ *
36
+ * Returns the entity ID as a string, or throws on failure.
37
+ */
38
+ export declare function resolveEntityId(filePath: string, entityId: string | undefined, entityName: string | undefined): Promise<string>;
39
+ export interface UploadFileOptions {
40
+ entityId?: string;
41
+ entityName?: string;
42
+ }
43
+ export interface UploadResult {
44
+ file: string;
45
+ entityId?: string;
46
+ error?: string;
47
+ skipped?: boolean;
48
+ }
49
+ /**
50
+ * Upload a single file to the grāmatr brain.
51
+ */
52
+ export declare function uploadFile(filePath: string, options?: UploadFileOptions): Promise<UploadResult>;
53
+ /**
54
+ * Collect all supported files in a directory.
55
+ * @param dir Absolute or relative path to the directory
56
+ * @param recursive If true, descend into subdirectories
57
+ */
58
+ export declare function collectFiles(dir: string, recursive: boolean): string[];
59
+ /**
60
+ * runBrain — entry point for `gramatr-mcp brain <args>` subcommand.
61
+ * Returns an exit code (0 = success, 1 = one or more errors).
62
+ */
63
+ export declare function runBrain(args: string[]): Promise<number>;
64
+ //# sourceMappingURL=brain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../src/bin/brain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,eAAO,MAAM,oBAAoB,aAAoD,CAAC;AAItF;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBxB;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAID,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,YAAY,CAAC,CA+DvB;AAID;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAqBtE;AA8CD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6E9D"}
@@ -0,0 +1,294 @@
1
+ /**
2
+ * brain — CLI subcommand for bulk file upload to the grāmatr brain.
3
+ *
4
+ * Reads local files (txt, md, csv, pdf, docx), extracts their text, and
5
+ * pushes the content through the RAG pipeline via `add_observation` +
6
+ * `create_entity` MCP tool calls. No flat files are ever written — all
7
+ * state flows through MCP tool calls to the server/database.
8
+ *
9
+ * Usage:
10
+ * gramatr-mcp brain upload <file>
11
+ * gramatr-mcp brain upload --dir <dir>
12
+ * gramatr-mcp brain upload --dir <dir> --recursive
13
+ * gramatr-mcp brain upload <file> --entity-id <id>
14
+ * gramatr-mcp brain upload <file> --entity-name <name>
15
+ * gramatr-mcp brain --help
16
+ */
17
+ import { readFileSync, readdirSync, statSync } from 'node:fs';
18
+ import { extname, basename, join, resolve } from 'node:path';
19
+ import { callTool } from '../proxy/local-client.js';
20
+ // ── Supported extensions ────────────────────────────────────────────────────
21
+ export const SUPPORTED_EXTENSIONS = new Set(['.txt', '.md', '.csv', '.pdf', '.docx']);
22
+ // ── Text extraction ─────────────────────────────────────────────────────────
23
+ /**
24
+ * Extract plain text from a file buffer based on its extension.
25
+ * Returns null if the extension is unsupported (caller decides whether to warn).
26
+ */
27
+ export async function extractText(filePath, buffer) {
28
+ const ext = extname(filePath).toLowerCase();
29
+ if (ext === '.txt' || ext === '.md' || ext === '.csv') {
30
+ return buffer.toString('utf8');
31
+ }
32
+ if (ext === '.pdf') {
33
+ // Dynamic import so the module is only loaded when a PDF is actually processed.
34
+ const pdfParse = (await import('pdf-parse')).default;
35
+ const result = await pdfParse(buffer);
36
+ return result.text;
37
+ }
38
+ if (ext === '.docx') {
39
+ const mammoth = await import('mammoth');
40
+ const result = await mammoth.extractRawText({ buffer });
41
+ return result.value;
42
+ }
43
+ return null;
44
+ }
45
+ // ── Entity resolution ───────────────────────────────────────────────────────
46
+ /**
47
+ * Derive an entity name from a file path when no explicit name is given.
48
+ * Strips the extension from the base name.
49
+ */
50
+ export function deriveEntityName(filePath) {
51
+ const base = basename(filePath);
52
+ const ext = extname(base);
53
+ return ext ? base.slice(0, -ext.length) : base;
54
+ }
55
+ /**
56
+ * Resolve the entity ID to use for a file upload.
57
+ *
58
+ * Priority:
59
+ * 1. --entity-id <id> — use the ID directly (no server call)
60
+ * 2. --entity-name <name> — create_entity with that name
61
+ * 3. fallback — create_entity using the filename (without extension)
62
+ *
63
+ * Returns the entity ID as a string, or throws on failure.
64
+ */
65
+ export async function resolveEntityId(filePath, entityId, entityName) {
66
+ if (entityId)
67
+ return entityId;
68
+ const name = entityName ?? deriveEntityName(filePath);
69
+ const result = await callTool('create_entity', {
70
+ name,
71
+ entity_type: 'reference',
72
+ observations: [],
73
+ });
74
+ if (result.isError) {
75
+ const text = result.content?.[0]?.type === 'text' ? result.content[0].text : 'unknown error';
76
+ // gramatr-allow: B1 — CLI bin command, no @gramatr/core dependency in MCP package
77
+ throw new Error(`create_entity failed: ${text}`);
78
+ }
79
+ // The server returns JSON with an id field
80
+ const text = result.content?.[0]?.type === 'text' ? result.content[0].text : '';
81
+ let parsed;
82
+ try {
83
+ parsed = JSON.parse(text);
84
+ }
85
+ catch {
86
+ // gramatr-allow: B1 — CLI bin command, no @gramatr/core dependency in MCP package
87
+ throw new Error(`could not parse entity id from response: ${text}`);
88
+ }
89
+ const id = parsed.id ?? parsed.entity?.id;
90
+ // gramatr-allow: B1 — CLI bin command, no @gramatr/core dependency in MCP package
91
+ if (!id)
92
+ throw new Error('no id in create_entity response');
93
+ return id;
94
+ }
95
+ /**
96
+ * Upload a single file to the grāmatr brain.
97
+ */
98
+ export async function uploadFile(filePath, options = {}) {
99
+ const ext = extname(filePath).toLowerCase();
100
+ if (!SUPPORTED_EXTENSIONS.has(ext)) {
101
+ process.stderr.write(`[gramatr] skipping ${filePath} (unsupported type: ${ext})\n`);
102
+ return { file: filePath, skipped: true };
103
+ }
104
+ let buffer;
105
+ try {
106
+ buffer = readFileSync(filePath);
107
+ }
108
+ catch (err) {
109
+ const message = err instanceof Error ? err.message : String(err);
110
+ process.stderr.write(`[gramatr] ✗ ${filePath}: ${message}\n`);
111
+ return { file: filePath, error: message };
112
+ }
113
+ let text;
114
+ try {
115
+ text = await extractText(filePath, buffer);
116
+ }
117
+ catch (err) {
118
+ const message = err instanceof Error ? err.message : String(err);
119
+ process.stderr.write(`[gramatr] ✗ ${filePath}: failed to extract text — ${message}\n`);
120
+ return { file: filePath, error: message };
121
+ }
122
+ if (text === null) {
123
+ // extractText returns null for unsupported extensions — already guarded above
124
+ process.stderr.write(`[gramatr] skipping ${filePath} (unsupported type: ${ext})\n`);
125
+ return { file: filePath, skipped: true };
126
+ }
127
+ if (text.trim().length === 0) {
128
+ process.stderr.write(`[gramatr] skipping ${filePath} (empty content)\n`);
129
+ return { file: filePath, skipped: true };
130
+ }
131
+ process.stderr.write(`[gramatr] uploading ${basename(filePath)} (${text.length} chars)...\n`);
132
+ let entityId;
133
+ try {
134
+ entityId = await resolveEntityId(filePath, options.entityId, options.entityName);
135
+ }
136
+ catch (err) {
137
+ const message = err instanceof Error ? err.message : String(err);
138
+ process.stderr.write(`[gramatr] ✗ ${filePath}: ${message}\n`);
139
+ return { file: filePath, error: message };
140
+ }
141
+ const obsResult = await callTool('add_observation', {
142
+ entity_id: entityId,
143
+ content: text,
144
+ });
145
+ if (obsResult.isError) {
146
+ const errorText = obsResult.content?.[0]?.type === 'text'
147
+ ? obsResult.content[0].text
148
+ : 'unknown error';
149
+ process.stderr.write(`[gramatr] ✗ ${filePath}: add_observation failed — ${errorText}\n`);
150
+ return { file: filePath, entityId, error: errorText };
151
+ }
152
+ process.stderr.write(`[gramatr] ✓ ${basename(filePath)} → entity ${entityId}\n`);
153
+ return { file: filePath, entityId };
154
+ }
155
+ // ── Directory collection ────────────────────────────────────────────────────
156
+ /**
157
+ * Collect all supported files in a directory.
158
+ * @param dir Absolute or relative path to the directory
159
+ * @param recursive If true, descend into subdirectories
160
+ */
161
+ export function collectFiles(dir, recursive) {
162
+ const files = [];
163
+ const entries = readdirSync(dir);
164
+ for (const entry of entries) {
165
+ const fullPath = join(dir, entry);
166
+ const stat = statSync(fullPath);
167
+ if (stat.isDirectory()) {
168
+ if (recursive) {
169
+ files.push(...collectFiles(fullPath, true));
170
+ }
171
+ }
172
+ else if (stat.isFile()) {
173
+ const ext = extname(entry).toLowerCase();
174
+ if (SUPPORTED_EXTENSIONS.has(ext)) {
175
+ files.push(fullPath);
176
+ }
177
+ }
178
+ }
179
+ return files;
180
+ }
181
+ // ── Arg helpers ─────────────────────────────────────────────────────────────
182
+ function getFlag(args, name) {
183
+ const idx = args.indexOf(name);
184
+ if (idx === -1 || idx + 1 >= args.length)
185
+ return undefined;
186
+ return args[idx + 1];
187
+ }
188
+ function hasFlag(args, name) {
189
+ return args.includes(name);
190
+ }
191
+ // ── Help text ────────────────────────────────────────────────────────────────
192
+ function printBrainHelp() {
193
+ process.stderr.write(`
194
+ gramatr-mcp brain — Upload local files to the grāmatr brain
195
+
196
+ Usage:
197
+ brain upload <file> Upload a single file
198
+ brain upload --dir <dir> Upload all supported files in a directory
199
+ brain upload --dir <dir> --recursive Recurse into subdirectories
200
+ brain --help Show this help
201
+
202
+ Supported file types:
203
+ .txt .md .csv .pdf .docx
204
+
205
+ Entity options (controls which entity observations are added to):
206
+ --entity-id <id> Attach to an existing entity by ID
207
+ --entity-name <name> Create (or reuse) an entity with this name
208
+ Default: use filename without extension
209
+
210
+ Examples:
211
+ brain upload project-brief.pdf
212
+ brain upload notes.md --entity-name "Q3 Research"
213
+ brain upload contract.docx --entity-id abc-123
214
+ brain upload --dir ./docs
215
+ brain upload --dir ./research --recursive
216
+
217
+ `);
218
+ }
219
+ // ── Main entry point ─────────────────────────────────────────────────────────
220
+ /**
221
+ * runBrain — entry point for `gramatr-mcp brain <args>` subcommand.
222
+ * Returns an exit code (0 = success, 1 = one or more errors).
223
+ */
224
+ export async function runBrain(args) {
225
+ const subcommand = args[0];
226
+ if (!subcommand || subcommand === '--help' || subcommand === '-h') {
227
+ printBrainHelp();
228
+ return 0;
229
+ }
230
+ if (subcommand !== 'upload') {
231
+ process.stderr.write(`[gramatr] Unknown brain subcommand: ${subcommand}\n`);
232
+ process.stderr.write(' Supported: upload\n');
233
+ process.stderr.write(' Run: gramatr-mcp brain --help\n');
234
+ return 1;
235
+ }
236
+ // -- upload subcommand --
237
+ const uploadArgs = args.slice(1);
238
+ const entityId = getFlag(uploadArgs, '--entity-id');
239
+ const entityName = getFlag(uploadArgs, '--entity-name');
240
+ const dirArg = getFlag(uploadArgs, '--dir');
241
+ const recursive = hasFlag(uploadArgs, '--recursive');
242
+ // Collect the positional (non-flag) arguments as file paths
243
+ const positionals = [];
244
+ let i = 0;
245
+ while (i < uploadArgs.length) {
246
+ const arg = uploadArgs[i];
247
+ if (arg === '--entity-id' || arg === '--entity-name' || arg === '--dir') {
248
+ i += 2; // skip flag + value
249
+ }
250
+ else if (arg.startsWith('--')) {
251
+ i += 1; // boolean flag
252
+ }
253
+ else {
254
+ positionals.push(arg);
255
+ i += 1;
256
+ }
257
+ }
258
+ // Build the list of files to upload
259
+ const filePaths = [];
260
+ if (dirArg) {
261
+ const absDir = resolve(dirArg);
262
+ let dirFiles;
263
+ try {
264
+ dirFiles = collectFiles(absDir, recursive);
265
+ }
266
+ catch (err) {
267
+ const message = err instanceof Error ? err.message : String(err);
268
+ process.stderr.write(`[gramatr] ✗ Cannot read directory ${absDir}: ${message}\n`);
269
+ return 1;
270
+ }
271
+ if (dirFiles.length === 0) {
272
+ process.stderr.write(`[gramatr] No supported files found in ${absDir}\n`);
273
+ return 0;
274
+ }
275
+ filePaths.push(...dirFiles);
276
+ }
277
+ for (const p of positionals) {
278
+ filePaths.push(resolve(p));
279
+ }
280
+ if (filePaths.length === 0) {
281
+ process.stderr.write('[gramatr] No files specified. Provide a file path or --dir <dir>.\n');
282
+ process.stderr.write(' Run: gramatr-mcp brain --help\n');
283
+ return 1;
284
+ }
285
+ const options = { entityId, entityName };
286
+ let hasError = false;
287
+ for (const filePath of filePaths) {
288
+ const result = await uploadFile(filePath, options);
289
+ if (result.error)
290
+ hasError = true;
291
+ }
292
+ return hasError ? 1 : 0;
293
+ }
294
+ //# sourceMappingURL=brain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain.js","sourceRoot":"","sources":["../../src/bin/brain.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * Usage:
6
6
  * gramatr-mcp start One-command setup: configure + login + verify + doctor
7
7
  * gramatr-mcp Start the stdio MCP server (default)
8
+ * gramatr-mcp --mode admin Start server in admin privilege mode
8
9
  * gramatr-mcp login Authenticate and store local credentials
9
10
  * gramatr-mcp add-api-key Store an API key in local config
10
11
  * gramatr-mcp logout Remove stored credentials
@@ -32,6 +33,9 @@
32
33
  * gramatr-mcp build-mcpb Build a Claude Desktop .mcpb manifest bundle
33
34
  * gramatr-mcp admin <command> Admin user/org/team management
34
35
  * gramatr-mcp admin --help Show admin command help
36
+ * gramatr-mcp brain upload <file> Upload a local file to the grāmatr brain
37
+ * gramatr-mcp brain upload --dir <dir> Upload all supported files in a directory
38
+ * gramatr-mcp brain --help Show brain subcommand help
35
39
  * gramatr-mcp hook <name> [args...] Run a hook (session-start, ...)
36
40
  * gramatr-mcp hook --list List registered hooks
37
41
  * gramatr-mcp daemon start Start the persistent IPC daemon
@@ -1 +1 @@
1
- {"version":3,"file":"gramatr-mcp.d.ts","sourceRoot":"","sources":["../../src/bin/gramatr-mcp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAmBH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,GAAG,IAAI,CAqBjB;AAqBD,wBAAgB,SAAS,IAAI,IAAI,CAiFhC;AAED,wBAAsB,OAAO,CAAC,OAAO,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAuYtF"}
1
+ {"version":3,"file":"gramatr-mcp.d.ts","sourceRoot":"","sources":["../../src/bin/gramatr-mcp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAmBH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,GAAG,IAAI,CAqBjB;AAqBD,wBAAgB,SAAS,IAAI,IAAI,CA4FhC;AAED,wBAAsB,OAAO,CAAC,OAAO,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAietF"}
@@ -5,6 +5,7 @@
5
5
  * Usage:
6
6
  * gramatr-mcp start One-command setup: configure + login + verify + doctor
7
7
  * gramatr-mcp Start the stdio MCP server (default)
8
+ * gramatr-mcp --mode admin Start server in admin privilege mode
8
9
  * gramatr-mcp login Authenticate and store local credentials
9
10
  * gramatr-mcp add-api-key Store an API key in local config
10
11
  * gramatr-mcp logout Remove stored credentials
@@ -32,6 +33,9 @@
32
33
  * gramatr-mcp build-mcpb Build a Claude Desktop .mcpb manifest bundle
33
34
  * gramatr-mcp admin <command> Admin user/org/team management
34
35
  * gramatr-mcp admin --help Show admin command help
36
+ * gramatr-mcp brain upload <file> Upload a local file to the grāmatr brain
37
+ * gramatr-mcp brain upload --dir <dir> Upload all supported files in a directory
38
+ * gramatr-mcp brain --help Show brain subcommand help
35
39
  * gramatr-mcp hook <name> [args...] Run a hook (session-start, ...)
36
40
  * gramatr-mcp hook --list List registered hooks
37
41
  * gramatr-mcp daemon start Start the persistent IPC daemon
@@ -144,15 +148,26 @@ export function printHelp() {
144
148
  Include install prompt guidance in verify output
145
149
  gramatr-mcp admin <command> Admin user/org/team management
146
150
  gramatr-mcp admin --help Show admin subcommand help
151
+ gramatr-mcp brain upload <file> Upload a local file to the grāmatr brain
152
+ gramatr-mcp brain upload --dir <dir>
153
+ Upload all supported files in a directory
154
+ gramatr-mcp brain --help Show brain subcommand help
147
155
  gramatr-mcp build-mcpb Build a Claude Desktop .mcpb bundle
148
156
  gramatr-mcp hook <name> [args...] Run a hook (stdin → stdout contract)
149
157
  gramatr-mcp hook --list List registered hooks
150
158
  gramatr-mcp daemon start Start the persistent IPC daemon
151
159
  gramatr-mcp daemon stop Send shutdown request to running daemon
152
160
  gramatr-mcp daemon status Print daemon liveness and session count
161
+ gramatr-mcp --mode <level> Set initial privilege mode (user|team|org|admin)
153
162
  gramatr-mcp --version Print version
154
163
  gramatr-mcp --help Show this help
155
164
 
165
+ Privilege modes:
166
+ user (default) Core memory, search, entity CRUD, session tools
167
+ team User + team-scoped entity tools, shared playbooks
168
+ org Team + org admin tools (standards, benchmarks, member mgmt)
169
+ admin Full set — audit, API key admin, billing-adjacent ops
170
+
156
171
  Configuration:
157
172
  Auth token: ~/.gramatr.json (token field)
158
173
  Server URL: GRAMATR_URL env or ~/.gramatr.json server_url
@@ -243,6 +258,15 @@ export async function cliMain(cliArgs = process.argv.slice(2)) {
243
258
  const { runAdmin } = await import('./admin.js');
244
259
  process.exit(await runAdmin(cliArgs.slice(1)));
245
260
  }
261
+ if (cliArgs[0] === 'brain') {
262
+ const { runBrain } = await import('./brain.js');
263
+ process.exit(await runBrain(cliArgs.slice(1)));
264
+ }
265
+ // 'upload' is a legacy alias for 'brain upload' — kept for backward compatibility
266
+ if (cliArgs[0] === 'upload') {
267
+ const { runBrain } = await import('./brain.js');
268
+ process.exit(await runBrain(['upload', ...cliArgs.slice(1)]));
269
+ }
246
270
  if (cliArgs[0] === 'start') {
247
271
  const write = (msg) => process.stderr.write(msg + '\n');
248
272
  const ok = (msg) => write(` \x1b[32m✓\x1b[0m ${msg}`);
@@ -348,7 +372,10 @@ export async function cliMain(cliArgs = process.argv.slice(2)) {
348
372
  const showPrompts = cliArgs.includes('--show-prompts');
349
373
  const json = cliArgs.includes('--json');
350
374
  if (target === 'claude') {
351
- const { setupClaude } = await import('./setup.js');
375
+ // ── Interactive prompts first before any heavyweight imports ──
376
+ // Deferring import('./setup.js') until after all readline questions prevents
377
+ // the Node SQLite ExperimentalWarning (emitted when node:sqlite is first
378
+ // imported) from splitting the prompt output mid-line. (#1694)
352
379
  let showStatusLine = true;
353
380
  if (!dryRun && process.stdin.isTTY && process.stderr.isTTY) {
354
381
  const rl = createInterface({ input: process.stdin, output: process.stderr });
@@ -376,6 +403,24 @@ export async function cliMain(cliArgs = process.argv.slice(2)) {
376
403
  rl2.close();
377
404
  }
378
405
  }
406
+ // Prompt for auto-compact if not already configured
407
+ const latestConfig = readGmtrConfig();
408
+ const existingAutoCompact = latestConfig?.auto_compact;
409
+ if (existingAutoCompact?.auto === undefined && !dryRun && process.stdin.isTTY && process.stderr.isTTY) {
410
+ process.stderr.write(' grāmatr session continuity: saves full context every 15 turns — tasks, git state,\n');
411
+ process.stderr.write(' recent work. Restores automatically after /clear so nothing is lost.\n');
412
+ const rl3 = createInterface({ input: process.stdin, output: process.stderr });
413
+ try {
414
+ const compactAnswer = await rl3.question(' Enable session continuity? [Y/n] ');
415
+ const enableAutoCompact = compactAnswer.trim().toLowerCase() !== 'n';
416
+ writeGmtrConfig({ ...latestConfig, auto_compact: { auto: enableAutoCompact, every_turns: 15, remind_every: 5 } });
417
+ }
418
+ finally {
419
+ rl3.close();
420
+ }
421
+ }
422
+ // All prompts done — now safe to import setup.js (triggers node:sqlite import)
423
+ const { setupClaude } = await import('./setup.js');
379
424
  setupClaude(dryRun, cleanInstall, showPrompts, showStatusLine);
380
425
  return;
381
426
  }
@@ -511,6 +556,59 @@ export async function cliMain(cliArgs = process.argv.slice(2)) {
511
556
  process.stderr.write(' Supported: claude | codex | claude-desktop | chatgpt-desktop | gemini | cursor | windsurf | vscode | all | auto | web | clean-install | verify\n');
512
557
  process.exit(1);
513
558
  }
559
+ // ── --mode flag: set initial privilege mode before starting the server ──
560
+ // Usage: gramatr-mcp --mode admin
561
+ // Sets the session's privilege mode at startup. Session-scoped only — resets on restart.
562
+ {
563
+ const modeIdx = cliArgs.indexOf('--mode');
564
+ if (modeIdx !== -1) {
565
+ const modeValue = cliArgs[modeIdx + 1];
566
+ const { isValidMode, setCurrentMode, PRIVILEGE_MODES } = await import('../proxy/tool-privilege.js');
567
+ if (!modeValue || !isValidMode(modeValue)) {
568
+ const valid = PRIVILEGE_MODES.join(' | ');
569
+ process.stderr.write(`[gramatr-mcp] Invalid --mode value: "${String(modeValue)}". Must be one of: ${valid}\n`);
570
+ process.exit(1);
571
+ return;
572
+ }
573
+ setCurrentMode(modeValue);
574
+ process.stderr.write(`[gramatr-mcp] Privilege mode set to: ${modeValue}\n`);
575
+ }
576
+ }
577
+ // ── Unknown subcommand guard (#1696) ──
578
+ // If the first positional arg looks like a subcommand (no leading '-') but
579
+ // didn't match any handler above, reject it with a helpful error. Without this
580
+ // guard, typos silently fall through and start the MCP server.
581
+ if (cliArgs[0] && !cliArgs[0].startsWith('-')) {
582
+ const KNOWN_SUBCOMMANDS = [
583
+ 'hook', 'statusline', 'daemon', 'admin', 'brain', 'start',
584
+ 'login', 'add-api-key', 'logout', 'clear-creds', 'build-mcpb', 'setup',
585
+ ];
586
+ const typed = cliArgs[0];
587
+ process.stderr.write(`[gramatr-mcp] Unknown subcommand: ${typed}\n`);
588
+ // Inline Levenshtein distance for "did you mean?" suggestions (no dependency needed)
589
+ function levenshtein(a, b) {
590
+ const m = a.length;
591
+ const n = b.length;
592
+ const dp = Array.from({ length: m + 1 }, (_, i) => Array.from({ length: n + 1 }, (_, j) => (i === 0 ? j : j === 0 ? i : 0)));
593
+ for (let i = 1; i <= m; i++) {
594
+ for (let j = 1; j <= n; j++) {
595
+ dp[i][j] = a[i - 1] === b[j - 1]
596
+ ? dp[i - 1][j - 1]
597
+ : 1 + Math.min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]);
598
+ }
599
+ }
600
+ return dp[m][n];
601
+ }
602
+ const suggestion = KNOWN_SUBCOMMANDS
603
+ .map((cmd) => ({ cmd, dist: levenshtein(typed, cmd) }))
604
+ .filter(({ dist }) => dist <= 2)
605
+ .sort((a, b) => a.dist - b.dist)[0];
606
+ if (suggestion) {
607
+ process.stderr.write(` Did you mean: gramatr-mcp ${suggestion.cmd}?\n`);
608
+ }
609
+ process.stderr.write(' Run: gramatr-mcp --help\n');
610
+ process.exit(1);
611
+ }
514
612
  // Auto-repair: if extraKnownMarketplaces.gramatr is missing from Claude settings,
515
613
  // the plugin silently fails to install. Re-run setup to fix it before starting.
516
614
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"gramatr-mcp.js","sourceRoot":"","sources":["../../src/bin/gramatr-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gramatr-mcp.js","sourceRoot":"","sources":["../../src/bin/gramatr-mcp.ts"],"names":[],"mappings":"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"}