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,153 @@
|
|
|
1
|
+
import { FileSandboxConfig } from '../config/types.js';
|
|
2
|
+
export declare class SandboxSecurityError extends Error {
|
|
3
|
+
readonly code: string;
|
|
4
|
+
readonly path?: string;
|
|
5
|
+
readonly details?: Record<string, any>;
|
|
6
|
+
constructor(message: string, code?: string, extra?: {
|
|
7
|
+
path?: string;
|
|
8
|
+
details?: Record<string, any>;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export interface NormalizedSandboxRoot {
|
|
12
|
+
rawPath: string;
|
|
13
|
+
resolvedPath: string;
|
|
14
|
+
readOnly: boolean;
|
|
15
|
+
description?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface FileEntryInfo {
|
|
18
|
+
name: string;
|
|
19
|
+
relativePath: string;
|
|
20
|
+
isDirectory: boolean;
|
|
21
|
+
isFile: boolean;
|
|
22
|
+
sizeBytes: number;
|
|
23
|
+
modifiedAt: string;
|
|
24
|
+
}
|
|
25
|
+
export interface GrepMatch {
|
|
26
|
+
file: string;
|
|
27
|
+
line: number;
|
|
28
|
+
text: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Match a string against a glob pattern.
|
|
32
|
+
* Supports `**` (recursive directories), `*` (any chars within path segment), and `?`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function matchGlob(str: string, pattern: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Check if child is equal to parent or inside parent directory.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isSubPath(child: string, parent: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Canonical realpath with Windows long-path prefix stripping.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getRealPath(p: string): string;
|
|
43
|
+
export declare class FileSandbox {
|
|
44
|
+
private config;
|
|
45
|
+
private normalizedRoots;
|
|
46
|
+
private defaultRootPath;
|
|
47
|
+
constructor(config: FileSandboxConfig);
|
|
48
|
+
private initRoots;
|
|
49
|
+
getAllowedRoots(): NormalizedSandboxRoot[];
|
|
50
|
+
getDefaultRootPath(): string;
|
|
51
|
+
/**
|
|
52
|
+
* Validate path syntax to block malicious tricks:
|
|
53
|
+
* - Null bytes
|
|
54
|
+
* - ASCII control characters
|
|
55
|
+
* - UNC paths
|
|
56
|
+
* - Windows Alternate Data Streams (colon in segments)
|
|
57
|
+
* - Windows reserved device names (CON, PRN, AUX, NUL, COM1-9, LPT1-9)
|
|
58
|
+
*/
|
|
59
|
+
validatePathSyntax(rawPath: string): void;
|
|
60
|
+
/**
|
|
61
|
+
* Validates that a path is fully contained within the allowed sandbox roots,
|
|
62
|
+
* does not escape via traversal or symlinks, does not match blocked patterns,
|
|
63
|
+
* and respects permission controls (e.g. readOnly).
|
|
64
|
+
*/
|
|
65
|
+
validatePath(rawPath: string, operation: 'read' | 'write' | 'delete'): {
|
|
66
|
+
resolvedPath: string;
|
|
67
|
+
rootRule: NormalizedSandboxRoot;
|
|
68
|
+
};
|
|
69
|
+
readFile(rawPath: string, options?: {
|
|
70
|
+
encoding?: 'utf-8' | 'base64';
|
|
71
|
+
startLine?: number;
|
|
72
|
+
endLine?: number;
|
|
73
|
+
maxBytes?: number;
|
|
74
|
+
}): {
|
|
75
|
+
path: string;
|
|
76
|
+
content: string;
|
|
77
|
+
startLine?: number;
|
|
78
|
+
endLine?: number;
|
|
79
|
+
totalLines?: number;
|
|
80
|
+
totalBytes: number;
|
|
81
|
+
truncated?: boolean;
|
|
82
|
+
};
|
|
83
|
+
writeFile(rawPath: string, content: string, options?: {
|
|
84
|
+
encoding?: 'utf-8' | 'base64';
|
|
85
|
+
overwrite?: boolean;
|
|
86
|
+
}): {
|
|
87
|
+
success: boolean;
|
|
88
|
+
path: string;
|
|
89
|
+
bytesWritten: number;
|
|
90
|
+
};
|
|
91
|
+
editFile(rawPath: string, target: string, replacement: string, allowMultiple?: boolean): {
|
|
92
|
+
success: boolean;
|
|
93
|
+
path: string;
|
|
94
|
+
occurrencesReplaced: number;
|
|
95
|
+
bytesWritten: number;
|
|
96
|
+
};
|
|
97
|
+
appendFile(rawPath: string, content: string): {
|
|
98
|
+
success: boolean;
|
|
99
|
+
path: string;
|
|
100
|
+
bytesAppended: number;
|
|
101
|
+
};
|
|
102
|
+
listFiles(rawPath?: string, options?: {
|
|
103
|
+
recursive?: boolean;
|
|
104
|
+
maxDepth?: number;
|
|
105
|
+
}): {
|
|
106
|
+
directory: string;
|
|
107
|
+
totalEntries: number;
|
|
108
|
+
truncated: boolean;
|
|
109
|
+
entries: FileEntryInfo[];
|
|
110
|
+
};
|
|
111
|
+
deletePath(rawPath: string, recursive?: boolean): {
|
|
112
|
+
success: boolean;
|
|
113
|
+
path: string;
|
|
114
|
+
deleted: boolean;
|
|
115
|
+
};
|
|
116
|
+
private verifyNoBlockedFilesInTree;
|
|
117
|
+
getFileInfo(rawPath: string): {
|
|
118
|
+
exists: boolean;
|
|
119
|
+
path: string;
|
|
120
|
+
isFile?: boolean;
|
|
121
|
+
isDirectory?: boolean;
|
|
122
|
+
isSymbolicLink?: boolean;
|
|
123
|
+
sizeBytes?: number;
|
|
124
|
+
createdAt?: string;
|
|
125
|
+
modifiedAt?: string;
|
|
126
|
+
readOnly?: boolean;
|
|
127
|
+
};
|
|
128
|
+
createDirectory(rawPath: string): {
|
|
129
|
+
success: boolean;
|
|
130
|
+
path: string;
|
|
131
|
+
created: boolean;
|
|
132
|
+
};
|
|
133
|
+
searchFiles(pattern: string, rawPath?: string, maxResults?: number): {
|
|
134
|
+
pattern: string;
|
|
135
|
+
totalMatches: number;
|
|
136
|
+
truncated: boolean;
|
|
137
|
+
matches: {
|
|
138
|
+
name: string;
|
|
139
|
+
relativePath: string;
|
|
140
|
+
isDirectory: boolean;
|
|
141
|
+
sizeBytes: number;
|
|
142
|
+
}[];
|
|
143
|
+
};
|
|
144
|
+
grepFiles(query: string, rawPath?: string, options?: {
|
|
145
|
+
caseInsensitive?: boolean;
|
|
146
|
+
maxResults?: number;
|
|
147
|
+
}): {
|
|
148
|
+
query: string;
|
|
149
|
+
totalMatches: number;
|
|
150
|
+
truncated: boolean;
|
|
151
|
+
matches: GrepMatch[];
|
|
152
|
+
};
|
|
153
|
+
}
|