@jungjaehoon/mama-os 0.32.1 → 0.32.2
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/CHANGELOG.md +8 -0
- package/README.md +15 -13
- package/dist/agent/agent-loop.d.ts +5 -0
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +160 -55
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/backend-model-policy.d.ts +9 -0
- package/dist/agent/backend-model-policy.d.ts.map +1 -0
- package/dist/agent/backend-model-policy.js +21 -0
- package/dist/agent/backend-model-policy.js.map +1 -0
- package/dist/agent/backend-model-runner-factory.d.ts +27 -0
- package/dist/agent/backend-model-runner-factory.d.ts.map +1 -0
- package/dist/agent/backend-model-runner-factory.js +85 -0
- package/dist/agent/backend-model-runner-factory.js.map +1 -0
- package/dist/agent/cline-cli-adapter.d.ts +124 -0
- package/dist/agent/cline-cli-adapter.d.ts.map +1 -0
- package/dist/agent/cline-cli-adapter.js +1040 -0
- package/dist/agent/cline-cli-adapter.js.map +1 -0
- package/dist/agent/cline-native-tool-policy.d.ts +3 -0
- package/dist/agent/cline-native-tool-policy.d.ts.map +1 -0
- package/dist/agent/cline-native-tool-policy.js +50 -0
- package/dist/agent/cline-native-tool-policy.js.map +1 -0
- package/dist/agent/code-act/constants.d.ts +1 -1
- package/dist/agent/code-act/constants.d.ts.map +1 -1
- package/dist/agent/code-act/constants.js +13 -1
- package/dist/agent/code-act/constants.js.map +1 -1
- package/dist/agent/codex-app-server-process.d.ts +5 -0
- package/dist/agent/codex-app-server-process.d.ts.map +1 -1
- package/dist/agent/codex-app-server-process.js +30 -0
- package/dist/agent/codex-app-server-process.js.map +1 -1
- package/dist/agent/codex-auxiliary-tools.d.ts +17 -0
- package/dist/agent/codex-auxiliary-tools.d.ts.map +1 -0
- package/dist/agent/codex-auxiliary-tools.js +267 -0
- package/dist/agent/codex-auxiliary-tools.js.map +1 -0
- package/dist/agent/codex-home.d.ts.map +1 -1
- package/dist/agent/codex-home.js +1 -0
- package/dist/agent/codex-home.js.map +1 -1
- package/dist/agent/managed-agent-runtime-sync.d.ts.map +1 -1
- package/dist/agent/managed-agent-runtime-sync.js +17 -3
- package/dist/agent/managed-agent-runtime-sync.js.map +1 -1
- package/dist/agent/managed-agent-validation.js +1 -1
- package/dist/agent/managed-agent-validation.js.map +1 -1
- package/dist/agent/model-runner.d.ts +11 -1
- package/dist/agent/model-runner.d.ts.map +1 -1
- package/dist/agent/model-runner.js +12 -1
- package/dist/agent/model-runner.js.map +1 -1
- package/dist/agent/session-pool.d.ts +10 -9
- package/dist/agent/session-pool.d.ts.map +1 -1
- package/dist/agent/session-pool.js +12 -47
- package/dist/agent/session-pool.js.map +1 -1
- package/dist/agent/types.d.ts +18 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/graph-api.d.ts.map +1 -1
- package/dist/api/graph-api.js +15 -5
- package/dist/api/graph-api.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +43 -10
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +12 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/setup.d.ts +22 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +79 -28
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/start.d.ts +2 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +35 -9
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +4 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/config/config-manager.d.ts.map +1 -1
- package/dist/cli/config/config-manager.js +63 -14
- package/dist/cli/config/config-manager.js.map +1 -1
- package/dist/cli/config/types.d.ts +12 -5
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +3 -0
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/index.js +6 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
- package/dist/cli/runtime/agent-loop-init.js +8 -3
- package/dist/cli/runtime/agent-loop-init.js.map +1 -1
- package/dist/cli/runtime/gateway-init.d.ts +1 -1
- package/dist/cli/runtime/gateway-init.d.ts.map +1 -1
- package/dist/cli/runtime/gateway-init.js.map +1 -1
- package/dist/cli/runtime/mama-core-init.d.ts +10 -2
- package/dist/cli/runtime/mama-core-init.d.ts.map +1 -1
- package/dist/cli/runtime/mama-core-init.js +52 -68
- package/dist/cli/runtime/mama-core-init.js.map +1 -1
- package/dist/cli/runtime/memory-agent-init.d.ts.map +1 -1
- package/dist/cli/runtime/memory-agent-init.js +18 -5
- package/dist/cli/runtime/memory-agent-init.js.map +1 -1
- package/dist/cli/runtime/scheduler-init.d.ts +4 -0
- package/dist/cli/runtime/scheduler-init.d.ts.map +1 -1
- package/dist/cli/runtime/scheduler-init.js +24 -3
- package/dist/cli/runtime/scheduler-init.js.map +1 -1
- package/dist/cli/runtime/shutdown.d.ts +4 -0
- package/dist/cli/runtime/shutdown.d.ts.map +1 -1
- package/dist/cli/runtime/shutdown.js +30 -6
- package/dist/cli/runtime/shutdown.js.map +1 -1
- package/dist/cli/runtime/utilities.d.ts +2 -0
- package/dist/cli/runtime/utilities.d.ts.map +1 -1
- package/dist/cli/runtime/utilities.js +33 -0
- package/dist/cli/runtime/utilities.js.map +1 -1
- package/dist/gateways/discord.d.ts.map +1 -1
- package/dist/gateways/discord.js +11 -6
- package/dist/gateways/discord.js.map +1 -1
- package/dist/gateways/image-analyzer.d.ts +5 -0
- package/dist/gateways/image-analyzer.d.ts.map +1 -1
- package/dist/gateways/image-analyzer.js +8 -0
- package/dist/gateways/image-analyzer.js.map +1 -1
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +29 -15
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/slack.d.ts.map +1 -1
- package/dist/gateways/slack.js +6 -2
- package/dist/gateways/slack.js.map +1 -1
- package/dist/gateways/types.d.ts +1 -1
- package/dist/gateways/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/multi-agent/agent-process-manager.d.ts +6 -4
- package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
- package/dist/multi-agent/agent-process-manager.js +103 -34
- package/dist/multi-agent/agent-process-manager.js.map +1 -1
- package/dist/multi-agent/runtime-process.d.ts +3 -0
- package/dist/multi-agent/runtime-process.d.ts.map +1 -1
- package/dist/multi-agent/runtime-process.js +10 -2
- package/dist/multi-agent/runtime-process.js.map +1 -1
- package/dist/multi-agent/types.d.ts +12 -2
- package/dist/multi-agent/types.d.ts.map +1 -1
- package/dist/multi-agent/types.js.map +1 -1
- package/dist/multi-agent/workflow-types.d.ts +1 -1
- package/dist/multi-agent/workflow-types.d.ts.map +1 -1
- package/dist/onboarding/complete-autonomous-prompt.d.ts +1 -1
- package/dist/onboarding/complete-autonomous-prompt.d.ts.map +1 -1
- package/dist/onboarding/complete-autonomous-prompt.js +9 -9
- package/dist/operator/situation-report.d.ts.map +1 -1
- package/dist/operator/situation-report.js +38 -23
- package/dist/operator/situation-report.js.map +1 -1
- package/dist/operator/temporal-runtime.d.ts.map +1 -1
- package/dist/operator/temporal-runtime.js +3 -1
- package/dist/operator/temporal-runtime.js.map +1 -1
- package/dist/operator/trigger-author.d.ts +13 -1
- package/dist/operator/trigger-author.d.ts.map +1 -1
- package/dist/operator/trigger-author.js +35 -0
- package/dist/operator/trigger-author.js.map +1 -1
- package/dist/operator/worker-run.d.ts.map +1 -1
- package/dist/operator/worker-run.js +10 -4
- package/dist/operator/worker-run.js.map +1 -1
- package/dist/scheduler/cron-worker.d.ts +8 -4
- package/dist/scheduler/cron-worker.d.ts.map +1 -1
- package/dist/scheduler/cron-worker.js +56 -39
- package/dist/scheduler/cron-worker.js.map +1 -1
- package/dist/setup/setup-actions.d.ts +26 -0
- package/dist/setup/setup-actions.d.ts.map +1 -0
- package/dist/setup/setup-actions.js +371 -0
- package/dist/setup/setup-actions.js.map +1 -0
- package/dist/setup/setup-prompt.d.ts +1 -1
- package/dist/setup/setup-prompt.d.ts.map +1 -1
- package/dist/setup/setup-prompt.js +28 -33
- package/dist/setup/setup-prompt.js.map +1 -1
- package/dist/setup/setup-server.d.ts +6 -1
- package/dist/setup/setup-server.d.ts.map +1 -1
- package/dist/setup/setup-server.js +55 -9
- package/dist/setup/setup-server.js.map +1 -1
- package/dist/setup/setup-websocket.d.ts +14 -2
- package/dist/setup/setup-websocket.d.ts.map +1 -1
- package/dist/setup/setup-websocket.js +121 -37
- package/dist/setup/setup-websocket.js.map +1 -1
- package/package.json +1 -1
- package/public/setup.html +9 -6
- package/public/viewer/js/modules/agents.js +5 -4
- package/public/viewer/js/modules/settings.js +34 -10
- package/public/viewer/src/modules/agents.ts +5 -4
- package/public/viewer/src/modules/settings.ts +49 -11
- package/public/viewer/src/utils/api.ts +3 -2
|
@@ -3,13 +3,45 @@
|
|
|
3
3
|
* Setup Server - HTTP + WebSocket server for interactive setup wizard
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createSetupNonceStore = createSetupNonceStore;
|
|
6
7
|
exports.startSetupServer = startSetupServer;
|
|
7
8
|
const node_http_1 = require("node:http");
|
|
9
|
+
const node_crypto_1 = require("node:crypto");
|
|
8
10
|
const promises_1 = require("node:fs/promises");
|
|
9
11
|
const node_path_1 = require("node:path");
|
|
10
12
|
const ws_1 = require("ws");
|
|
11
13
|
const setup_websocket_js_1 = require("./setup-websocket.js");
|
|
14
|
+
const SETUP_NONCE_TTL_MS = 10 * 60_000;
|
|
15
|
+
const MAX_PENDING_SETUP_NONCES = 128;
|
|
16
|
+
function createSetupNonceStore(now = Date.now) {
|
|
17
|
+
const pendingNonces = new Map();
|
|
18
|
+
const removeExpired = () => {
|
|
19
|
+
const currentTime = now();
|
|
20
|
+
for (const [nonce, expiresAt] of pendingNonces) {
|
|
21
|
+
if (expiresAt <= currentTime)
|
|
22
|
+
pendingNonces.delete(nonce);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
issue() {
|
|
27
|
+
removeExpired();
|
|
28
|
+
if (pendingNonces.size >= MAX_PENDING_SETUP_NONCES)
|
|
29
|
+
return null;
|
|
30
|
+
const nonce = (0, node_crypto_1.randomBytes)(32).toString('base64url');
|
|
31
|
+
pendingNonces.set(nonce, now() + SETUP_NONCE_TTL_MS);
|
|
32
|
+
return nonce;
|
|
33
|
+
},
|
|
34
|
+
consume(candidate) {
|
|
35
|
+
removeExpired();
|
|
36
|
+
if (!pendingNonces.has(candidate))
|
|
37
|
+
return false;
|
|
38
|
+
pendingNonces.delete(candidate);
|
|
39
|
+
return true;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
12
43
|
async function startSetupServer(port = 3848) {
|
|
44
|
+
const nonceStore = createSetupNonceStore();
|
|
13
45
|
const httpServer = (0, node_http_1.createServer)(async (req, res) => {
|
|
14
46
|
if (req.url === '/setup' || req.url === '/') {
|
|
15
47
|
const htmlPaths = [
|
|
@@ -32,16 +64,20 @@ async function startSetupServer(port = 3848) {
|
|
|
32
64
|
res.end('setup.html not found');
|
|
33
65
|
return;
|
|
34
66
|
}
|
|
67
|
+
const pageNonce = nonceStore.issue();
|
|
68
|
+
if (!pageNonce) {
|
|
69
|
+
res.writeHead(429);
|
|
70
|
+
res.end('Too many pending setup pages; retry after older pages expire.');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
html = html.replace('__MAMA_SETUP_NONCE__', pageNonce);
|
|
35
74
|
res.writeHead(200, { 'Content-Type': 'text/html' });
|
|
36
75
|
res.end(html);
|
|
37
76
|
return;
|
|
38
77
|
}
|
|
39
78
|
if (req.url === '/setup-v3.css' || req.url === '/setup.css') {
|
|
40
79
|
const cssPath = (0, node_path_1.join)(__dirname, '../../public/setup-v3.css');
|
|
41
|
-
const cssPaths = [
|
|
42
|
-
cssPath,
|
|
43
|
-
(0, node_path_1.join)(__dirname, '../../public/setup.css'),
|
|
44
|
-
];
|
|
80
|
+
const cssPaths = [cssPath, (0, node_path_1.join)(__dirname, '../../public/setup.css')];
|
|
45
81
|
let css = '';
|
|
46
82
|
for (const path of cssPaths) {
|
|
47
83
|
try {
|
|
@@ -76,18 +112,28 @@ async function startSetupServer(port = 3848) {
|
|
|
76
112
|
wss.on('listening', () => {
|
|
77
113
|
console.log('[Setup] WebSocketServer is listening');
|
|
78
114
|
});
|
|
79
|
-
(0, setup_websocket_js_1.createSetupWebSocketHandler)(wss
|
|
115
|
+
const websocketLifecycle = (0, setup_websocket_js_1.createSetupWebSocketHandler)(wss, undefined, undefined, {
|
|
116
|
+
allowedOrigins: [`http://127.0.0.1:${port}`, `http://localhost:${port}`],
|
|
117
|
+
consumeNonce: (candidate) => nonceStore.consume(candidate),
|
|
118
|
+
});
|
|
80
119
|
await new Promise((resolve, reject) => {
|
|
81
120
|
httpServer.listen(port, '127.0.0.1', () => {
|
|
82
121
|
resolve();
|
|
83
122
|
});
|
|
84
123
|
httpServer.on('error', reject);
|
|
85
124
|
});
|
|
125
|
+
let closePromise = null;
|
|
86
126
|
return {
|
|
87
|
-
close: (
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
127
|
+
close: () => {
|
|
128
|
+
closePromise ??= (async () => {
|
|
129
|
+
const websocketClosed = new Promise((resolve) => wss.close(() => resolve()));
|
|
130
|
+
await websocketLifecycle.close();
|
|
131
|
+
await websocketClosed;
|
|
132
|
+
await new Promise((resolve, reject) => {
|
|
133
|
+
httpServer.close((error) => (error ? reject(error) : resolve()));
|
|
134
|
+
});
|
|
135
|
+
})();
|
|
136
|
+
return closePromise;
|
|
91
137
|
},
|
|
92
138
|
};
|
|
93
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-server.js","sourceRoot":"","sources":["../../src/setup/setup-server.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"setup-server.js","sourceRoot":"","sources":["../../src/setup/setup-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Setup WebSocket Handler -
|
|
2
|
+
* Setup WebSocket Handler - backend-powered interactive setup
|
|
3
3
|
*/
|
|
4
4
|
import type { WebSocketServer } from 'ws';
|
|
5
|
-
|
|
5
|
+
import type { IModelRunner } from '../agent/model-runner.js';
|
|
6
|
+
import { createBackendModelRunner, type BackendModelRunnerOptions } from '../agent/backend-model-runner-factory.js';
|
|
7
|
+
import type { MAMAConfig } from '../cli/config/types.js';
|
|
8
|
+
import { type SetupActionExecutor } from './setup-actions.js';
|
|
9
|
+
export interface SetupWebSocketLifecycle {
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export interface SetupWebSocketSecurity {
|
|
13
|
+
allowedOrigins: readonly string[];
|
|
14
|
+
consumeNonce(nonce: string): boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function createSetupModelRunner(config: MAMAConfig, sessionId: string, createRunner?: (config: MAMAConfig, options: BackendModelRunnerOptions) => IModelRunner): IModelRunner;
|
|
17
|
+
export declare function createSetupWebSocketHandler(wss: WebSocketServer, createRunner?: typeof createBackendModelRunner, createActionExecutor?: () => SetupActionExecutor, security?: SetupWebSocketSecurity): SetupWebSocketLifecycle;
|
|
6
18
|
//# sourceMappingURL=setup-websocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-websocket.d.ts","sourceRoot":"","sources":["../../src/setup/setup-websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"setup-websocket.d.ts","sourceRoot":"","sources":["../../src/setup/setup-websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAa,MAAM,IAAI,CAAC;AAGrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,wBAAwB,EACxB,KAAK,yBAAyB,EAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AA+B5B,MAAM,WAAW,uBAAuB;IACtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACtC;AAKD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,CACZ,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,yBAAyB,KAC/B,YAAuC,GAC3C,YAAY,CASd;AAwLD,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,eAAe,EACpB,YAAY,GAAE,OAAO,wBAAmD,EACxE,oBAAoB,GAAE,MAAM,mBAA+C,EAC3E,QAAQ,CAAC,EAAE,sBAAsB,GAChC,uBAAuB,CAkHzB"}
|
|
@@ -1,16 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Setup WebSocket Handler -
|
|
3
|
+
* Setup WebSocket Handler - backend-powered interactive setup
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createSetupModelRunner = createSetupModelRunner;
|
|
6
7
|
exports.createSetupWebSocketHandler = createSetupWebSocketHandler;
|
|
7
8
|
const node_fs_1 = require("node:fs");
|
|
8
9
|
const node_path_1 = require("node:path");
|
|
9
|
-
const
|
|
10
|
+
const backend_model_runner_factory_js_1 = require("../agent/backend-model-runner-factory.js");
|
|
10
11
|
const config_manager_js_1 = require("../cli/config/config-manager.js");
|
|
11
12
|
const setup_prompt_js_1 = require("./setup-prompt.js");
|
|
12
13
|
const complete_autonomous_prompt_js_1 = require("../onboarding/complete-autonomous-prompt.js");
|
|
13
|
-
const
|
|
14
|
+
const setup_actions_js_1 = require("./setup-actions.js");
|
|
15
|
+
const SETUP_RUNNER_STOP_TIMEOUT_MS = 5_000;
|
|
16
|
+
const MAX_SETUP_ACTION_ROUNDS = 8;
|
|
17
|
+
function createSetupModelRunner(config, sessionId, createRunner = backend_model_runner_factory_js_1.createBackendModelRunner) {
|
|
18
|
+
return createRunner(config, {
|
|
19
|
+
sessionId,
|
|
20
|
+
model: config.agent.model,
|
|
21
|
+
systemPrompt: `${setup_actions_js_1.SETUP_ACTION_PROTOCOL}\n\n${setup_prompt_js_1.SETUP_SYSTEM_PROMPT}`,
|
|
22
|
+
timeoutMs: config.agent.timeout,
|
|
23
|
+
allowedTools: [],
|
|
24
|
+
disableNativeTools: true,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
14
27
|
// @ts-expect-error - Keeping for future use, currently unused after autonomous discovery migration
|
|
15
28
|
function _extractName(input) {
|
|
16
29
|
let name = input.trim();
|
|
@@ -77,15 +90,37 @@ function detectProgress(text, isRitualMode) {
|
|
|
77
90
|
}
|
|
78
91
|
return null;
|
|
79
92
|
}
|
|
80
|
-
async function
|
|
81
|
-
if (!clientInfo.
|
|
82
|
-
throw new Error('
|
|
93
|
+
async function processModelResponse(clientInfo, userMessage) {
|
|
94
|
+
if (!clientInfo.modelRunner) {
|
|
95
|
+
throw new Error('Model runner not initialized');
|
|
96
|
+
}
|
|
97
|
+
let prompt = userMessage;
|
|
98
|
+
let assistantText = '';
|
|
99
|
+
for (let round = 0; round < MAX_SETUP_ACTION_ROUNDS; round += 1) {
|
|
100
|
+
const result = await clientInfo.modelRunner.prompt(prompt, undefined, {
|
|
101
|
+
sessionKey: clientInfo.sessionId,
|
|
102
|
+
resumeSession: true,
|
|
103
|
+
});
|
|
104
|
+
const parsed = (0, setup_actions_js_1.parseSetupActions)(result.response || '');
|
|
105
|
+
if (parsed.actions.length === 0) {
|
|
106
|
+
assistantText = parsed.visibleText;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
const actionResults = await clientInfo.actionExecutor.executeBatch(parsed.actions);
|
|
110
|
+
prompt =
|
|
111
|
+
'Trusted MAMA setup host action results:\n' +
|
|
112
|
+
JSON.stringify(actionResults) +
|
|
113
|
+
'\nContinue from these results. Do not repeat successful actions.';
|
|
114
|
+
if (round === MAX_SETUP_ACTION_ROUNDS - 1) {
|
|
115
|
+
throw new Error('Setup action loop exceeded its round limit');
|
|
116
|
+
}
|
|
83
117
|
}
|
|
84
|
-
const result = await clientInfo.cliAdapter.prompt(userMessage);
|
|
85
|
-
const assistantText = result.response || '';
|
|
86
118
|
// Check if onboarding completed (CLI wrote USER.md + SOUL.md via Write tool)
|
|
87
119
|
const mamaHome = (0, config_manager_js_1.expandPath)('~/.mama');
|
|
88
|
-
const onboardingDone = (0, node_fs_1.existsSync)((0, node_path_1.join)(mamaHome, '
|
|
120
|
+
const onboardingDone = (0, node_fs_1.existsSync)((0, node_path_1.join)(mamaHome, 'IDENTITY.md')) &&
|
|
121
|
+
(0, node_fs_1.existsSync)((0, node_path_1.join)(mamaHome, 'USER.md')) &&
|
|
122
|
+
(0, node_fs_1.existsSync)((0, node_path_1.join)(mamaHome, 'SOUL.md')) &&
|
|
123
|
+
(0, node_fs_1.existsSync)((0, node_path_1.join)(mamaHome, 'setup-complete.json'));
|
|
89
124
|
if (onboardingDone && clientInfo.isRitualMode) {
|
|
90
125
|
clientInfo.ws.send(JSON.stringify({
|
|
91
126
|
type: 'redirect',
|
|
@@ -133,26 +168,49 @@ async function sendInitialGreeting(clientInfo) {
|
|
|
133
168
|
content: greeting,
|
|
134
169
|
}));
|
|
135
170
|
}
|
|
136
|
-
function createSetupWebSocketHandler(wss) {
|
|
137
|
-
|
|
171
|
+
function createSetupWebSocketHandler(wss, createRunner = backend_model_runner_factory_js_1.createBackendModelRunner, createActionExecutor = setup_actions_js_1.createSetupActionExecutor, security) {
|
|
172
|
+
const clients = new Map();
|
|
173
|
+
const stopClient = (info) => {
|
|
174
|
+
if (!info.stopPromise) {
|
|
175
|
+
const runner = info.modelRunner;
|
|
176
|
+
info.stopPromise = info.messageTail
|
|
177
|
+
.catch(() => undefined)
|
|
178
|
+
.then(async () => {
|
|
179
|
+
info.modelRunner = null;
|
|
180
|
+
await runner?.stop();
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
return info.stopPromise;
|
|
184
|
+
};
|
|
185
|
+
wss.on('connection', async (ws, request) => {
|
|
186
|
+
const origin = request?.headers?.origin;
|
|
187
|
+
let nonce = '';
|
|
188
|
+
try {
|
|
189
|
+
nonce = new URL(request?.url ?? '', 'http://127.0.0.1').searchParams.get('nonce') ?? '';
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
nonce = '';
|
|
193
|
+
}
|
|
194
|
+
if (!security ||
|
|
195
|
+
!origin ||
|
|
196
|
+
!security.allowedOrigins.includes(origin) ||
|
|
197
|
+
clients.size > 0 ||
|
|
198
|
+
!security.consumeNonce(nonce)) {
|
|
199
|
+
ws.close(1008, 'Unauthorized setup connection');
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
138
202
|
console.log('[Setup] Client connected');
|
|
139
203
|
const sessionId = `setup_${Date.now()}`;
|
|
140
|
-
let
|
|
204
|
+
let modelRunner = null;
|
|
141
205
|
try {
|
|
142
206
|
const config = (0, config_manager_js_1.getConfig)();
|
|
143
|
-
|
|
144
|
-
sessionId,
|
|
145
|
-
model: config.agent.model,
|
|
146
|
-
systemPrompt: setup_prompt_js_1.SETUP_SYSTEM_PROMPT,
|
|
147
|
-
dangerouslySkipPermissions: config.multi_agent?.dangerouslySkipPermissions ?? true,
|
|
148
|
-
requestTimeout: config.agent.timeout,
|
|
149
|
-
});
|
|
207
|
+
modelRunner = createSetupModelRunner(config, sessionId, createRunner);
|
|
150
208
|
}
|
|
151
209
|
catch (error) {
|
|
152
|
-
console.error('[Setup]
|
|
210
|
+
console.error('[Setup] model runner creation failed:', error);
|
|
153
211
|
ws.send(JSON.stringify({
|
|
154
212
|
type: 'error',
|
|
155
|
-
message: '
|
|
213
|
+
message: 'Configured model backend initialization failed. Verify its CLI and login.',
|
|
156
214
|
}));
|
|
157
215
|
ws.close();
|
|
158
216
|
return;
|
|
@@ -160,35 +218,61 @@ function createSetupWebSocketHandler(wss) {
|
|
|
160
218
|
const clientInfo = {
|
|
161
219
|
ws,
|
|
162
220
|
sessionId,
|
|
163
|
-
|
|
221
|
+
modelRunner,
|
|
222
|
+
actionExecutor: createActionExecutor(),
|
|
164
223
|
conversationHistory: [],
|
|
224
|
+
messageTail: Promise.resolve(),
|
|
165
225
|
};
|
|
166
226
|
clients.set(ws, clientInfo);
|
|
167
|
-
ws.on('message',
|
|
168
|
-
|
|
227
|
+
ws.on('message', (data) => {
|
|
228
|
+
clientInfo.messageTail = clientInfo.messageTail
|
|
229
|
+
.then(async () => {
|
|
169
230
|
const message = JSON.parse(data.toString());
|
|
170
231
|
await handleClientMessage(clientInfo, message);
|
|
171
|
-
}
|
|
172
|
-
|
|
232
|
+
})
|
|
233
|
+
.catch((error) => {
|
|
173
234
|
console.error('[Setup] Message handling error:', error);
|
|
174
235
|
ws.send(JSON.stringify({
|
|
175
236
|
type: 'error',
|
|
176
237
|
message: error instanceof Error ? error.message : 'Unknown error',
|
|
177
238
|
}));
|
|
178
|
-
}
|
|
239
|
+
});
|
|
179
240
|
});
|
|
180
241
|
ws.on('close', () => {
|
|
181
242
|
console.log('[Setup] Client disconnected');
|
|
182
243
|
const info = clients.get(ws);
|
|
183
|
-
if (info
|
|
184
|
-
info
|
|
185
|
-
}
|
|
244
|
+
if (info)
|
|
245
|
+
void stopClient(info);
|
|
186
246
|
clients.delete(ws);
|
|
187
247
|
});
|
|
188
248
|
ws.on('error', (error) => {
|
|
189
249
|
console.error('[Setup] WebSocket error:', error);
|
|
190
250
|
});
|
|
191
251
|
});
|
|
252
|
+
return {
|
|
253
|
+
async close() {
|
|
254
|
+
const stopping = [...clients.values()].map((info) => stopClient(info));
|
|
255
|
+
for (const info of clients.values())
|
|
256
|
+
info.ws.terminate();
|
|
257
|
+
clients.clear();
|
|
258
|
+
if (stopping.length === 0)
|
|
259
|
+
return;
|
|
260
|
+
let timer;
|
|
261
|
+
try {
|
|
262
|
+
await Promise.race([
|
|
263
|
+
Promise.allSettled(stopping).then(() => undefined),
|
|
264
|
+
new Promise((resolve) => {
|
|
265
|
+
timer = setTimeout(resolve, SETUP_RUNNER_STOP_TIMEOUT_MS);
|
|
266
|
+
timer.unref();
|
|
267
|
+
}),
|
|
268
|
+
]);
|
|
269
|
+
}
|
|
270
|
+
finally {
|
|
271
|
+
if (timer)
|
|
272
|
+
clearTimeout(timer);
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
};
|
|
192
276
|
}
|
|
193
277
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
194
278
|
async function handleClientMessage(clientInfo, message) {
|
|
@@ -205,10 +289,10 @@ async function handleClientMessage(clientInfo, message) {
|
|
|
205
289
|
role: 'user',
|
|
206
290
|
content: userMessage,
|
|
207
291
|
});
|
|
208
|
-
if (!clientInfo.
|
|
292
|
+
if (!clientInfo.modelRunner) {
|
|
209
293
|
clientInfo.ws.send(JSON.stringify({
|
|
210
294
|
type: 'error',
|
|
211
|
-
message: '
|
|
295
|
+
message: 'Configured model runner not initialized',
|
|
212
296
|
}));
|
|
213
297
|
return;
|
|
214
298
|
}
|
|
@@ -219,13 +303,13 @@ async function handleClientMessage(clientInfo, message) {
|
|
|
219
303
|
? '\n\n**IMPORTANT: User browser language is Korean (ko). Respond in Korean.**'
|
|
220
304
|
: '\n\n**IMPORTANT: User browser language is English (en). Respond in English.**';
|
|
221
305
|
const systemPrompt = clientInfo.isRitualMode
|
|
222
|
-
? complete_autonomous_prompt_js_1.COMPLETE_AUTONOMOUS_PROMPT
|
|
223
|
-
: setup_prompt_js_1.SETUP_SYSTEM_PROMPT
|
|
306
|
+
? `${setup_actions_js_1.SETUP_ACTION_PROTOCOL}\n\n${complete_autonomous_prompt_js_1.COMPLETE_AUTONOMOUS_PROMPT}${languageInstruction}`
|
|
307
|
+
: `${setup_actions_js_1.SETUP_ACTION_PROTOCOL}\n\n${setup_prompt_js_1.SETUP_SYSTEM_PROMPT}${languageInstruction}`;
|
|
224
308
|
// Update system prompt if needed (ritual vs setup mode)
|
|
225
|
-
if (clientInfo.
|
|
226
|
-
clientInfo.
|
|
309
|
+
if (clientInfo.modelRunner) {
|
|
310
|
+
clientInfo.modelRunner.setSystemPrompt(systemPrompt);
|
|
227
311
|
}
|
|
228
|
-
const assistantMessage = await
|
|
312
|
+
const assistantMessage = await processModelResponse(clientInfo, userMessage);
|
|
229
313
|
if (assistantMessage) {
|
|
230
314
|
clientInfo.conversationHistory.push({
|
|
231
315
|
role: 'assistant',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-websocket.js","sourceRoot":"","sources":["../../src/setup/setup-websocket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup-websocket.js","sourceRoot":"","sources":["../../src/setup/setup-websocket.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/public/setup.html
CHANGED
|
@@ -765,7 +765,8 @@
|
|
|
765
765
|
|
|
766
766
|
isConnecting = true;
|
|
767
767
|
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
768
|
-
const
|
|
768
|
+
const setupNonce = '__MAMA_SETUP_NONCE__';
|
|
769
|
+
const wsUrl = `${protocol}//${window.location.host}/setup-ws?nonce=${encodeURIComponent(setupNonce)}`;
|
|
769
770
|
|
|
770
771
|
ws = new WebSocket(wsUrl);
|
|
771
772
|
|
|
@@ -790,10 +791,7 @@
|
|
|
790
791
|
} catch (error) {
|
|
791
792
|
console.error('[Setup] Invalid websocket payload:', event.data);
|
|
792
793
|
const preview = String(event.data).slice(0, 200);
|
|
793
|
-
showStatus(
|
|
794
|
-
`서버 응답이 JSON이 아닙니다. 응답 미리보기: ${preview}`,
|
|
795
|
-
'error'
|
|
796
|
-
);
|
|
794
|
+
showStatus(`서버 응답이 JSON이 아닙니다. 응답 미리보기: ${preview}`, 'error');
|
|
797
795
|
return;
|
|
798
796
|
}
|
|
799
797
|
handleMessage(data);
|
|
@@ -805,11 +803,16 @@
|
|
|
805
803
|
showStatus('Connection error occurred.', 'error');
|
|
806
804
|
};
|
|
807
805
|
|
|
808
|
-
ws.onclose = () => {
|
|
806
|
+
ws.onclose = (event) => {
|
|
809
807
|
console.log('WebSocket disconnected');
|
|
810
808
|
isConnecting = false;
|
|
811
809
|
setInputEnabled(false);
|
|
812
810
|
|
|
811
|
+
if (event.code === 1008) {
|
|
812
|
+
showStatus('Setup authorization expired. Refresh this page to reconnect.', 'error');
|
|
813
|
+
return;
|
|
814
|
+
}
|
|
815
|
+
|
|
813
816
|
setTimeout(() => {
|
|
814
817
|
if (!isConnecting) {
|
|
815
818
|
connectWebSocket();
|
|
@@ -34,14 +34,15 @@ const SYSTEM_AGENT_IDS = new Set([
|
|
|
34
34
|
]);
|
|
35
35
|
const CLAUDE_MODEL_OPTIONS = ['claude-sonnet-4-6', 'claude-opus-4-6', 'claude-haiku-4-5-20251001'];
|
|
36
36
|
const CODEX_MODEL_OPTIONS = ['gpt-5.4', 'gpt-5.3-codex', 'gpt-5.4-mini'];
|
|
37
|
-
const
|
|
37
|
+
const CLINE_MODEL_OPTIONS = ['deepseek/deepseek-v4-flash'];
|
|
38
|
+
export const MANAGED_AGENT_BACKENDS = ['claude', 'codex', 'cline'];
|
|
38
39
|
export function getModelsForBackend(backend, currentModel) {
|
|
39
40
|
let models;
|
|
40
41
|
if (backend === 'codex') {
|
|
41
42
|
models = CODEX_MODEL_OPTIONS;
|
|
42
43
|
}
|
|
43
|
-
else if (backend === '
|
|
44
|
-
models =
|
|
44
|
+
else if (backend === 'cline') {
|
|
45
|
+
models = CLINE_MODEL_OPTIONS;
|
|
45
46
|
}
|
|
46
47
|
else {
|
|
47
48
|
models = CLAUDE_MODEL_OPTIONS;
|
|
@@ -438,7 +439,7 @@ export class AgentsModule {
|
|
|
438
439
|
const tierOptions = [1, 2, 3]
|
|
439
440
|
.map((t) => `<option value="${t}" ${(a.tier ?? 1) === t ? 'selected' : ''}>T${t}</option>`)
|
|
440
441
|
.join('');
|
|
441
|
-
const backendOptions = Array.from(new Set([
|
|
442
|
+
const backendOptions = Array.from(new Set([...MANAGED_AGENT_BACKENDS, backend]))
|
|
442
443
|
.map((b) => `<option value="${escapeAttr(b)}" ${backend === b ? 'selected' : ''}>${escapeHtml(b)}</option>`)
|
|
443
444
|
.join('');
|
|
444
445
|
el.innerHTML = `
|
|
@@ -43,6 +43,12 @@ const MODEL_OPTIONS = {
|
|
|
43
43
|
'claude-3-7-sonnet-20250219',
|
|
44
44
|
'claude-3-haiku-20240307',
|
|
45
45
|
],
|
|
46
|
+
cline: ['deepseek/deepseek-v4-flash'],
|
|
47
|
+
};
|
|
48
|
+
const DEFAULT_MODEL = {
|
|
49
|
+
claude: 'claude-sonnet-4-6',
|
|
50
|
+
codex: 'gpt-5.4',
|
|
51
|
+
cline: 'deepseek/deepseek-v4-flash',
|
|
46
52
|
};
|
|
47
53
|
export function getSettingsModelOptions(backend, currentModel) {
|
|
48
54
|
const options = MODEL_OPTIONS[backend] || MODEL_OPTIONS.claude;
|
|
@@ -630,14 +636,29 @@ export class SettingsModule {
|
|
|
630
636
|
* Collect form data into config update object
|
|
631
637
|
*/
|
|
632
638
|
collectFormData() {
|
|
633
|
-
const backend = (this.getSelectValue('settings-agent-backend') ||
|
|
634
|
-
|
|
635
|
-
|
|
639
|
+
const backend = (this.getSelectValue('settings-agent-backend') ||
|
|
640
|
+
this.config?.agent?.backend ||
|
|
641
|
+
'claude');
|
|
642
|
+
const model = this.getSelectValue('settings-agent-model') || this.config?.agent?.model || '';
|
|
643
|
+
const effort = (this.getSelectValue('settings-agent-effort') ||
|
|
644
|
+
this.config?.agent?.effort ||
|
|
645
|
+
'medium');
|
|
636
646
|
const useClaudeCli = backend === 'claude';
|
|
637
|
-
const resolvedModel =
|
|
647
|
+
const resolvedModel = this.getNormalizedModelForBackend(backend, model);
|
|
638
648
|
const normalizedEffort = this.supportsEffortModel(resolvedModel)
|
|
639
649
|
? this.normalizeEffortForModel(resolvedModel, effort)
|
|
640
650
|
: undefined;
|
|
651
|
+
const hasToolControls = document.querySelectorAll('.gateway-tool, .mcp-tool').length > 0;
|
|
652
|
+
const configuredTools = this.config?.agent?.tools;
|
|
653
|
+
const tools = hasToolControls
|
|
654
|
+
? this.collectToolModeData()
|
|
655
|
+
: {
|
|
656
|
+
gateway: configuredTools?.gateway ?? [],
|
|
657
|
+
mcp: configuredTools?.mcp ?? [],
|
|
658
|
+
mcp_config: typeof configuredTools?.mcp_config === 'string'
|
|
659
|
+
? configuredTools.mcp_config
|
|
660
|
+
: '~/.mama/mama-mcp-config.json',
|
|
661
|
+
};
|
|
641
662
|
// Get token values - if empty and original was masked, keep original
|
|
642
663
|
const discordToken = this.getTokenValue('settings-discord-token', this.config?.discord?.token);
|
|
643
664
|
const slackBotToken = this.getTokenValue('settings-slack-bot-token', this.config?.slack?.bot_token);
|
|
@@ -675,9 +696,9 @@ export class SettingsModule {
|
|
|
675
696
|
model: resolvedModel,
|
|
676
697
|
// Effort for Claude 4.6 models (adaptive thinking). 'max' is Opus-only.
|
|
677
698
|
effort: normalizedEffort,
|
|
678
|
-
max_turns: this.parseIntegerInput('settings-agent-max-turns', 1, 100, 10),
|
|
679
|
-
timeout: this.parseIntegerInput('settings-agent-timeout', 1, 600,
|
|
680
|
-
tools
|
|
699
|
+
max_turns: this.parseIntegerInput('settings-agent-max-turns', 1, 100, this.config?.agent?.max_turns ?? 10),
|
|
700
|
+
timeout: this.parseIntegerInput('settings-agent-timeout', 1, 600, Math.round((this.config?.agent?.timeout ?? 300000) / 1000)) * 1000,
|
|
701
|
+
tools,
|
|
681
702
|
},
|
|
682
703
|
token_budget: {
|
|
683
704
|
// Keep existing integer constraint for daily limit to avoid partial values.
|
|
@@ -767,14 +788,17 @@ export class SettingsModule {
|
|
|
767
788
|
getNormalizedModelForBackend(backend, model) {
|
|
768
789
|
const isCodexBackend = backend === 'codex';
|
|
769
790
|
if (!model) {
|
|
770
|
-
return
|
|
791
|
+
return DEFAULT_MODEL[backend];
|
|
771
792
|
}
|
|
772
793
|
const isClaudeModel = /^claude-/i.test(model);
|
|
773
794
|
if (isCodexBackend && isClaudeModel) {
|
|
774
|
-
return
|
|
795
|
+
return DEFAULT_MODEL.codex;
|
|
796
|
+
}
|
|
797
|
+
if (backend === 'cline' && (isClaudeModel || /^gpt-/i.test(model))) {
|
|
798
|
+
return DEFAULT_MODEL.cline;
|
|
775
799
|
}
|
|
776
800
|
if (backend === 'claude' && !isClaudeModel) {
|
|
777
|
-
return
|
|
801
|
+
return DEFAULT_MODEL.claude;
|
|
778
802
|
}
|
|
779
803
|
return model;
|
|
780
804
|
}
|
|
@@ -43,14 +43,15 @@ const SYSTEM_AGENT_IDS = new Set([
|
|
|
43
43
|
|
|
44
44
|
const CLAUDE_MODEL_OPTIONS = ['claude-sonnet-4-6', 'claude-opus-4-6', 'claude-haiku-4-5-20251001'];
|
|
45
45
|
const CODEX_MODEL_OPTIONS = ['gpt-5.4', 'gpt-5.3-codex', 'gpt-5.4-mini'];
|
|
46
|
-
const
|
|
46
|
+
const CLINE_MODEL_OPTIONS = ['deepseek/deepseek-v4-flash'];
|
|
47
|
+
export const MANAGED_AGENT_BACKENDS = ['claude', 'codex', 'cline'] as const;
|
|
47
48
|
|
|
48
49
|
export function getModelsForBackend(backend: string, currentModel?: string): string[] {
|
|
49
50
|
let models: readonly string[];
|
|
50
51
|
if (backend === 'codex') {
|
|
51
52
|
models = CODEX_MODEL_OPTIONS;
|
|
52
|
-
} else if (backend === '
|
|
53
|
-
models =
|
|
53
|
+
} else if (backend === 'cline') {
|
|
54
|
+
models = CLINE_MODEL_OPTIONS;
|
|
54
55
|
} else {
|
|
55
56
|
models = CLAUDE_MODEL_OPTIONS;
|
|
56
57
|
}
|
|
@@ -501,7 +502,7 @@ export class AgentsModule {
|
|
|
501
502
|
.map((t) => `<option value="${t}" ${(a.tier ?? 1) === t ? 'selected' : ''}>T${t}</option>`)
|
|
502
503
|
.join('');
|
|
503
504
|
|
|
504
|
-
const backendOptions = Array.from(new Set([
|
|
505
|
+
const backendOptions = Array.from(new Set([...MANAGED_AGENT_BACKENDS, backend]))
|
|
505
506
|
.map(
|
|
506
507
|
(b) =>
|
|
507
508
|
`<option value="${escapeAttr(b)}" ${backend === b ? 'selected' : ''}>${escapeHtml(b)}</option>`
|