sam-coder-cli 1.0.40 → 1.0.42
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/bin/agi-cli.js +23 -9
- package/bin/ai-team.js +13 -1
- package/bin/multiplayer-client.js +3 -4
- package/package.json +1 -1
package/bin/agi-cli.js
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
const ui = require('./ui.js');
|
|
4
4
|
const readline = require('readline');
|
|
5
5
|
const path = require('path');
|
|
6
|
+
// Import MultiplayerMode at the top level to avoid reference errors
|
|
7
|
+
let MultiplayerMode;
|
|
6
8
|
const os = require('os');
|
|
7
9
|
const fs = require('fs').promises;
|
|
8
10
|
const { exec } = require('child_process');
|
|
@@ -782,15 +784,24 @@ async function start() {
|
|
|
782
784
|
|
|
783
785
|
ui.showHeader();
|
|
784
786
|
|
|
785
|
-
//
|
|
787
|
+
// Multiplayer mode via CLI flag
|
|
786
788
|
if (process.argv.includes('--multiplayer')) {
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
789
|
+
// Lazy load MultiplayerMode to avoid circular dependencies
|
|
790
|
+
if (!MultiplayerMode) {
|
|
791
|
+
MultiplayerMode = require('./multiplayer-mode');
|
|
792
|
+
}
|
|
793
|
+
try {
|
|
794
|
+
const multiplayerMode = new MultiplayerMode({
|
|
795
|
+
rl,
|
|
796
|
+
model: MODEL,
|
|
797
|
+
serverUrl: process.env.MP_SERVER_URL || 'ws://localhost:8080'
|
|
798
|
+
});
|
|
799
|
+
await multiplayerMode.start();
|
|
800
|
+
return;
|
|
801
|
+
} catch (error) {
|
|
802
|
+
console.error('Failed to start multiplayer mode:', error);
|
|
803
|
+
process.exit(1);
|
|
804
|
+
}
|
|
794
805
|
}
|
|
795
806
|
|
|
796
807
|
// Standard single-agent mode
|
|
@@ -801,7 +812,10 @@ async function start() {
|
|
|
801
812
|
|
|
802
813
|
const mode = await askForMode(rl, true);
|
|
803
814
|
if (mode === 'multiplayer') {
|
|
804
|
-
|
|
815
|
+
// Lazy load MultiplayerMode to avoid circular dependencies
|
|
816
|
+
if (!MultiplayerMode) {
|
|
817
|
+
MultiplayerMode = require('./multiplayer-mode');
|
|
818
|
+
}
|
|
805
819
|
try {
|
|
806
820
|
const multiplayerMode = new MultiplayerMode({
|
|
807
821
|
rl,
|
package/bin/ai-team.js
CHANGED
|
@@ -5,6 +5,9 @@ const readline = require('readline');
|
|
|
5
5
|
const chalk = require('chalk');
|
|
6
6
|
const { v4: uuidv4 } = require('uuid');
|
|
7
7
|
|
|
8
|
+
// Flag to track if MultiplayerClient is being required to prevent infinite loops
|
|
9
|
+
let isRequiringMultiplayerClient = false;
|
|
10
|
+
|
|
8
11
|
// Lazy load dependencies to avoid circular dependencies
|
|
9
12
|
function getCallOpenRouter() {
|
|
10
13
|
if (!callOpenRouter) {
|
|
@@ -14,8 +17,17 @@ function getCallOpenRouter() {
|
|
|
14
17
|
}
|
|
15
18
|
|
|
16
19
|
function getMultiplayerClient() {
|
|
20
|
+
if (!MultiplayerClient && !isRequiringMultiplayerClient) {
|
|
21
|
+
try {
|
|
22
|
+
isRequiringMultiplayerClient = true;
|
|
23
|
+
const mc = require('./multiplayer-client');
|
|
24
|
+
MultiplayerClient = mc.MultiplayerClient;
|
|
25
|
+
} finally {
|
|
26
|
+
isRequiringMultiplayerClient = false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
17
29
|
if (!MultiplayerClient) {
|
|
18
|
-
|
|
30
|
+
throw new Error('Failed to load MultiplayerClient');
|
|
19
31
|
}
|
|
20
32
|
return MultiplayerClient;
|
|
21
33
|
}
|
|
@@ -891,7 +891,6 @@ class MultiplayerClient extends EventEmitter {
|
|
|
891
891
|
}
|
|
892
892
|
}
|
|
893
893
|
|
|
894
|
-
module.exports
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
};
|
|
894
|
+
// Export MultiplayerClient and MultiplayerServer as direct properties of module.exports
|
|
895
|
+
module.exports.MultiplayerClient = MultiplayerClient;
|
|
896
|
+
module.exports.MultiplayerServer = MultiplayerServer;
|