@magic-ingredients/tiny-brain-local 0.3.10

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 (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -0
  3. package/dist/core/console-logger.d.ts +30 -0
  4. package/dist/core/console-logger.d.ts.map +1 -0
  5. package/dist/core/console-logger.js +101 -0
  6. package/dist/core/console-logger.js.map +1 -0
  7. package/dist/core/file-logger.d.ts +40 -0
  8. package/dist/core/file-logger.d.ts.map +1 -0
  9. package/dist/core/file-logger.js +223 -0
  10. package/dist/core/file-logger.js.map +1 -0
  11. package/dist/core/mcp-server.d.ts +54 -0
  12. package/dist/core/mcp-server.d.ts.map +1 -0
  13. package/dist/core/mcp-server.js +295 -0
  14. package/dist/core/mcp-server.js.map +1 -0
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +37 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/prompts/index.d.ts +39 -0
  20. package/dist/prompts/index.d.ts.map +1 -0
  21. package/dist/prompts/index.js +5 -0
  22. package/dist/prompts/index.js.map +1 -0
  23. package/dist/prompts/memory/memory.prompt.d.ts +32 -0
  24. package/dist/prompts/memory/memory.prompt.d.ts.map +1 -0
  25. package/dist/prompts/memory/memory.prompt.js +204 -0
  26. package/dist/prompts/memory/memory.prompt.js.map +1 -0
  27. package/dist/prompts/persona/persona.prompt.d.ts +27 -0
  28. package/dist/prompts/persona/persona.prompt.d.ts.map +1 -0
  29. package/dist/prompts/persona/persona.prompt.js +592 -0
  30. package/dist/prompts/persona/persona.prompt.js.map +1 -0
  31. package/dist/prompts/planning/planning.prompt.d.ts +56 -0
  32. package/dist/prompts/planning/planning.prompt.d.ts.map +1 -0
  33. package/dist/prompts/planning/planning.prompt.js +1016 -0
  34. package/dist/prompts/planning/planning.prompt.js.map +1 -0
  35. package/dist/prompts/prompt-registry.d.ts +25 -0
  36. package/dist/prompts/prompt-registry.d.ts.map +1 -0
  37. package/dist/prompts/prompt-registry.js +68 -0
  38. package/dist/prompts/prompt-registry.js.map +1 -0
  39. package/dist/prompts/thinking/thinking.prompt.d.ts +29 -0
  40. package/dist/prompts/thinking/thinking.prompt.d.ts.map +1 -0
  41. package/dist/prompts/thinking/thinking.prompt.js +171 -0
  42. package/dist/prompts/thinking/thinking.prompt.js.map +1 -0
  43. package/dist/services/UpdateService.d.ts +29 -0
  44. package/dist/services/UpdateService.d.ts.map +1 -0
  45. package/dist/services/UpdateService.js +132 -0
  46. package/dist/services/UpdateService.js.map +1 -0
  47. package/dist/services/plan-watcher.service.d.ts +143 -0
  48. package/dist/services/plan-watcher.service.d.ts.map +1 -0
  49. package/dist/services/plan-watcher.service.js +914 -0
  50. package/dist/services/plan-watcher.service.js.map +1 -0
  51. package/dist/storage/local-filesystem-adapter.d.ts +39 -0
  52. package/dist/storage/local-filesystem-adapter.d.ts.map +1 -0
  53. package/dist/storage/local-filesystem-adapter.js +208 -0
  54. package/dist/storage/local-filesystem-adapter.js.map +1 -0
  55. package/dist/storage/storage-path-builder.d.ts +14 -0
  56. package/dist/storage/storage-path-builder.d.ts.map +1 -0
  57. package/dist/storage/storage-path-builder.js +43 -0
  58. package/dist/storage/storage-path-builder.js.map +1 -0
  59. package/dist/test-setup.d.ts +2 -0
  60. package/dist/test-setup.d.ts.map +1 -0
  61. package/dist/test-setup.js +12 -0
  62. package/dist/test-setup.js.map +1 -0
  63. package/dist/tools/analyse-request/analyse-request.tool.d.ts +8 -0
  64. package/dist/tools/analyse-request/analyse-request.tool.d.ts.map +1 -0
  65. package/dist/tools/analyse-request/analyse-request.tool.js +120 -0
  66. package/dist/tools/analyse-request/analyse-request.tool.js.map +1 -0
  67. package/dist/tools/index.d.ts +69 -0
  68. package/dist/tools/index.d.ts.map +1 -0
  69. package/dist/tools/index.js +24 -0
  70. package/dist/tools/index.js.map +1 -0
  71. package/dist/tools/memory/memory.tool.d.ts +15 -0
  72. package/dist/tools/memory/memory.tool.d.ts.map +1 -0
  73. package/dist/tools/memory/memory.tool.js +110 -0
  74. package/dist/tools/memory/memory.tool.js.map +1 -0
  75. package/dist/tools/persona/as.tool.d.ts +25 -0
  76. package/dist/tools/persona/as.tool.d.ts.map +1 -0
  77. package/dist/tools/persona/as.tool.js +294 -0
  78. package/dist/tools/persona/as.tool.js.map +1 -0
  79. package/dist/tools/persona/persona.tool.d.ts +8 -0
  80. package/dist/tools/persona/persona.tool.d.ts.map +1 -0
  81. package/dist/tools/persona/persona.tool.js +193 -0
  82. package/dist/tools/persona/persona.tool.js.map +1 -0
  83. package/dist/tools/plan/plan.tool.d.ts +18 -0
  84. package/dist/tools/plan/plan.tool.d.ts.map +1 -0
  85. package/dist/tools/plan/plan.tool.js +643 -0
  86. package/dist/tools/plan/plan.tool.js.map +1 -0
  87. package/dist/tools/strategy/strategy.tool.d.ts +13 -0
  88. package/dist/tools/strategy/strategy.tool.d.ts.map +1 -0
  89. package/dist/tools/strategy/strategy.tool.js +199 -0
  90. package/dist/tools/strategy/strategy.tool.js.map +1 -0
  91. package/dist/tools/thinking/thinking.tool.d.ts +13 -0
  92. package/dist/tools/thinking/thinking.tool.d.ts.map +1 -0
  93. package/dist/tools/thinking/thinking.tool.js +226 -0
  94. package/dist/tools/thinking/thinking.tool.js.map +1 -0
  95. package/dist/tools/tool-registry.d.ts +20 -0
  96. package/dist/tools/tool-registry.d.ts.map +1 -0
  97. package/dist/tools/tool-registry.js +61 -0
  98. package/dist/tools/tool-registry.js.map +1 -0
  99. package/dist/tools/update/update.tool.d.ts +15 -0
  100. package/dist/tools/update/update.tool.d.ts.map +1 -0
  101. package/dist/tools/update/update.tool.js +86 -0
  102. package/dist/tools/update/update.tool.js.map +1 -0
  103. package/dist/tools/validate-response/validate-response.tool.d.ts +13 -0
  104. package/dist/tools/validate-response/validate-response.tool.d.ts.map +1 -0
  105. package/dist/tools/validate-response/validate-response.tool.js +142 -0
  106. package/dist/tools/validate-response/validate-response.tool.js.map +1 -0
  107. package/dist/types/request-context.d.ts +7 -0
  108. package/dist/types/request-context.d.ts.map +1 -0
  109. package/dist/types/request-context.js +7 -0
  110. package/dist/types/request-context.js.map +1 -0
  111. package/package.json +77 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Magic Ingredients
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,81 @@
1
+ # @magic-ingredients/tiny-brain-local
2
+
3
+ Local MCP server implementation for Tiny Brain AI assistant.
4
+
5
+ ## Overview
6
+
7
+ This package provides a local MCP (Model Context Protocol) server that runs on your machine using stdio transport. It uses the filesystem for storage and includes all the tools and prompts needed to run Tiny Brain locally.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install -g @magic-ingredients/tiny-brain-local
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ### With Claude Desktop
18
+
19
+ Add to your Claude Desktop config:
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "tiny-brain": {
25
+ "command": "npx",
26
+ "args": ["@magic-ingredients/tiny-brain-local"]
27
+ }
28
+ }
29
+ }
30
+ ```
31
+
32
+ ### Command Line
33
+
34
+ ```bash
35
+ tiny-brain
36
+ ```
37
+
38
+ ## Features
39
+
40
+ - **Personas**: Context-aware AI personalities
41
+ - **Memory**: Persistent knowledge storage
42
+ - **Planning**: Task management and tracking
43
+ - **Thinking**: Structured reasoning chains
44
+ - **Strategies**: Content generation strategies
45
+ - **Updates**: Auto-update checking
46
+
47
+ ## Storage
48
+
49
+ All data is stored locally in `~/.claude/tiny-brain/` directory.
50
+
51
+ ## Dependencies
52
+
53
+ - `@magic-ingredients/tiny-brain-core`: Core business logic
54
+ - `@modelcontextprotocol/sdk`: MCP protocol implementation
55
+ - `zod`: Schema validation
56
+
57
+ ## Development
58
+
59
+ ```bash
60
+ # Install dependencies
61
+ npm install
62
+
63
+ # Build
64
+ npm run build
65
+
66
+ # Run tests
67
+ npm test
68
+
69
+ # Development mode
70
+ npm run dev
71
+ ```
72
+
73
+ ## License
74
+
75
+ MIT
76
+
77
+ ## Links
78
+
79
+ - [GitHub Repository](https://github.com/magic-ingredients/tiny-brain)
80
+ - [Core Package](https://www.npmjs.com/package/@magic-ingredients/tiny-brain-core)
81
+ - [Documentation](https://github.com/magic-ingredients/tiny-brain#readme)
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Console Logger
3
+ *
4
+ * MCP-compliant console logger for local MCP server
5
+ * Implements RFC 5424 syslog severity levels
6
+ */
7
+ import type { Logger, LogLevel } from '@magic-ingredients/tiny-brain-core';
8
+ export declare class ConsoleLogger implements Logger {
9
+ private minLevel;
10
+ private context?;
11
+ private mcpNotificationHandler?;
12
+ constructor(minLevel?: LogLevel, context?: string);
13
+ setLogLevel(level: LogLevel): void;
14
+ getLogLevel(): LogLevel;
15
+ setMcpNotificationHandler(handler: (notification: any) => void): void;
16
+ private shouldLog;
17
+ private log;
18
+ debug(message: string, data?: any): void;
19
+ info(message: string, data?: any): void;
20
+ notice(message: string, data?: any): void;
21
+ warn(message: string, data?: any): void;
22
+ warning(message: string, data?: any): void;
23
+ error(message: string, error?: any): void;
24
+ critical(message: string, data?: any): void;
25
+ alert(message: string, data?: any): void;
26
+ emergency(message: string, data?: any): void;
27
+ child(context: string): Logger;
28
+ }
29
+ export declare function createConsoleLogger(minLevel?: LogLevel): Logger;
30
+ //# sourceMappingURL=console-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../src/core/console-logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE3E,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,sBAAsB,CAAC,CAA8B;gBAEjD,QAAQ,GAAE,QAAiB,EAAE,OAAO,CAAC,EAAE,MAAM;IAKzD,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAIlC,WAAW,IAAI,QAAQ;IAIvB,yBAAyB,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIrE,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,GAAG;IAoBX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIxC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIvC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIzC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIvC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI;IAIzC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIxC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI5C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAQ/B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAW/D"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Console Logger
3
+ *
4
+ * MCP-compliant console logger for local MCP server
5
+ * Implements RFC 5424 syslog severity levels
6
+ */
7
+ export class ConsoleLogger {
8
+ minLevel;
9
+ context;
10
+ mcpNotificationHandler;
11
+ constructor(minLevel = 'info', context) {
12
+ this.minLevel = minLevel;
13
+ this.context = context;
14
+ }
15
+ setLogLevel(level) {
16
+ this.minLevel = level;
17
+ }
18
+ getLogLevel() {
19
+ return this.minLevel;
20
+ }
21
+ setMcpNotificationHandler(handler) {
22
+ this.mcpNotificationHandler = handler;
23
+ }
24
+ shouldLog(level) {
25
+ const priorities = {
26
+ debug: 0,
27
+ info: 1,
28
+ notice: 2,
29
+ warning: 3,
30
+ error: 4,
31
+ critical: 5,
32
+ alert: 6,
33
+ emergency: 7,
34
+ };
35
+ return priorities[level] >= priorities[this.minLevel];
36
+ }
37
+ log(level, message, data) {
38
+ if (!this.shouldLog(level))
39
+ return;
40
+ // Send MCP notification if handler is set
41
+ if (this.mcpNotificationHandler) {
42
+ this.mcpNotificationHandler({
43
+ jsonrpc: '2.0',
44
+ method: 'notifications/message',
45
+ params: {
46
+ level,
47
+ logger: this.context,
48
+ data: { message, ...data },
49
+ },
50
+ });
51
+ }
52
+ // For local deployment, we don't log to console to avoid interference with stdio transport
53
+ // Logs are handled via MCP notifications to Claude Desktop
54
+ }
55
+ debug(message, data) {
56
+ this.log('debug', message, data);
57
+ }
58
+ info(message, data) {
59
+ this.log('info', message, data);
60
+ }
61
+ notice(message, data) {
62
+ this.log('notice', message, data);
63
+ }
64
+ warn(message, data) {
65
+ this.log('warning', message, data);
66
+ }
67
+ warning(message, data) {
68
+ this.log('warning', message, data);
69
+ }
70
+ error(message, error) {
71
+ this.log('error', message, error);
72
+ }
73
+ critical(message, data) {
74
+ this.log('critical', message, data);
75
+ }
76
+ alert(message, data) {
77
+ this.log('alert', message, data);
78
+ }
79
+ emergency(message, data) {
80
+ this.log('emergency', message, data);
81
+ }
82
+ child(context) {
83
+ const childContext = this.context ? `${this.context}:${context}` : context;
84
+ const childLogger = new ConsoleLogger(this.minLevel, childContext);
85
+ if (this.mcpNotificationHandler) {
86
+ childLogger.setMcpNotificationHandler(this.mcpNotificationHandler);
87
+ }
88
+ return childLogger;
89
+ }
90
+ }
91
+ export function createConsoleLogger(minLevel) {
92
+ const envLogLevel = process.env.LOG_LEVEL?.toLowerCase();
93
+ const validLogLevels = [
94
+ 'debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency'
95
+ ];
96
+ const effectiveLevel = (envLogLevel && validLogLevels.includes(envLogLevel))
97
+ ? envLogLevel
98
+ : (minLevel || 'info');
99
+ return new ConsoleLogger(effectiveLevel);
100
+ }
101
+ //# sourceMappingURL=console-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../src/core/console-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * File-based logger for MCP server
3
+ *
4
+ * Since MCP servers communicate via stdio, we cannot use console logging.
5
+ * This logger writes debug information to a file instead.
6
+ */
7
+ import type { Logger, LogLevel } from '@magic-ingredients/tiny-brain-core';
8
+ export interface FileLoggerConfig {
9
+ logFilePath?: string;
10
+ maxFileSize?: number;
11
+ maxRotatedFiles?: number;
12
+ appendMode?: boolean;
13
+ logLevel?: LogLevel;
14
+ enabled?: boolean;
15
+ }
16
+ export declare class FileLogger implements Logger {
17
+ private config;
18
+ private fileStream?;
19
+ private currentFileSize;
20
+ constructor(config?: FileLoggerConfig);
21
+ setLogLevel(level: LogLevel): void;
22
+ getLogLevel(): LogLevel;
23
+ setMcpNotificationHandler(_handler: (notification: any) => void): void;
24
+ private initialize;
25
+ private rotateLogFile;
26
+ private shouldLog;
27
+ private writeLog;
28
+ debug(message: string, data?: any): void;
29
+ info(message: string, data?: any): void;
30
+ notice(message: string, data?: any): void;
31
+ warn(message: string, data?: any): void;
32
+ warning(message: string, data?: any): void;
33
+ error(message: string, error?: any): void;
34
+ critical(message: string, data?: any): void;
35
+ alert(message: string, data?: any): void;
36
+ emergency(message: string, data?: any): void;
37
+ child(context: string): Logger;
38
+ close(): Promise<void>;
39
+ }
40
+ //# sourceMappingURL=file-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-logger.d.ts","sourceRoot":"","sources":["../../src/core/file-logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAaD,qBAAa,UAAW,YAAW,MAAM;IACvC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,eAAe,CAAa;gBAExB,MAAM,GAAE,gBAAqB;IAkBzC,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAIlC,WAAW,IAAI,QAAQ;IAIvB,yBAAyB,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAItE,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,QAAQ;IAiChB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIxC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIvC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIzC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIvC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI;IAUzC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAIxC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAI5C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * File-based logger for MCP server
3
+ *
4
+ * Since MCP servers communicate via stdio, we cannot use console logging.
5
+ * This logger writes debug information to a file instead.
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ const LOG_LEVELS = {
10
+ debug: 0,
11
+ info: 1,
12
+ notice: 2,
13
+ warning: 3,
14
+ error: 4,
15
+ critical: 5,
16
+ alert: 6,
17
+ emergency: 7,
18
+ };
19
+ export class FileLogger {
20
+ config;
21
+ fileStream;
22
+ currentFileSize = 0;
23
+ constructor(config = {}) {
24
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
25
+ const defaultLogPath = path.join(homeDir, '.tiny-brain', 'debug.log');
26
+ this.config = {
27
+ logFilePath: config.logFilePath || defaultLogPath,
28
+ maxFileSize: config.maxFileSize || 10 * 1024 * 1024,
29
+ maxRotatedFiles: config.maxRotatedFiles || 3,
30
+ appendMode: config.appendMode !== false,
31
+ logLevel: config.logLevel || 'debug',
32
+ enabled: config.enabled !== false,
33
+ };
34
+ if (this.config.enabled) {
35
+ this.initialize();
36
+ }
37
+ }
38
+ setLogLevel(level) {
39
+ this.config.logLevel = level;
40
+ }
41
+ getLogLevel() {
42
+ return this.config.logLevel;
43
+ }
44
+ setMcpNotificationHandler(_handler) {
45
+ // File logger doesn't use MCP notifications
46
+ }
47
+ initialize() {
48
+ try {
49
+ const logDir = path.dirname(this.config.logFilePath);
50
+ if (!fs.existsSync(logDir)) {
51
+ fs.mkdirSync(logDir, { recursive: true });
52
+ }
53
+ if (fs.existsSync(this.config.logFilePath)) {
54
+ const stats = fs.statSync(this.config.logFilePath);
55
+ this.currentFileSize = stats.size;
56
+ if (this.currentFileSize >= this.config.maxFileSize) {
57
+ this.rotateLogFile();
58
+ this.currentFileSize = 0;
59
+ }
60
+ }
61
+ this.fileStream = fs.createWriteStream(this.config.logFilePath, {
62
+ flags: this.config.appendMode ? 'a' : 'w',
63
+ });
64
+ this.writeLog('info', 'FileLogger initialized', {
65
+ logFilePath: this.config.logFilePath,
66
+ pid: process.pid,
67
+ });
68
+ }
69
+ catch {
70
+ // Fail silently
71
+ }
72
+ }
73
+ rotateLogFile() {
74
+ try {
75
+ for (let i = this.config.maxRotatedFiles - 1; i >= 0; i--) {
76
+ const oldPath = i === 0 ? this.config.logFilePath : `${this.config.logFilePath}.${i}`;
77
+ const newPath = `${this.config.logFilePath}.${i + 1}`;
78
+ if (fs.existsSync(oldPath)) {
79
+ if (i === this.config.maxRotatedFiles - 1) {
80
+ fs.unlinkSync(oldPath);
81
+ }
82
+ else {
83
+ fs.renameSync(oldPath, newPath);
84
+ }
85
+ }
86
+ }
87
+ }
88
+ catch {
89
+ // Fail silently
90
+ }
91
+ }
92
+ shouldLog(level) {
93
+ if (!this.config.enabled || !this.fileStream) {
94
+ return false;
95
+ }
96
+ return LOG_LEVELS[level] >= LOG_LEVELS[this.config.logLevel];
97
+ }
98
+ writeLog(level, message, data) {
99
+ if (!this.shouldLog(level))
100
+ return;
101
+ try {
102
+ const timestamp = new Date().toISOString();
103
+ const logEntry = {
104
+ timestamp,
105
+ level: level.toUpperCase(),
106
+ pid: process.pid,
107
+ message,
108
+ ...(data && { data }),
109
+ };
110
+ const logLine = JSON.stringify(logEntry) + '\n';
111
+ const bytes = Buffer.byteLength(logLine);
112
+ if (this.currentFileSize + bytes > this.config.maxFileSize) {
113
+ this.fileStream?.end();
114
+ this.rotateLogFile();
115
+ this.currentFileSize = 0;
116
+ this.fileStream = fs.createWriteStream(this.config.logFilePath, {
117
+ flags: 'a',
118
+ });
119
+ }
120
+ this.fileStream?.write(logLine);
121
+ this.currentFileSize += bytes;
122
+ }
123
+ catch {
124
+ // Fail silently
125
+ }
126
+ }
127
+ debug(message, data) {
128
+ this.writeLog('debug', message, data);
129
+ }
130
+ info(message, data) {
131
+ this.writeLog('info', message, data);
132
+ }
133
+ notice(message, data) {
134
+ this.writeLog('notice', message, data);
135
+ }
136
+ warn(message, data) {
137
+ this.writeLog('warning', message, data);
138
+ }
139
+ warning(message, data) {
140
+ this.writeLog('warning', message, data);
141
+ }
142
+ error(message, error) {
143
+ const errorData = error instanceof Error ? {
144
+ message: error.message,
145
+ stack: error.stack,
146
+ name: error.name,
147
+ } : error;
148
+ this.writeLog('error', message, errorData);
149
+ }
150
+ critical(message, data) {
151
+ this.writeLog('critical', message, data);
152
+ }
153
+ alert(message, data) {
154
+ this.writeLog('alert', message, data);
155
+ }
156
+ emergency(message, data) {
157
+ this.writeLog('emergency', message, data);
158
+ }
159
+ child(context) {
160
+ return new ContextualFileLogger(this, context);
161
+ }
162
+ async close() {
163
+ return new Promise((resolve) => {
164
+ if (this.fileStream) {
165
+ this.fileStream.end(() => {
166
+ this.fileStream = undefined;
167
+ resolve();
168
+ });
169
+ }
170
+ else {
171
+ resolve();
172
+ }
173
+ });
174
+ }
175
+ }
176
+ class ContextualFileLogger {
177
+ parent;
178
+ context;
179
+ constructor(parent, context) {
180
+ this.parent = parent;
181
+ this.context = context;
182
+ }
183
+ setLogLevel(level) {
184
+ this.parent.setLogLevel(level);
185
+ }
186
+ getLogLevel() {
187
+ return this.parent.getLogLevel();
188
+ }
189
+ setMcpNotificationHandler(handler) {
190
+ this.parent.setMcpNotificationHandler(handler);
191
+ }
192
+ debug(message, data) {
193
+ this.parent.debug(`[${this.context}] ${message}`, data);
194
+ }
195
+ info(message, data) {
196
+ this.parent.info(`[${this.context}] ${message}`, data);
197
+ }
198
+ notice(message, data) {
199
+ this.parent.notice(`[${this.context}] ${message}`, data);
200
+ }
201
+ warn(message, data) {
202
+ this.parent.warn(`[${this.context}] ${message}`, data);
203
+ }
204
+ warning(message, data) {
205
+ this.parent.warning(`[${this.context}] ${message}`, data);
206
+ }
207
+ error(message, error) {
208
+ this.parent.error(`[${this.context}] ${message}`, error);
209
+ }
210
+ critical(message, data) {
211
+ this.parent.critical(`[${this.context}] ${message}`, data);
212
+ }
213
+ alert(message, data) {
214
+ this.parent.alert(`[${this.context}] ${message}`, data);
215
+ }
216
+ emergency(message, data) {
217
+ this.parent.emergency(`[${this.context}] ${message}`, data);
218
+ }
219
+ child(context) {
220
+ return this.parent.child(`${this.context}:${context}`);
221
+ }
222
+ }
223
+ //# sourceMappingURL=file-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-logger.js","sourceRoot":"","sources":["../../src/core/file-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Local MCP Server
3
+ *
4
+ * Simplified MCP server for local execution without deployment complexity
5
+ */
6
+ import type { LogLevel } from '@magic-ingredients/tiny-brain-core';
7
+ /**
8
+ * Configuration for local MCP server
9
+ */
10
+ export interface MCPConfig {
11
+ name?: string;
12
+ version?: string;
13
+ dataDir?: string;
14
+ logLevel?: LogLevel;
15
+ watchAutoOpen?: boolean;
16
+ }
17
+ /**
18
+ * MCP Server for local execution
19
+ */
20
+ export declare class MCPServer {
21
+ private server;
22
+ private storage;
23
+ private logger;
24
+ private config;
25
+ private sessionId;
26
+ private activePersona;
27
+ private userId;
28
+ private personaChangeListeners;
29
+ private instanceId;
30
+ constructor(config?: MCPConfig);
31
+ private setupHandlers;
32
+ /**
33
+ * Get server configuration
34
+ */
35
+ getConfig(): MCPConfig;
36
+ /**
37
+ * Initialize the server
38
+ */
39
+ initialize(): Promise<void>;
40
+ /**
41
+ * Connect to transport
42
+ */
43
+ connect(transport: any): Promise<void>;
44
+ /**
45
+ * Shutdown the server
46
+ */
47
+ shutdown(): Promise<void>;
48
+ private handleListTools;
49
+ private handleCallTool;
50
+ private handleListPrompts;
51
+ private handleGetPrompt;
52
+ private handleSetLogLevel;
53
+ }
54
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/core/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH,OAAO,KAAK,EAA4B,QAAQ,EAAkC,MAAM,oCAAoC,CAAC;AAM7H;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,sBAAsB,CAA0D;IACxF,OAAO,CAAC,UAAU,CAA6E;gBAEnF,MAAM,GAAE,SAAc;IA2ClC,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,SAAS,IAAI,SAAS;IAItB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CjC;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAMjB,eAAe;YAMf,cAAc;YAwFd,iBAAiB;YAMjB,eAAe;YAoEf,iBAAiB;CAQhC"}