musonda 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/IMPLEMENTATION.md +432 -0
- package/README.md +119 -0
- package/dist/agent/harness.d.ts +25 -0
- package/dist/agent/harness.js +215 -0
- package/dist/agent/harness.js.map +1 -0
- package/dist/agent/openaiResponsesClient.d.ts +35 -0
- package/dist/agent/openaiResponsesClient.js +250 -0
- package/dist/agent/openaiResponsesClient.js.map +1 -0
- package/dist/agent/systemPrompt.d.ts +9 -0
- package/dist/agent/systemPrompt.js +100 -0
- package/dist/agent/systemPrompt.js.map +1 -0
- package/dist/agent/types.d.ts +53 -0
- package/dist/agent/types.js +2 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/cli/commands/chat.d.ts +6 -0
- package/dist/cli/commands/chat.js +8 -0
- package/dist/cli/commands/chat.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +4 -0
- package/dist/cli/commands/doctor.js +336 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/gateway.d.ts +20 -0
- package/dist/cli/commands/gateway.js +135 -0
- package/dist/cli/commands/gateway.js.map +1 -0
- package/dist/cli/commands/help.d.ts +4 -0
- package/dist/cli/commands/help.js +159 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/plugins.d.ts +18 -0
- package/dist/cli/commands/plugins.js +250 -0
- package/dist/cli/commands/plugins.js.map +1 -0
- package/dist/cli/commands/service.d.ts +16 -0
- package/dist/cli/commands/service.js +136 -0
- package/dist/cli/commands/service.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +4 -0
- package/dist/cli/commands/setup.js +8 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/status.d.ts +4 -0
- package/dist/cli/commands/status.js +73 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/update.d.ts +22 -0
- package/dist/cli/commands/update.js +226 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/daemon.d.ts +33 -0
- package/dist/cli/daemon.js +208 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/interactiveMenu.d.ts +5 -0
- package/dist/cli/interactiveMenu.js +225 -0
- package/dist/cli/interactiveMenu.js.map +1 -0
- package/dist/cli/musondaCli.d.ts +30 -0
- package/dist/cli/musondaCli.js +269 -0
- package/dist/cli/musondaCli.js.map +1 -0
- package/dist/cli/ui.d.ts +49 -0
- package/dist/cli/ui.js +90 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.js +315 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/loader.d.ts +12 -0
- package/dist/config/loader.js +217 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/paths.d.ts +11 -0
- package/dist/config/paths.js +18 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/types.d.ts +246 -0
- package/dist/config/types.js +155 -0
- package/dist/config/types.js.map +1 -0
- package/dist/gateway/channels/cli.d.ts +37 -0
- package/dist/gateway/channels/cli.js +298 -0
- package/dist/gateway/channels/cli.js.map +1 -0
- package/dist/gateway/channels/discord.d.ts +18 -0
- package/dist/gateway/channels/discord.js +419 -0
- package/dist/gateway/channels/discord.js.map +1 -0
- package/dist/gateway/channels/slack.d.ts +26 -0
- package/dist/gateway/channels/slack.js +470 -0
- package/dist/gateway/channels/slack.js.map +1 -0
- package/dist/gateway/channels/webhook.d.ts +18 -0
- package/dist/gateway/channels/webhook.js +49 -0
- package/dist/gateway/channels/webhook.js.map +1 -0
- package/dist/gateway/http.d.ts +33 -0
- package/dist/gateway/http.js +605 -0
- package/dist/gateway/http.js.map +1 -0
- package/dist/gateway/server.d.ts +38 -0
- package/dist/gateway/server.js +233 -0
- package/dist/gateway/server.js.map +1 -0
- package/dist/gateway/types.d.ts +28 -0
- package/dist/gateway/types.js +2 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/memoryManager.d.ts +22 -0
- package/dist/memory/memoryManager.js +200 -0
- package/dist/memory/memoryManager.js.map +1 -0
- package/dist/memory/storage.d.ts +24 -0
- package/dist/memory/storage.js +187 -0
- package/dist/memory/storage.js.map +1 -0
- package/dist/memory/types.d.ts +43 -0
- package/dist/memory/types.js +2 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/plugins/manifest.d.ts +23 -0
- package/dist/plugins/manifest.js +185 -0
- package/dist/plugins/manifest.js.map +1 -0
- package/dist/plugins/mcp/mcpBridge.d.ts +31 -0
- package/dist/plugins/mcp/mcpBridge.js +115 -0
- package/dist/plugins/mcp/mcpBridge.js.map +1 -0
- package/dist/plugins/mcp/mcpClient.d.ts +43 -0
- package/dist/plugins/mcp/mcpClient.js +309 -0
- package/dist/plugins/mcp/mcpClient.js.map +1 -0
- package/dist/plugins/mcp/mcpConfig.d.ts +34 -0
- package/dist/plugins/mcp/mcpConfig.js +326 -0
- package/dist/plugins/mcp/mcpConfig.js.map +1 -0
- package/dist/plugins/mcp/types.d.ts +48 -0
- package/dist/plugins/mcp/types.js +2 -0
- package/dist/plugins/mcp/types.js.map +1 -0
- package/dist/plugins/pluginManager.d.ts +164 -0
- package/dist/plugins/pluginManager.js +1016 -0
- package/dist/plugins/pluginManager.js.map +1 -0
- package/dist/plugins/skills/frontmatterParser.d.ts +28 -0
- package/dist/plugins/skills/frontmatterParser.js +189 -0
- package/dist/plugins/skills/frontmatterParser.js.map +1 -0
- package/dist/plugins/skills/skillDiscovery.d.ts +15 -0
- package/dist/plugins/skills/skillDiscovery.js +148 -0
- package/dist/plugins/skills/skillDiscovery.js.map +1 -0
- package/dist/plugins/skills/skillTools.d.ts +8 -0
- package/dist/plugins/skills/skillTools.js +195 -0
- package/dist/plugins/skills/skillTools.js.map +1 -0
- package/dist/plugins/skills/types.d.ts +25 -0
- package/dist/plugins/skills/types.js +2 -0
- package/dist/plugins/skills/types.js.map +1 -0
- package/dist/plugins/types.d.ts +30 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/scheduler/scheduler.d.ts +25 -0
- package/dist/scheduler/scheduler.js +239 -0
- package/dist/scheduler/scheduler.js.map +1 -0
- package/dist/scheduler/types.d.ts +39 -0
- package/dist/scheduler/types.js +2 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/security/childProcessEnv.d.ts +5 -0
- package/dist/security/childProcessEnv.js +42 -0
- package/dist/security/childProcessEnv.js.map +1 -0
- package/dist/security/fileSandbox.d.ts +153 -0
- package/dist/security/fileSandbox.js +779 -0
- package/dist/security/fileSandbox.js.map +1 -0
- package/dist/service/index.d.ts +30 -0
- package/dist/service/index.js +41 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/systemd.d.ts +36 -0
- package/dist/service/systemd.js +409 -0
- package/dist/service/systemd.js.map +1 -0
- package/dist/service/types.d.ts +118 -0
- package/dist/service/types.js +6 -0
- package/dist/service/types.js.map +1 -0
- package/dist/tools/builtin/calcTools.d.ts +2 -0
- package/dist/tools/builtin/calcTools.js +51 -0
- package/dist/tools/builtin/calcTools.js.map +1 -0
- package/dist/tools/builtin/fileTools.d.ts +11 -0
- package/dist/tools/builtin/fileTools.js +352 -0
- package/dist/tools/builtin/fileTools.js.map +1 -0
- package/dist/tools/builtin/memoryTools.d.ts +4 -0
- package/dist/tools/builtin/memoryTools.js +123 -0
- package/dist/tools/builtin/memoryTools.js.map +1 -0
- package/dist/tools/builtin/noteTools.d.ts +4 -0
- package/dist/tools/builtin/noteTools.js +91 -0
- package/dist/tools/builtin/noteTools.js.map +1 -0
- package/dist/tools/builtin/pluginTools.d.ts +29 -0
- package/dist/tools/builtin/pluginTools.js +406 -0
- package/dist/tools/builtin/pluginTools.js.map +1 -0
- package/dist/tools/builtin/scheduleTools.d.ts +4 -0
- package/dist/tools/builtin/scheduleTools.js +156 -0
- package/dist/tools/builtin/scheduleTools.js.map +1 -0
- package/dist/tools/builtin/timeTools.d.ts +2 -0
- package/dist/tools/builtin/timeTools.js +41 -0
- package/dist/tools/builtin/timeTools.js.map +1 -0
- package/dist/tools/builtin/webTools.d.ts +12 -0
- package/dist/tools/builtin/webTools.js +325 -0
- package/dist/tools/builtin/webTools.js.map +1 -0
- package/dist/tools/registry.d.ts +15 -0
- package/dist/tools/registry.js +111 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +41 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/utils/logger.d.ts +29 -0
- package/dist/utils/logger.js +124 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/wizard/onboarding.d.ts +3 -0
- package/dist/wizard/onboarding.js +408 -0
- package/dist/wizard/onboarding.js.map +1 -0
- package/package.json +69 -0
- package/plugins/example-calc/mcp.json +11 -0
- package/plugins/example-calc/plugin.json +12 -0
- package/plugins/example-calc/server.mjs +92 -0
- package/plugins/example-calc/skills/math-assistant/SKILL.md +15 -0
- package/plugins/plugin-builder/plugin.json +12 -0
- package/plugins/plugin-builder/skills/create-plugin/SKILL.md +149 -0
- package/plugins/plugin-builder/skills/manage-plugins/SKILL.md +157 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { memoryStoreTool, memoryRecallTool, updateUserProfileTool } from './builtin/memoryTools.js';
|
|
2
|
+
import { currentTimeTool } from './builtin/timeTools.js';
|
|
3
|
+
import { calculateTool } from './builtin/calcTools.js';
|
|
4
|
+
import { webFetchTool, webSearchTool } from './builtin/webTools.js';
|
|
5
|
+
import { noteSaveTool, noteReadTool, noteListTool } from './builtin/noteTools.js';
|
|
6
|
+
import { scheduleCreateTool, scheduleListTool, scheduleCancelTool } from './builtin/scheduleTools.js';
|
|
7
|
+
import { fileReadTool, fileWriteTool, fileEditTool, fileAppendTool, fileListTool, fileDeleteTool, fileInfoTool, directoryCreateTool, fileSearchTool, fileGrepTool, } from './builtin/fileTools.js';
|
|
8
|
+
import { pluginCreateTool, pluginReloadTool, pluginListTool, pluginInstallTool, pluginRemoveTool, pluginFindTool, pluginInfoTool, } from './builtin/pluginTools.js';
|
|
9
|
+
import { logger } from '../utils/logger.js';
|
|
10
|
+
export class ToolRegistry {
|
|
11
|
+
tools = new Map();
|
|
12
|
+
constructor() {
|
|
13
|
+
this.registerDefaults();
|
|
14
|
+
}
|
|
15
|
+
registerDefaults() {
|
|
16
|
+
const defaults = [
|
|
17
|
+
memoryStoreTool,
|
|
18
|
+
memoryRecallTool,
|
|
19
|
+
updateUserProfileTool,
|
|
20
|
+
currentTimeTool,
|
|
21
|
+
calculateTool,
|
|
22
|
+
webFetchTool,
|
|
23
|
+
webSearchTool,
|
|
24
|
+
noteSaveTool,
|
|
25
|
+
noteReadTool,
|
|
26
|
+
noteListTool,
|
|
27
|
+
scheduleCreateTool,
|
|
28
|
+
scheduleListTool,
|
|
29
|
+
scheduleCancelTool,
|
|
30
|
+
fileReadTool,
|
|
31
|
+
fileWriteTool,
|
|
32
|
+
fileEditTool,
|
|
33
|
+
fileAppendTool,
|
|
34
|
+
fileListTool,
|
|
35
|
+
fileDeleteTool,
|
|
36
|
+
fileInfoTool,
|
|
37
|
+
directoryCreateTool,
|
|
38
|
+
fileSearchTool,
|
|
39
|
+
fileGrepTool,
|
|
40
|
+
pluginCreateTool,
|
|
41
|
+
pluginReloadTool,
|
|
42
|
+
pluginListTool,
|
|
43
|
+
pluginInstallTool,
|
|
44
|
+
pluginRemoveTool,
|
|
45
|
+
pluginFindTool,
|
|
46
|
+
pluginInfoTool,
|
|
47
|
+
];
|
|
48
|
+
for (const tool of defaults) {
|
|
49
|
+
this.register(tool);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
register(tool) {
|
|
53
|
+
this.tools.set(tool.name, tool);
|
|
54
|
+
}
|
|
55
|
+
unregister(name) {
|
|
56
|
+
return this.tools.delete(name);
|
|
57
|
+
}
|
|
58
|
+
get(name) {
|
|
59
|
+
return this.tools.get(name);
|
|
60
|
+
}
|
|
61
|
+
getAll() {
|
|
62
|
+
return Array.from(this.tools.values());
|
|
63
|
+
}
|
|
64
|
+
getOpenAITools() {
|
|
65
|
+
return Array.from(this.tools.values()).map((tool) => ({
|
|
66
|
+
type: 'function',
|
|
67
|
+
name: tool.name,
|
|
68
|
+
description: tool.description,
|
|
69
|
+
parameters: tool.parameters,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
async executeTool(name, rawArgs, context) {
|
|
73
|
+
const tool = this.tools.get(name);
|
|
74
|
+
if (!tool) {
|
|
75
|
+
return {
|
|
76
|
+
output: JSON.stringify({ error: `Tool "${name}" is not registered.` }),
|
|
77
|
+
isError: true,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
let parsedArgs = {};
|
|
81
|
+
if (typeof rawArgs === 'string') {
|
|
82
|
+
try {
|
|
83
|
+
parsedArgs = rawArgs.trim() ? JSON.parse(rawArgs) : {};
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
logger.warn(`Failed to parse arguments for tool ${name}:`, rawArgs);
|
|
87
|
+
return {
|
|
88
|
+
output: JSON.stringify({ error: `Invalid JSON arguments: ${err.message}` }),
|
|
89
|
+
isError: true,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
parsedArgs = rawArgs;
|
|
95
|
+
}
|
|
96
|
+
logger.tool(name, JSON.stringify(parsedArgs).substring(0, 100));
|
|
97
|
+
try {
|
|
98
|
+
const result = await tool.execute(parsedArgs, context);
|
|
99
|
+
const outputStr = typeof result === 'string' ? result : JSON.stringify(result, null, 2);
|
|
100
|
+
return { output: outputStr, isError: false };
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
logger.error(`Error executing tool ${name}:`, err);
|
|
104
|
+
return {
|
|
105
|
+
output: JSON.stringify({ error: `Tool execution failure: ${err.message}` }),
|
|
106
|
+
isError: true,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { MemoryManager } from '../memory/memoryManager.js';
|
|
2
|
+
import { MusondaConfig } from '../config/types.js';
|
|
3
|
+
export interface ToolContext {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
channel: string;
|
|
6
|
+
channelId?: string;
|
|
7
|
+
userId: string;
|
|
8
|
+
userName?: string;
|
|
9
|
+
threadTs?: string;
|
|
10
|
+
memory: MemoryManager;
|
|
11
|
+
config: MusondaConfig;
|
|
12
|
+
scheduler?: any;
|
|
13
|
+
pluginManager?: any;
|
|
14
|
+
toolRegistry?: any;
|
|
15
|
+
}
|
|
16
|
+
export interface ToolParameterProperty {
|
|
17
|
+
type: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
enum?: string[];
|
|
20
|
+
items?: {
|
|
21
|
+
type: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface ToolParametersSchema {
|
|
25
|
+
type: 'object';
|
|
26
|
+
properties: Record<string, ToolParameterProperty>;
|
|
27
|
+
required?: string[];
|
|
28
|
+
additionalProperties?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface ToolDefinition {
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
parameters: ToolParametersSchema;
|
|
34
|
+
execute: (args: any, context: ToolContext) => Promise<string | object>;
|
|
35
|
+
}
|
|
36
|
+
export interface OpenAIFunctionToolSchema {
|
|
37
|
+
type: 'function';
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
parameters: ToolParametersSchema;
|
|
41
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare enum LogLevel {
|
|
2
|
+
DEBUG = 0,
|
|
3
|
+
INFO = 1,
|
|
4
|
+
WARN = 2,
|
|
5
|
+
ERROR = 3
|
|
6
|
+
}
|
|
7
|
+
export declare class Logger {
|
|
8
|
+
private prefix;
|
|
9
|
+
private level;
|
|
10
|
+
private consoleOutput;
|
|
11
|
+
private logFilePath;
|
|
12
|
+
constructor(prefix: string, level?: LogLevel);
|
|
13
|
+
setConsoleEnabled(enabled: boolean): void;
|
|
14
|
+
isConsoleEnabled(): boolean;
|
|
15
|
+
setLogFile(filePath: string): void;
|
|
16
|
+
setLevel(level: LogLevel): void;
|
|
17
|
+
private timestamp;
|
|
18
|
+
private writeToFile;
|
|
19
|
+
private emit;
|
|
20
|
+
debug(message: string, ...args: unknown[]): void;
|
|
21
|
+
info(message: string, ...args: unknown[]): void;
|
|
22
|
+
agent(message: string, ...args: unknown[]): void;
|
|
23
|
+
tool(name: string, details?: string): void;
|
|
24
|
+
channel(name: string, message: string): void;
|
|
25
|
+
memory(message: string, ...args: unknown[]): void;
|
|
26
|
+
warn(message: string, ...args: unknown[]): void;
|
|
27
|
+
error(message: string, ...args: unknown[]): void;
|
|
28
|
+
}
|
|
29
|
+
export declare const logger: Logger;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
export var LogLevel;
|
|
4
|
+
(function (LogLevel) {
|
|
5
|
+
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
|
|
6
|
+
LogLevel[LogLevel["INFO"] = 1] = "INFO";
|
|
7
|
+
LogLevel[LogLevel["WARN"] = 2] = "WARN";
|
|
8
|
+
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
|
|
9
|
+
})(LogLevel || (LogLevel = {}));
|
|
10
|
+
const COLORS = {
|
|
11
|
+
reset: '\x1b[0m',
|
|
12
|
+
dim: '\x1b[2m',
|
|
13
|
+
bold: '\x1b[1m',
|
|
14
|
+
blue: '\x1b[34m',
|
|
15
|
+
cyan: '\x1b[36m',
|
|
16
|
+
green: '\x1b[32m',
|
|
17
|
+
yellow: '\x1b[33m',
|
|
18
|
+
red: '\x1b[31m',
|
|
19
|
+
magenta: '\x1b[35m',
|
|
20
|
+
};
|
|
21
|
+
export class Logger {
|
|
22
|
+
prefix;
|
|
23
|
+
level;
|
|
24
|
+
consoleOutput = true;
|
|
25
|
+
logFilePath = null;
|
|
26
|
+
constructor(prefix, level = LogLevel.INFO) {
|
|
27
|
+
this.prefix = prefix;
|
|
28
|
+
this.level = level;
|
|
29
|
+
}
|
|
30
|
+
setConsoleEnabled(enabled) {
|
|
31
|
+
this.consoleOutput = enabled;
|
|
32
|
+
}
|
|
33
|
+
isConsoleEnabled() {
|
|
34
|
+
return this.consoleOutput;
|
|
35
|
+
}
|
|
36
|
+
setLogFile(filePath) {
|
|
37
|
+
this.logFilePath = filePath;
|
|
38
|
+
try {
|
|
39
|
+
const dir = path.dirname(filePath);
|
|
40
|
+
if (!fs.existsSync(dir)) {
|
|
41
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch { }
|
|
45
|
+
}
|
|
46
|
+
setLevel(level) {
|
|
47
|
+
this.level = level;
|
|
48
|
+
}
|
|
49
|
+
timestamp() {
|
|
50
|
+
const now = new Date();
|
|
51
|
+
return `${COLORS.dim}${now.toISOString().substring(11, 19)}${COLORS.reset}`;
|
|
52
|
+
}
|
|
53
|
+
writeToFile(levelName, message, args) {
|
|
54
|
+
if (!this.logFilePath)
|
|
55
|
+
return;
|
|
56
|
+
try {
|
|
57
|
+
const now = new Date().toISOString();
|
|
58
|
+
const cleanMsg = message.replace(/\x1b\[[0-9;]*m/g, '');
|
|
59
|
+
const cleanArgs = args.length
|
|
60
|
+
? ' ' + args.map((a) => (typeof a === 'object' ? JSON.stringify(a) : String(a))).join(' ')
|
|
61
|
+
: '';
|
|
62
|
+
const line = `[${now}] [${levelName.toUpperCase()}] [${this.prefix}] ${cleanMsg}${cleanArgs}\n`;
|
|
63
|
+
fs.appendFileSync(this.logFilePath, line, 'utf-8');
|
|
64
|
+
}
|
|
65
|
+
catch { }
|
|
66
|
+
}
|
|
67
|
+
emit(type, levelName, formatted, message, args) {
|
|
68
|
+
if (this.consoleOutput) {
|
|
69
|
+
if (type === 'error') {
|
|
70
|
+
console.error(formatted, ...args);
|
|
71
|
+
}
|
|
72
|
+
else if (type === 'warn') {
|
|
73
|
+
console.warn(formatted, ...args);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
console.log(formatted, ...args);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
this.writeToFile(levelName, message, args);
|
|
80
|
+
}
|
|
81
|
+
debug(message, ...args) {
|
|
82
|
+
if (this.level <= LogLevel.DEBUG) {
|
|
83
|
+
this.emit('log', 'DEBUG', `${this.timestamp()} ${COLORS.dim}[${this.prefix}]${COLORS.reset} đ ${message}`, message, args);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
info(message, ...args) {
|
|
87
|
+
if (this.level <= LogLevel.INFO) {
|
|
88
|
+
this.emit('log', 'INFO', `${this.timestamp()} ${COLORS.cyan}[${this.prefix}]${COLORS.reset} âšī¸ ${message}`, message, args);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
agent(message, ...args) {
|
|
92
|
+
if (this.level <= LogLevel.INFO) {
|
|
93
|
+
this.emit('log', 'AGENT', `${this.timestamp()} ${COLORS.magenta}[${this.prefix}]${COLORS.reset} đ¤ ${message}`, message, args);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
tool(name, details) {
|
|
97
|
+
if (this.level <= LogLevel.INFO) {
|
|
98
|
+
const detailStr = details ? ` -> ${details}` : '';
|
|
99
|
+
this.emit('log', 'TOOL', `${this.timestamp()} ${COLORS.yellow}[TOOL]${COLORS.reset} âī¸ ${COLORS.bold}${name}${COLORS.reset}${details ? ` -> ${COLORS.dim}${details}${COLORS.reset}` : ''}`, `[TOOL] ${name}${detailStr}`, []);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
channel(name, message) {
|
|
103
|
+
if (this.level <= LogLevel.INFO) {
|
|
104
|
+
this.emit('log', 'CHANNEL', `${this.timestamp()} ${COLORS.blue}[CHANNEL:${name.toUpperCase()}]${COLORS.reset} đĄ ${message}`, `[CHANNEL:${name}] ${message}`, []);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
memory(message, ...args) {
|
|
108
|
+
if (this.level <= LogLevel.INFO) {
|
|
109
|
+
this.emit('log', 'MEMORY', `${this.timestamp()} ${COLORS.green}[MEMORY]${COLORS.reset} đ§ ${message}`, message, args);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
warn(message, ...args) {
|
|
113
|
+
if (this.level <= LogLevel.WARN) {
|
|
114
|
+
this.emit('warn', 'WARN', `${this.timestamp()} ${COLORS.yellow}[${this.prefix}]${COLORS.reset} â ī¸ ${message}`, message, args);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
error(message, ...args) {
|
|
118
|
+
if (this.level <= LogLevel.ERROR) {
|
|
119
|
+
this.emit('error', 'ERROR', `${this.timestamp()} ${COLORS.red}[${this.prefix}]${COLORS.reset} â ${message}`, message, args);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
export const logger = new Logger('Musonda');
|
|
124
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { MusondaConfig } from '../config/types.js';
|
|
2
|
+
export declare const BANNER = "\n\u001B[36m\n\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \n\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\n\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\n\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\n\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551\n\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D\n\u001B[0m\n\u001B[1m\u001B[35m=== Musonda Personal AI Assistant & Gateway Harness ===\u001B[0m\n\u001B[2mRunning OpenAI Responses API with gpt-5.6-luna\u001B[0m\n";
|
|
3
|
+
export declare function runOnboardingWizard(): Promise<MusondaConfig>;
|