micro-models-agent 0.2.56 → 0.2.58
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/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +48 -12
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/system-prompt.js +1 -1
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/plugins/builtin/lint-on-write/index.d.ts +12 -0
- package/dist/plugins/builtin/lint-on-write/index.d.ts.map +1 -0
- package/dist/plugins/builtin/lint-on-write/index.js +98 -0
- package/dist/plugins/builtin/lint-on-write/index.js.map +1 -0
- package/dist/plugins/builtin/lint-on-write/index.ts +97 -0
- package/dist/plugins/builtin/lint-on-write/manifest.json +13 -0
- package/dist/plugins/builtin/notify/index.d.ts +12 -0
- package/dist/plugins/builtin/notify/index.d.ts.map +1 -0
- package/dist/plugins/builtin/notify/index.js +87 -0
- package/dist/plugins/builtin/notify/index.js.map +1 -0
- package/dist/plugins/builtin/notify/index.ts +94 -0
- package/dist/plugins/builtin/notify/manifest.json +16 -0
- package/dist/plugins/loader.d.ts +6 -1
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +45 -8
- package/dist/plugins/loader.js.map +1 -1
- package/dist/plugins/manager.d.ts +5 -2
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +10 -3
- package/dist/plugins/manager.js.map +1 -1
- package/dist/plugins/types.d.ts +3 -0
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/repl/commands.d.ts.map +1 -1
- package/dist/repl/commands.js +20 -0
- package/dist/repl/commands.js.map +1 -1
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +9 -0
- package/dist/repl/index.js.map +1 -1
- package/dist/ui/ink/components/MessageBlock.d.ts +1 -1
- package/dist/ui/ink/components/MessageBlock.d.ts.map +1 -1
- package/dist/ui/ink/components/MessageBlock.js +3 -0
- package/dist/ui/ink/components/MessageBlock.js.map +1 -1
- package/dist/ui/ink/renderer.d.ts +1 -0
- package/dist/ui/ink/renderer.d.ts.map +1 -1
- package/dist/ui/ink/renderer.js +3 -0
- package/dist/ui/ink/renderer.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import { platform } from 'node:os';
|
|
3
|
+
/**
|
|
4
|
+
* Плагин notify — OS desktop-уведомления.
|
|
5
|
+
*
|
|
6
|
+
* Отправляет toast-уведомление при:
|
|
7
|
+
* - agent:done — задача выполнена
|
|
8
|
+
* - tool:blocked — агент заблокирован
|
|
9
|
+
* - tool:after (question) — агент ждёт ответа
|
|
10
|
+
*
|
|
11
|
+
* Zero-dependency: shell-out по платформе.
|
|
12
|
+
* - win32: PowerShell NotifyIcon balloon tip
|
|
13
|
+
* - darwin: osascript display notification
|
|
14
|
+
* - linux: notify-send
|
|
15
|
+
*
|
|
16
|
+
* @module plugins/builtin/notify
|
|
17
|
+
*/
|
|
18
|
+
function sendNotification(title, body) {
|
|
19
|
+
const p = platform();
|
|
20
|
+
try {
|
|
21
|
+
if (p === 'win32') {
|
|
22
|
+
// PowerShell: System.Windows.Forms.NotifyIcon balloon tip
|
|
23
|
+
const psScript = `Add-Type -AssemblyName System.Windows.Forms; $n = New-Object System.Windows.Forms.NotifyIcon; $n.Icon = [System.Drawing.SystemIcons]::Information; $n.Visible = $true; $n.ShowBalloonTip(5000, '${title.replace(/'/g, "''")}', '${body.replace(/'/g, "''")}', [System.Windows.Forms.ToolTipIcon]::Info)`;
|
|
24
|
+
execSync(`powershell -Command "${psScript}"`, {
|
|
25
|
+
timeout: 5000,
|
|
26
|
+
windowsHide: true,
|
|
27
|
+
stdio: 'pipe',
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
else if (p === 'darwin') {
|
|
31
|
+
execSync(`osascript -e 'display notification "${body.replace(/"/g, '\\"')}" with title "${title.replace(/"/g, '\\"')}"'`, {
|
|
32
|
+
timeout: 5000,
|
|
33
|
+
stdio: 'pipe',
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// Linux
|
|
38
|
+
execSync(`notify-send "${title.replace(/"/g, '\\"')}" "${body.replace(/"/g, '\\"')}"`, {
|
|
39
|
+
timeout: 5000,
|
|
40
|
+
stdio: 'pipe',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Best-effort — если уведомление не отправлено, не крашимся
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export default function createNotify() {
|
|
49
|
+
let ctx = null;
|
|
50
|
+
let config = { onDone: true, onBlocked: true, onQuestion: true };
|
|
51
|
+
return {
|
|
52
|
+
name: 'notify',
|
|
53
|
+
version: '1.0.0',
|
|
54
|
+
description: 'OS desktop notifications for agent events',
|
|
55
|
+
onActivate(pluginCtx) {
|
|
56
|
+
ctx = pluginCtx;
|
|
57
|
+
// Мержим конфиг из manifest + user override
|
|
58
|
+
if (pluginCtx.config) {
|
|
59
|
+
config = { ...config, ...pluginCtx.config };
|
|
60
|
+
}
|
|
61
|
+
pluginCtx.logger.info(`notify: active (done=${config.onDone}, blocked=${config.onBlocked}, question=${config.onQuestion})`);
|
|
62
|
+
},
|
|
63
|
+
onDeactivate() {
|
|
64
|
+
ctx = null;
|
|
65
|
+
},
|
|
66
|
+
getPromptSection() {
|
|
67
|
+
return '## Notify Plugin\nDesktop notifications are enabled. You don\'t need to notify the user about completion — it happens automatically.';
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Обработчики событий — вызываются извне через PluginManager.on().
|
|
73
|
+
* Экспортируются для регистрации в loop.ts.
|
|
74
|
+
*/
|
|
75
|
+
export function handleAgentDone() {
|
|
76
|
+
sendNotification('MMA', 'Agent finished the task');
|
|
77
|
+
}
|
|
78
|
+
export function handleToolBlocked(toolName, _args) {
|
|
79
|
+
sendNotification('MMA', `Tool blocked: ${toolName}`);
|
|
80
|
+
}
|
|
81
|
+
export function handleToolAfter(toolName, _args, result) {
|
|
82
|
+
// Question tool — агент ждёт ответа
|
|
83
|
+
if (toolName === 'question') {
|
|
84
|
+
sendNotification('MMA', 'Agent needs your answer');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/builtin/notify/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC;;;;;;;;;;;;;;GAcG;AAEH,SAAS,gBAAgB,CAAC,KAAa,EAAE,IAAY;IACnD,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAClB,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,mMAAmM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,8CAA8C,CAAC;YAC3T,QAAQ,CAAC,wBAAwB,QAAQ,GAAG,EAAE;gBAC5C,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,QAAQ,CAAC,uCAAuC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;gBACxH,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,QAAQ;YACR,QAAQ,CAAC,gBAAgB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE;gBACrF,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,IAAI,GAAG,GAAyB,IAAI,CAAC;IACrC,IAAI,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAEjE,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,2CAA2C;QAExD,UAAU,CAAC,SAAwB;YACjC,GAAG,GAAG,SAAS,CAAC;YAChB,4CAA4C;YAC5C,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,MAAiC,EAAmB,CAAC;YAC1F,CAAC;YACD,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,SAAS,cAAc,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QAC9H,CAAC;QAED,YAAY;YACV,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;QAED,gBAAgB;YACd,OAAO,sIAAsI,CAAC;QAChJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,KAAc;IAChE,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,KAAc,EAAE,MAA4B;IAC5F,oCAAoC;IACpC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import { platform } from 'node:os';
|
|
3
|
+
import type { AgentPlugin, PluginContext } from '../../types.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Плагин notify — OS desktop-уведомления.
|
|
7
|
+
*
|
|
8
|
+
* Отправляет toast-уведомление при:
|
|
9
|
+
* - agent:done — задача выполнена
|
|
10
|
+
* - tool:blocked — агент заблокирован
|
|
11
|
+
* - tool:after (question) — агент ждёт ответа
|
|
12
|
+
*
|
|
13
|
+
* Zero-dependency: shell-out по платформе.
|
|
14
|
+
* - win32: PowerShell NotifyIcon balloon tip
|
|
15
|
+
* - darwin: osascript display notification
|
|
16
|
+
* - linux: notify-send
|
|
17
|
+
*
|
|
18
|
+
* @module plugins/builtin/notify
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
function sendNotification(title: string, body: string): void {
|
|
22
|
+
const p = platform();
|
|
23
|
+
try {
|
|
24
|
+
if (p === 'win32') {
|
|
25
|
+
// PowerShell: System.Windows.Forms.NotifyIcon balloon tip
|
|
26
|
+
const psScript = `Add-Type -AssemblyName System.Windows.Forms; $n = New-Object System.Windows.Forms.NotifyIcon; $n.Icon = [System.Drawing.SystemIcons]::Information; $n.Visible = $true; $n.ShowBalloonTip(5000, '${title.replace(/'/g, "''")}', '${body.replace(/'/g, "''")}', [System.Windows.Forms.ToolTipIcon]::Info)`;
|
|
27
|
+
execSync(`powershell -Command "${psScript}"`, {
|
|
28
|
+
timeout: 5000,
|
|
29
|
+
windowsHide: true,
|
|
30
|
+
stdio: 'pipe',
|
|
31
|
+
});
|
|
32
|
+
} else if (p === 'darwin') {
|
|
33
|
+
execSync(`osascript -e 'display notification "${body.replace(/"/g, '\\"')}" with title "${title.replace(/"/g, '\\"')}"'`, {
|
|
34
|
+
timeout: 5000,
|
|
35
|
+
stdio: 'pipe',
|
|
36
|
+
});
|
|
37
|
+
} else {
|
|
38
|
+
// Linux
|
|
39
|
+
execSync(`notify-send "${title.replace(/"/g, '\\"')}" "${body.replace(/"/g, '\\"')}"`, {
|
|
40
|
+
timeout: 5000,
|
|
41
|
+
stdio: 'pipe',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
} catch {
|
|
45
|
+
// Best-effort — если уведомление не отправлено, не крашимся
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export default function createNotify(): AgentPlugin {
|
|
50
|
+
let ctx: PluginContext | null = null;
|
|
51
|
+
let config = { onDone: true, onBlocked: true, onQuestion: true };
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
name: 'notify',
|
|
55
|
+
version: '1.0.0',
|
|
56
|
+
description: 'OS desktop notifications for agent events',
|
|
57
|
+
|
|
58
|
+
onActivate(pluginCtx: PluginContext) {
|
|
59
|
+
ctx = pluginCtx;
|
|
60
|
+
// Мержим конфиг из manifest + user override
|
|
61
|
+
if (pluginCtx.config) {
|
|
62
|
+
config = { ...config, ...pluginCtx.config as Record<string, unknown> } as typeof config;
|
|
63
|
+
}
|
|
64
|
+
pluginCtx.logger.info(`notify: active (done=${config.onDone}, blocked=${config.onBlocked}, question=${config.onQuestion})`);
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
onDeactivate() {
|
|
68
|
+
ctx = null;
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
getPromptSection() {
|
|
72
|
+
return '## Notify Plugin\nDesktop notifications are enabled. You don\'t need to notify the user about completion — it happens automatically.';
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Обработчики событий — вызываются извне через PluginManager.on().
|
|
79
|
+
* Экспортируются для регистрации в loop.ts.
|
|
80
|
+
*/
|
|
81
|
+
export function handleAgentDone(): void {
|
|
82
|
+
sendNotification('MMA', 'Agent finished the task');
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function handleToolBlocked(toolName: string, _args: unknown): void {
|
|
86
|
+
sendNotification('MMA', `Tool blocked: ${toolName}`);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function handleToolAfter(toolName: string, _args: unknown, result: { exitCode: number }): void {
|
|
90
|
+
// Question tool — агент ждёт ответа
|
|
91
|
+
if (toolName === 'question') {
|
|
92
|
+
sendNotification('MMA', 'Agent needs your answer');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"name": "notify",
|
|
4
|
+
"events": [
|
|
5
|
+
"agent:done",
|
|
6
|
+
"tool:blocked",
|
|
7
|
+
"tool:after"
|
|
8
|
+
],
|
|
9
|
+
"description": "OS desktop notifications when agent finishes, gets blocked, or needs attention",
|
|
10
|
+
"config": {
|
|
11
|
+
"onDone": true,
|
|
12
|
+
"onQuestion": true,
|
|
13
|
+
"onBlocked": true
|
|
14
|
+
},
|
|
15
|
+
"entry": "index.js"
|
|
16
|
+
}
|
package/dist/plugins/loader.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import type { PluginManifest } from './types.js';
|
|
1
|
+
import type { PluginManifest, PluginInfo } from './types.js';
|
|
2
2
|
import type { PluginManager } from './manager.js';
|
|
3
3
|
/**
|
|
4
4
|
* Загружает все плагины из директорий поиска.
|
|
5
5
|
*/
|
|
6
6
|
export declare function loadAllPlugins(manager: PluginManager): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Загружает все плагины и возвращает информацию о них (с источником).
|
|
9
|
+
* Используется для отображения при старте сессии.
|
|
10
|
+
*/
|
|
11
|
+
export declare function loadAllPluginsWithInfo(manager: PluginManager): Promise<PluginInfo[]>;
|
|
7
12
|
/**
|
|
8
13
|
* Включает hot-reload для плагина.
|
|
9
14
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,cAAc,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAwGlD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1E;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA2B1F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,aAAa,EACtB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GACtC,MAAM,IAAI,CAkCZ"}
|
package/dist/plugins/loader.js
CHANGED
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
import { existsSync, readFileSync, readdirSync, watch } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { pathToFileURL } from 'node:url';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
4
5
|
import { logInfo, logWarn, logError } from '../logger.js';
|
|
5
6
|
/**
|
|
6
7
|
* Загрузчик плагинов.
|
|
7
8
|
*
|
|
8
|
-
* Discovery:
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Discovery (в порядке приоритета):
|
|
10
|
+
* 1. Builtin — src/plugins/builtin/ (сборка копирует в dist/)
|
|
11
|
+
* 2. Project — .mma/plugins/ (локально проекта)
|
|
12
|
+
* 3. User — ~/.mma/plugins/ (публичные пользователя)
|
|
11
13
|
*
|
|
12
14
|
* Hot-reload: fs.watch на директорию плагина.
|
|
13
15
|
*
|
|
14
16
|
* @module plugins/loader
|
|
15
17
|
*/
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
19
|
+
const __dirname = join(__filename, '..', '..');
|
|
20
|
+
/** Builtin плагины (bundled с MMA) */
|
|
21
|
+
const BUILTIN_PLUGINS_DIR = join(__dirname, 'plugins', 'builtin');
|
|
22
|
+
/** Директории поиска плагинов (source → dir) */
|
|
23
|
+
const PLUGIN_SCAN_DIRS = [
|
|
24
|
+
{ source: 'builtin', dir: BUILTIN_PLUGINS_DIR },
|
|
25
|
+
{ source: 'project', dir: '.mma/plugins' },
|
|
26
|
+
{ source: 'user', dir: join(process.env.HOME || process.env.USERPROFILE || '', '.mma', 'plugins') },
|
|
20
27
|
];
|
|
21
28
|
/**
|
|
22
29
|
* Сканирует директорию на наличие плагинов.
|
|
@@ -93,7 +100,7 @@ async function loadPluginFromDir(pluginDir) {
|
|
|
93
100
|
* Загружает все плагины из директорий поиска.
|
|
94
101
|
*/
|
|
95
102
|
export async function loadAllPlugins(manager) {
|
|
96
|
-
for (const dir of
|
|
103
|
+
for (const { dir } of PLUGIN_SCAN_DIRS) {
|
|
97
104
|
const pluginDirs = scanPluginDir(dir);
|
|
98
105
|
for (const pluginDir of pluginDirs) {
|
|
99
106
|
const plugin = await loadPluginFromDir(pluginDir);
|
|
@@ -103,6 +110,36 @@ export async function loadAllPlugins(manager) {
|
|
|
103
110
|
}
|
|
104
111
|
}
|
|
105
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Загружает все плагины и возвращает информацию о них (с источником).
|
|
115
|
+
* Используется для отображения при старте сессии.
|
|
116
|
+
*/
|
|
117
|
+
export async function loadAllPluginsWithInfo(manager) {
|
|
118
|
+
const infos = [];
|
|
119
|
+
const seen = new Set();
|
|
120
|
+
for (const { source, dir } of PLUGIN_SCAN_DIRS) {
|
|
121
|
+
const pluginDirs = scanPluginDir(dir);
|
|
122
|
+
for (const pluginDir of pluginDirs) {
|
|
123
|
+
const manifest = loadManifest(pluginDir);
|
|
124
|
+
if (!manifest || seen.has(manifest.name))
|
|
125
|
+
continue;
|
|
126
|
+
seen.add(manifest.name);
|
|
127
|
+
const plugin = await loadPluginFromDir(pluginDir);
|
|
128
|
+
if (plugin) {
|
|
129
|
+
manager.register(plugin);
|
|
130
|
+
infos.push({
|
|
131
|
+
name: plugin.name,
|
|
132
|
+
version: plugin.version || manifest.version,
|
|
133
|
+
description: plugin.description || manifest.description,
|
|
134
|
+
active: false,
|
|
135
|
+
events: manifest.events || [],
|
|
136
|
+
source,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return infos;
|
|
142
|
+
}
|
|
106
143
|
/**
|
|
107
144
|
* Включает hot-reload для плагина.
|
|
108
145
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentPlugin, PluginEvent, PluginHandler, PluginContext, PluginInfo } from './types.js';
|
|
1
|
+
import type { AgentPlugin, PluginEvent, PluginHandler, PluginContext, PluginInfo, PluginSource } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Менеджер плагинов.
|
|
4
4
|
*
|
|
@@ -14,8 +14,9 @@ export declare class PluginManager {
|
|
|
14
14
|
private plugins;
|
|
15
15
|
private listeners;
|
|
16
16
|
private active;
|
|
17
|
+
private sources;
|
|
17
18
|
/** Регистрация плагина */
|
|
18
|
-
register(plugin: AgentPlugin): void;
|
|
19
|
+
register(plugin: AgentPlugin, source?: PluginSource): void;
|
|
19
20
|
/** Активация плагина */
|
|
20
21
|
activate(name: string, ctx: PluginContext): Promise<void>;
|
|
21
22
|
/** Деактивация плагина */
|
|
@@ -44,6 +45,8 @@ export declare class PluginManager {
|
|
|
44
45
|
getBehaviors(): Promise<Record<string, unknown>>;
|
|
45
46
|
/** Список загруженных плагинов */
|
|
46
47
|
listPlugins(): PluginInfo[];
|
|
48
|
+
/** Получить список активных плагинов (имена) */
|
|
49
|
+
getActivePluginNames(): string[];
|
|
47
50
|
/** Проверка активности плагина */
|
|
48
51
|
isActive(name: string): boolean;
|
|
49
52
|
/** Проверка наличия плагина */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAsBnH;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,SAAS,CAA2D;IAC5E,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAAwC;IAEvD,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,GAAE,YAAqB,GAAG,IAAI;IAMlE,wBAAwB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/D,0BAA0B;IACpB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7C,oCAAoC;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE,gEAAgE;IAChE,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAOxE;;;;;OAKG;IACG,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA2B7E;;;;;OAKG;IACG,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAwBnF,sDAAsD;IAChD,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB5C,2CAA2C;IACrC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAkBtD,kCAAkC;IAClC,WAAW,IAAI,UAAU,EAAE;IAW3B,gDAAgD;IAChD,oBAAoB,IAAI,MAAM,EAAE;IAIhC,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B,+BAA+B;IAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG3B"}
|
package/dist/plugins/manager.js
CHANGED
|
@@ -14,10 +14,12 @@ export class PluginManager {
|
|
|
14
14
|
plugins = new Map();
|
|
15
15
|
listeners = new Map();
|
|
16
16
|
active = new Set();
|
|
17
|
+
sources = new Map();
|
|
17
18
|
/** Регистрация плагина */
|
|
18
|
-
register(plugin) {
|
|
19
|
+
register(plugin, source = 'user') {
|
|
19
20
|
this.plugins.set(plugin.name, plugin);
|
|
20
|
-
|
|
21
|
+
this.sources.set(plugin.name, source);
|
|
22
|
+
logInfo('PLUGIN', `registered: ${plugin.name}${plugin.version ? ` v${plugin.version}` : ''} (${source})`);
|
|
21
23
|
}
|
|
22
24
|
/** Активация плагина */
|
|
23
25
|
async activate(name, ctx) {
|
|
@@ -168,9 +170,14 @@ export class PluginManager {
|
|
|
168
170
|
version: plugin.version,
|
|
169
171
|
description: plugin.description,
|
|
170
172
|
active: this.active.has(name),
|
|
171
|
-
events: [],
|
|
173
|
+
events: [],
|
|
174
|
+
source: this.sources.get(name) || 'user',
|
|
172
175
|
}));
|
|
173
176
|
}
|
|
177
|
+
/** Получить список активных плагинов (имена) */
|
|
178
|
+
getActivePluginNames() {
|
|
179
|
+
return Array.from(this.active);
|
|
180
|
+
}
|
|
174
181
|
/** Проверка активности плагина */
|
|
175
182
|
isActive(name) {
|
|
176
183
|
return this.active.has(name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAqB1D;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC9C,SAAS,GAAiD,IAAI,GAAG,EAAE,CAAC;IACpE,MAAM,GAAgB,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins/types.d.ts
CHANGED
|
@@ -62,6 +62,8 @@ export interface PluginManifest {
|
|
|
62
62
|
/** Конфиг плагина (пользователь переопределяет в .mmrc) */
|
|
63
63
|
config?: Record<string, unknown>;
|
|
64
64
|
}
|
|
65
|
+
/** Источник плагина */
|
|
66
|
+
export type PluginSource = 'builtin' | 'project' | 'user';
|
|
65
67
|
/** Информация о загруженном плагине */
|
|
66
68
|
export interface PluginInfo {
|
|
67
69
|
name: string;
|
|
@@ -69,5 +71,6 @@ export interface PluginInfo {
|
|
|
69
71
|
description?: string;
|
|
70
72
|
active: boolean;
|
|
71
73
|
events: PluginEvent[];
|
|
74
|
+
source: PluginSource;
|
|
72
75
|
}
|
|
73
76
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,0BAA0B;AAC1B,MAAM,MAAM,WAAW,GAEnB,YAAY,GACZ,YAAY,GACZ,YAAY,GAEZ,aAAa,GACb,YAAY,GACZ,cAAc,GAEd,YAAY,GACZ,WAAW,GAEX,cAAc,GAEd,cAAc,GACd,cAAc,GAEd,aAAa,GAEb,eAAe,GACf,cAAc,CAAC;AAEnB,8BAA8B;AAC9B,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAE1F,uBAAuB;AACvB,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa;IACb,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,qBAAqB;AACrB,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,kDAAkD;AAClD,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAwB;AACxB,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,UAAU,CAAC,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,0BAA0B;IAC1B,YAAY,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,0BAA0B;IAC1B,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAEtD,sCAAsC;IACtC,gBAAgB,CAAC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C,yBAAyB;IACzB,YAAY,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,uBAAuB;AACvB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,0BAA0B;AAC1B,MAAM,MAAM,WAAW,GAEnB,YAAY,GACZ,YAAY,GACZ,YAAY,GAEZ,aAAa,GACb,YAAY,GACZ,cAAc,GAEd,YAAY,GACZ,WAAW,GAEX,cAAc,GAEd,cAAc,GACd,cAAc,GAEd,aAAa,GAEb,eAAe,GACf,cAAc,CAAC;AAEnB,8BAA8B;AAC9B,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAE1F,uBAAuB;AACvB,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa;IACb,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,qBAAqB;AACrB,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,kDAAkD;AAClD,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAwB;AACxB,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,UAAU,CAAC,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,0BAA0B;IAC1B,YAAY,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,0BAA0B;IAC1B,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAEtD,sCAAsC;IACtC,gBAAgB,CAAC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C,yBAAyB;IACzB,YAAY,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,uBAAuB;AACvB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,uBAAuB;AACvB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE1D,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;CACtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/repl/commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/repl/commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;;;;;;;;;;;;GAaG;AAEH,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEpF,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3D,mBAAmB,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CA2BjD;AAED,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMpF;AA+ED,wBAAgB,aAAa;;;EAAgE;AAC7F,wBAAgB,eAAe,SAAmD;AAClF,wBAAgB,WAAW,YAAyC;AAWpE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAc5E;AAoTD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUzD;AAED,wBAAgB,UAAU,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS1F"}
|
package/dist/repl/commands.js
CHANGED
|
@@ -13,6 +13,8 @@ import { getTheme, listThemes, switchTheme } from '../styling/index.js';
|
|
|
13
13
|
import { loadThemeConfig, installTheme, removeTheme } from '../styling/loader.js';
|
|
14
14
|
import { loadConfig, saveConfig } from '../config/config.js';
|
|
15
15
|
import { logInfo } from '../logger.js';
|
|
16
|
+
import { PluginManager } from '../plugins/manager.js';
|
|
17
|
+
import { loadAllPluginsWithInfo } from '../plugins/loader.js';
|
|
16
18
|
/** Возвращает список всех доступных слэш-команд */
|
|
17
19
|
export function getSlashCommands() {
|
|
18
20
|
return [
|
|
@@ -28,6 +30,7 @@ export function getSlashCommands() {
|
|
|
28
30
|
{ name: 'git', description: 'git operations', handler: cmdGit },
|
|
29
31
|
{ name: 'memory', description: 'memory management', handler: cmdMemory },
|
|
30
32
|
{ name: 'skill', description: 'list skills', handler: cmdSkill },
|
|
33
|
+
{ name: 'plugins', description: 'list plugins', handler: cmdPlugins },
|
|
31
34
|
{ name: 'sessions', description: 'list sessions', handler: cmdSessions },
|
|
32
35
|
{ name: 'resume', description: 'resume session', handler: cmdResume },
|
|
33
36
|
{ name: 'save', description: 'save session', handler: cmdSave },
|
|
@@ -69,6 +72,7 @@ function cmdHelp(_args, ctx) {
|
|
|
69
72
|
/git <args> — git operations
|
|
70
73
|
/memory — memory management (show/add/search/remove/export)
|
|
71
74
|
/skill — list installed skills
|
|
75
|
+
/plugins — list plugins
|
|
72
76
|
/sessions — list saved sessions
|
|
73
77
|
/resume <id> — resume a session
|
|
74
78
|
/save [name] — save current session
|
|
@@ -358,6 +362,22 @@ function cmdSkill(args, ctx) {
|
|
|
358
362
|
ctx.renderer.writeInfo(' Usage: /skill [list]');
|
|
359
363
|
}
|
|
360
364
|
}
|
|
365
|
+
async function cmdPlugins(_args, ctx) {
|
|
366
|
+
const pluginManager = new PluginManager();
|
|
367
|
+
await loadAllPluginsWithInfo(pluginManager);
|
|
368
|
+
const plugins = pluginManager.listPlugins();
|
|
369
|
+
if (plugins.length === 0) {
|
|
370
|
+
ctx.renderer.writeDim(' No plugins available.');
|
|
371
|
+
ctx.renderer.writeDim(' Place plugins in .mma/plugins/<name>/');
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
ctx.renderer.writeInfo(` Available plugins (${plugins.length}):`);
|
|
375
|
+
for (const p of plugins) {
|
|
376
|
+
const version = p.version ? ` v${p.version}` : '';
|
|
377
|
+
const status = p.active ? 'active' : 'inactive';
|
|
378
|
+
ctx.renderer.writeLine(` ${p.name}${version} [${p.source}] ${status}`);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
361
381
|
function cmdSessions(_args, ctx) {
|
|
362
382
|
const sessions = listSessions();
|
|
363
383
|
ctx.renderer.writeLine(formatSessionList(sessions));
|