@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.
- package/LICENSE +21 -0
- package/README.md +81 -0
- package/dist/core/console-logger.d.ts +30 -0
- package/dist/core/console-logger.d.ts.map +1 -0
- package/dist/core/console-logger.js +101 -0
- package/dist/core/console-logger.js.map +1 -0
- package/dist/core/file-logger.d.ts +40 -0
- package/dist/core/file-logger.d.ts.map +1 -0
- package/dist/core/file-logger.js +223 -0
- package/dist/core/file-logger.js.map +1 -0
- package/dist/core/mcp-server.d.ts +54 -0
- package/dist/core/mcp-server.d.ts.map +1 -0
- package/dist/core/mcp-server.js +295 -0
- package/dist/core/mcp-server.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +39 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +5 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/memory/memory.prompt.d.ts +32 -0
- package/dist/prompts/memory/memory.prompt.d.ts.map +1 -0
- package/dist/prompts/memory/memory.prompt.js +204 -0
- package/dist/prompts/memory/memory.prompt.js.map +1 -0
- package/dist/prompts/persona/persona.prompt.d.ts +27 -0
- package/dist/prompts/persona/persona.prompt.d.ts.map +1 -0
- package/dist/prompts/persona/persona.prompt.js +592 -0
- package/dist/prompts/persona/persona.prompt.js.map +1 -0
- package/dist/prompts/planning/planning.prompt.d.ts +56 -0
- package/dist/prompts/planning/planning.prompt.d.ts.map +1 -0
- package/dist/prompts/planning/planning.prompt.js +1016 -0
- package/dist/prompts/planning/planning.prompt.js.map +1 -0
- package/dist/prompts/prompt-registry.d.ts +25 -0
- package/dist/prompts/prompt-registry.d.ts.map +1 -0
- package/dist/prompts/prompt-registry.js +68 -0
- package/dist/prompts/prompt-registry.js.map +1 -0
- package/dist/prompts/thinking/thinking.prompt.d.ts +29 -0
- package/dist/prompts/thinking/thinking.prompt.d.ts.map +1 -0
- package/dist/prompts/thinking/thinking.prompt.js +171 -0
- package/dist/prompts/thinking/thinking.prompt.js.map +1 -0
- package/dist/services/UpdateService.d.ts +29 -0
- package/dist/services/UpdateService.d.ts.map +1 -0
- package/dist/services/UpdateService.js +132 -0
- package/dist/services/UpdateService.js.map +1 -0
- package/dist/services/plan-watcher.service.d.ts +143 -0
- package/dist/services/plan-watcher.service.d.ts.map +1 -0
- package/dist/services/plan-watcher.service.js +914 -0
- package/dist/services/plan-watcher.service.js.map +1 -0
- package/dist/storage/local-filesystem-adapter.d.ts +39 -0
- package/dist/storage/local-filesystem-adapter.d.ts.map +1 -0
- package/dist/storage/local-filesystem-adapter.js +208 -0
- package/dist/storage/local-filesystem-adapter.js.map +1 -0
- package/dist/storage/storage-path-builder.d.ts +14 -0
- package/dist/storage/storage-path-builder.d.ts.map +1 -0
- package/dist/storage/storage-path-builder.js +43 -0
- package/dist/storage/storage-path-builder.js.map +1 -0
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +12 -0
- package/dist/test-setup.js.map +1 -0
- package/dist/tools/analyse-request/analyse-request.tool.d.ts +8 -0
- package/dist/tools/analyse-request/analyse-request.tool.d.ts.map +1 -0
- package/dist/tools/analyse-request/analyse-request.tool.js +120 -0
- package/dist/tools/analyse-request/analyse-request.tool.js.map +1 -0
- package/dist/tools/index.d.ts +69 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +24 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/memory/memory.tool.d.ts +15 -0
- package/dist/tools/memory/memory.tool.d.ts.map +1 -0
- package/dist/tools/memory/memory.tool.js +110 -0
- package/dist/tools/memory/memory.tool.js.map +1 -0
- package/dist/tools/persona/as.tool.d.ts +25 -0
- package/dist/tools/persona/as.tool.d.ts.map +1 -0
- package/dist/tools/persona/as.tool.js +294 -0
- package/dist/tools/persona/as.tool.js.map +1 -0
- package/dist/tools/persona/persona.tool.d.ts +8 -0
- package/dist/tools/persona/persona.tool.d.ts.map +1 -0
- package/dist/tools/persona/persona.tool.js +193 -0
- package/dist/tools/persona/persona.tool.js.map +1 -0
- package/dist/tools/plan/plan.tool.d.ts +18 -0
- package/dist/tools/plan/plan.tool.d.ts.map +1 -0
- package/dist/tools/plan/plan.tool.js +643 -0
- package/dist/tools/plan/plan.tool.js.map +1 -0
- package/dist/tools/strategy/strategy.tool.d.ts +13 -0
- package/dist/tools/strategy/strategy.tool.d.ts.map +1 -0
- package/dist/tools/strategy/strategy.tool.js +199 -0
- package/dist/tools/strategy/strategy.tool.js.map +1 -0
- package/dist/tools/thinking/thinking.tool.d.ts +13 -0
- package/dist/tools/thinking/thinking.tool.d.ts.map +1 -0
- package/dist/tools/thinking/thinking.tool.js +226 -0
- package/dist/tools/thinking/thinking.tool.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +20 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +61 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/update/update.tool.d.ts +15 -0
- package/dist/tools/update/update.tool.d.ts.map +1 -0
- package/dist/tools/update/update.tool.js +86 -0
- package/dist/tools/update/update.tool.js.map +1 -0
- package/dist/tools/validate-response/validate-response.tool.d.ts +13 -0
- package/dist/tools/validate-response/validate-response.tool.d.ts.map +1 -0
- package/dist/tools/validate-response/validate-response.tool.js +142 -0
- package/dist/tools/validate-response/validate-response.tool.js.map +1 -0
- package/dist/types/request-context.d.ts +7 -0
- package/dist/types/request-context.d.ts.map +1 -0
- package/dist/types/request-context.js +7 -0
- package/dist/types/request-context.js.map +1 -0
- 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"}
|