@defai.digital/automatosx 5.6.29 → 5.6.31
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 +146 -0
- package/README.md +2 -2
- package/dist/index.js +91 -40
- package/examples/agents/automatosx.config.json +286 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,152 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [5.6.31] - 2025-10-26
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
**Node.js DEP0190 Deprecation Warning Resolution**
|
|
10
|
+
|
|
11
|
+
This release eliminates the Node.js DEP0190 deprecation warning that appeared when executing AutomatosX commands on macOS and Linux systems.
|
|
12
|
+
|
|
13
|
+
#### Problem
|
|
14
|
+
|
|
15
|
+
When running `ax run` or other agent commands, users on macOS/Linux would see the following warning:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
(node:xxxxx) [DEP0190] DeprecationWarning: Passing args to a child process with
|
|
19
|
+
shell option true can lead to security vulnerabilities, as the arguments are not
|
|
20
|
+
escaped, only concatenated.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Root Cause**: v5.6.29 added `shell: true` to all `spawn()` calls to fix Windows `.cmd`/`.bat` execution (Issue #4). However, on Node.js v22+, using `shell: true` with an args array triggers the DEP0190 security warning because arguments are concatenated without escaping.
|
|
24
|
+
|
|
25
|
+
#### Solution
|
|
26
|
+
|
|
27
|
+
Modified all provider spawn calls to use shell option conditionally - only on Windows where it's required for `.cmd`/`.bat` files:
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
// Before
|
|
31
|
+
shell: true,
|
|
32
|
+
|
|
33
|
+
// After
|
|
34
|
+
shell: process.platform === 'win32',
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
#### Changes
|
|
38
|
+
|
|
39
|
+
**Modified Files** (5 spawn locations):
|
|
40
|
+
1. `src/providers/openai-provider.ts` - Lines 182, 478
|
|
41
|
+
2. `src/providers/gemini-provider.ts` - Line 185
|
|
42
|
+
3. `src/providers/claude-provider.ts` - Line 174
|
|
43
|
+
4. `src/providers/base-provider.ts` - Line 711
|
|
44
|
+
|
|
45
|
+
**Impact**:
|
|
46
|
+
- ✅ Windows users: No change, `.cmd`/`.bat` files still work correctly
|
|
47
|
+
- ✅ macOS/Linux users: DEP0190 warning eliminated
|
|
48
|
+
- ✅ Security: Reduced command injection attack surface on Unix systems
|
|
49
|
+
- ✅ Compatibility: Follows Node.js best practices
|
|
50
|
+
- ✅ No breaking changes: 100% backward compatible
|
|
51
|
+
|
|
52
|
+
#### Verification
|
|
53
|
+
- TypeScript type check: PASS
|
|
54
|
+
- Build: SUCCESS (956.51 KB)
|
|
55
|
+
- Smoke tests: PASS (all commands work without warnings)
|
|
56
|
+
- CLI functionality: Verified on macOS (no deprecation warning)
|
|
57
|
+
|
|
58
|
+
#### Technical Details
|
|
59
|
+
|
|
60
|
+
**Why Windows needs `shell: true`**: Windows `.cmd` and `.bat` files are not true executables and must be executed through `cmd.exe`. Setting `shell: true` enables this on Windows while using direct execution on Unix systems.
|
|
61
|
+
|
|
62
|
+
**Security Improvement**: On Unix systems, arguments are now passed directly to `spawn()` without shell interpretation, eliminating the risk of shell metacharacter injection.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## [5.6.30] - 2025-10-26
|
|
67
|
+
|
|
68
|
+
### Fixed
|
|
69
|
+
|
|
70
|
+
**Init Command: Complete Agent List & Enhanced Home Directory Validation**
|
|
71
|
+
|
|
72
|
+
This release fixes two user experience issues in the `ax init` command: incomplete agent listing and improved guidance for home directory initialization attempts.
|
|
73
|
+
|
|
74
|
+
#### Issue #1: Incomplete Agent List Display
|
|
75
|
+
|
|
76
|
+
**Problem**: The `ax init` success message only displayed 12 out of 19 available agents, causing user confusion about which agents were installed.
|
|
77
|
+
|
|
78
|
+
**Missing Agents** (7 total):
|
|
79
|
+
- `aerospace-scientist` (Astrid) - Aerospace Mission Scientist
|
|
80
|
+
- `creative-marketer` (Candy) - Creative Marketing Strategist
|
|
81
|
+
- `data-scientist` (Dana) - Data Scientist
|
|
82
|
+
- `fullstack` (Felix) - Fullstack Engineer
|
|
83
|
+
- `mobile` (Maya) - Mobile Engineer
|
|
84
|
+
- `quantum-engineer` (Quinn) - Quantum Systems Engineer
|
|
85
|
+
- `stan` (Peter) - Best Practices Expert
|
|
86
|
+
|
|
87
|
+
**Incorrect Role**: `data` agent displayed as "Data scientist" instead of "Data Engineer" (Daisy)
|
|
88
|
+
|
|
89
|
+
**Fix** (`src/cli/commands/init.ts:190-209`):
|
|
90
|
+
- Updated hardcoded agent list to include all 19 agents
|
|
91
|
+
- Corrected all agent roles to match YAML definitions
|
|
92
|
+
- Added "(19 total)" label for clarity
|
|
93
|
+
- Updated display format: `• agent-name - DisplayName (Role)`
|
|
94
|
+
|
|
95
|
+
**Impact**:
|
|
96
|
+
- ✅ Users now see complete list of all 19 available agents
|
|
97
|
+
- ✅ All roles accurately reflect agent capabilities
|
|
98
|
+
- ✅ Consistent with `ax list agents` output
|
|
99
|
+
- ✅ No confusion about missing agents
|
|
100
|
+
|
|
101
|
+
#### Issue #2: Enhanced Home Directory Error Message
|
|
102
|
+
|
|
103
|
+
**Problem**: When users accidentally ran `ax init` in their home directory (`~/`), the error message was unclear and didn't guide them on next steps.
|
|
104
|
+
|
|
105
|
+
**Fix** (`src/cli/commands/init.ts:87-111`):
|
|
106
|
+
- Added step-by-step guide for creating project directory
|
|
107
|
+
- Included concrete example with full path
|
|
108
|
+
- Shows both `mkdir` and `cd` commands
|
|
109
|
+
- Platform-aware messaging (Windows vs Unix)
|
|
110
|
+
|
|
111
|
+
**New Error Message**:
|
|
112
|
+
```
|
|
113
|
+
❌ Error: Cannot initialize AutomatosX in home directory
|
|
114
|
+
⚠️ AutomatosX must be initialized in a project directory, not in ~/
|
|
115
|
+
|
|
116
|
+
📋 Please follow these steps:
|
|
117
|
+
1. Create a project directory:
|
|
118
|
+
mkdir my-project
|
|
119
|
+
cd my-project
|
|
120
|
+
|
|
121
|
+
2. Initialize AutomatosX:
|
|
122
|
+
ax init
|
|
123
|
+
|
|
124
|
+
3. Start using AutomatosX:
|
|
125
|
+
ax list agents
|
|
126
|
+
ax run <agent-name> "your task"
|
|
127
|
+
|
|
128
|
+
Example:
|
|
129
|
+
mkdir ~/projects/my-ai-project
|
|
130
|
+
cd ~/projects/my-ai-project
|
|
131
|
+
ax init
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Impact**:
|
|
135
|
+
- ✅ Users understand why initialization failed
|
|
136
|
+
- ✅ Clear guidance on correct initialization steps
|
|
137
|
+
- ✅ Reduces support burden for common mistake
|
|
138
|
+
- ✅ Better onboarding experience
|
|
139
|
+
|
|
140
|
+
#### Verification
|
|
141
|
+
- TypeScript type check: PASS (0 errors)
|
|
142
|
+
- Project build: SUCCESS (955.70 KB)
|
|
143
|
+
- Manual testing: All 19 agents display correctly
|
|
144
|
+
- Home directory validation: Error message tested and verified
|
|
145
|
+
|
|
146
|
+
#### Files Modified
|
|
147
|
+
- `src/cli/commands/init.ts` (lines 87-111, 190-209)
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
5
151
|
## [5.6.29] - 2025-10-26
|
|
6
152
|
|
|
7
153
|
### Fixed
|
package/README.md
CHANGED
|
@@ -13,9 +13,9 @@ AutomatosX is a CLI-first orchestration tool that transforms stateless AI assist
|
|
|
13
13
|
[](https://www.microsoft.com/windows)
|
|
14
14
|
[](https://ubuntu.com)
|
|
15
15
|
|
|
16
|
-
**Status**: ✅ Production Ready · **v5.6.
|
|
16
|
+
**Status**: ✅ Production Ready · **v5.6.31** · October 2025 · 19 Specialized Agents · 100% Resource Leak Free · Production Stability
|
|
17
17
|
|
|
18
|
-
**Latest (v5.6.
|
|
18
|
+
**Latest (v5.6.31)**: Node.js DEP0190 Deprecation Warning Resolution - Eliminated deprecation warning on macOS/Linux by using conditional shell option (only on Windows). Improves security by reducing command injection attack surface on Unix systems while maintaining Windows `.cmd`/`.bat` compatibility. [See full changelog →](CHANGELOG.md)
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
package/dist/index.js
CHANGED
|
@@ -1916,7 +1916,7 @@ var init_base_provider = __esm({
|
|
|
1916
1916
|
const versionArg = this.config.versionArg || "--version";
|
|
1917
1917
|
const proc2 = spawn2(sanitizedCommand, [versionArg], {
|
|
1918
1918
|
stdio: "pipe",
|
|
1919
|
-
shell:
|
|
1919
|
+
shell: process.platform === "win32"
|
|
1920
1920
|
// Required for Windows .cmd/.bat files
|
|
1921
1921
|
});
|
|
1922
1922
|
processManager2.register(proc2, `${command}-version-check`);
|
|
@@ -2567,7 +2567,7 @@ This is a placeholder response. Set AUTOMATOSX_MOCK_PROVIDERS=false to use real
|
|
|
2567
2567
|
stdio: ["pipe", "pipe", "pipe"],
|
|
2568
2568
|
// Use pipe for stdin
|
|
2569
2569
|
env: process.env,
|
|
2570
|
-
shell:
|
|
2570
|
+
shell: process.platform === "win32"
|
|
2571
2571
|
// Required for Windows .cmd/.bat files
|
|
2572
2572
|
});
|
|
2573
2573
|
} catch (error) {
|
|
@@ -2896,7 +2896,7 @@ This is a placeholder response. Set AUTOMATOSX_MOCK_PROVIDERS=false to use real
|
|
|
2896
2896
|
stdio: ["pipe", "pipe", "pipe"],
|
|
2897
2897
|
// Enable stdin for prompt input
|
|
2898
2898
|
env: process.env,
|
|
2899
|
-
shell:
|
|
2899
|
+
shell: process.platform === "win32"
|
|
2900
2900
|
// Required for Windows .cmd/.bat files
|
|
2901
2901
|
});
|
|
2902
2902
|
} catch (error) {
|
|
@@ -3175,7 +3175,7 @@ This is a placeholder response. Set AUTOMATOSX_MOCK_PROVIDERS=false to use real
|
|
|
3175
3175
|
stdio: ["pipe", "pipe", "pipe"],
|
|
3176
3176
|
// Enable stdin for prompt input
|
|
3177
3177
|
env: process.env,
|
|
3178
|
-
shell:
|
|
3178
|
+
shell: process.platform === "win32"
|
|
3179
3179
|
// Required for Windows .cmd/.bat files
|
|
3180
3180
|
});
|
|
3181
3181
|
} catch (error) {
|
|
@@ -3382,7 +3382,7 @@ This is a placeholder streaming response.`;
|
|
|
3382
3382
|
stdio: ["pipe", "pipe", "pipe"],
|
|
3383
3383
|
// Enable stdin for prompt input
|
|
3384
3384
|
env: process.env,
|
|
3385
|
-
shell:
|
|
3385
|
+
shell: process.platform === "win32"
|
|
3386
3386
|
// Required for Windows .cmd/.bat files
|
|
3387
3387
|
});
|
|
3388
3388
|
} catch (error) {
|
|
@@ -4830,8 +4830,8 @@ var PRECOMPILED_CONFIG = {
|
|
|
4830
4830
|
},
|
|
4831
4831
|
"execution": {
|
|
4832
4832
|
"defaultTimeout": 15e5,
|
|
4833
|
-
"maxConcurrentAgents": 4,
|
|
4834
4833
|
"concurrency": {
|
|
4834
|
+
"maxConcurrentAgents": 4,
|
|
4835
4835
|
"autoDetect": false,
|
|
4836
4836
|
"cpuMultiplier": 1,
|
|
4837
4837
|
"minConcurrency": 2,
|
|
@@ -5034,7 +5034,7 @@ var PRECOMPILED_CONFIG = {
|
|
|
5034
5034
|
"healthCheckInterval": 6e4,
|
|
5035
5035
|
"providerCooldownMs": 3e4
|
|
5036
5036
|
},
|
|
5037
|
-
"version": "5.6.
|
|
5037
|
+
"version": "5.6.28"
|
|
5038
5038
|
};
|
|
5039
5039
|
|
|
5040
5040
|
// src/core/config.ts
|
|
@@ -6589,6 +6589,37 @@ var initCommand = {
|
|
|
6589
6589
|
const createdResources = [];
|
|
6590
6590
|
let shouldRollback = false;
|
|
6591
6591
|
try {
|
|
6592
|
+
const homeDir = process.platform === "win32" ? process.env.USERPROFILE : process.env.HOME;
|
|
6593
|
+
if (homeDir) {
|
|
6594
|
+
const isSameDir = process.platform === "win32" ? resolve(projectDir).toLowerCase() === resolve(homeDir).toLowerCase() : resolve(projectDir) === resolve(homeDir);
|
|
6595
|
+
if (isSameDir) {
|
|
6596
|
+
console.log(chalk27.red("\n\u274C Error: Cannot initialize AutomatosX in home directory"));
|
|
6597
|
+
const homeDirDisplay = process.platform === "win32" ? "%USERPROFILE%" : "~/";
|
|
6598
|
+
console.log(chalk27.yellow(`
|
|
6599
|
+
\u26A0\uFE0F AutomatosX must be initialized in a project directory, not in ${homeDirDisplay}`));
|
|
6600
|
+
console.log(chalk27.cyan("\n\u{1F4CB} Please follow these steps:\n"));
|
|
6601
|
+
console.log(chalk27.white(" 1. Create a project directory:"));
|
|
6602
|
+
console.log(chalk27.gray(" mkdir my-project"));
|
|
6603
|
+
console.log(chalk27.gray(" cd my-project\n"));
|
|
6604
|
+
console.log(chalk27.white(" 2. Initialize AutomatosX:"));
|
|
6605
|
+
console.log(chalk27.gray(" ax init\n"));
|
|
6606
|
+
console.log(chalk27.white(" 3. Start using AutomatosX:"));
|
|
6607
|
+
console.log(chalk27.gray(" ax list agents"));
|
|
6608
|
+
console.log(chalk27.gray(' ax run <agent-name> "your task"\n'));
|
|
6609
|
+
if (process.platform === "win32") {
|
|
6610
|
+
console.log(chalk27.dim(" Example (Windows):"));
|
|
6611
|
+
console.log(chalk27.dim(" mkdir %USERPROFILE%\\projects\\my-ai-project"));
|
|
6612
|
+
console.log(chalk27.dim(" cd %USERPROFILE%\\projects\\my-ai-project"));
|
|
6613
|
+
console.log(chalk27.dim(" ax init\n"));
|
|
6614
|
+
} else {
|
|
6615
|
+
console.log(chalk27.dim(" Example:"));
|
|
6616
|
+
console.log(chalk27.dim(" mkdir ~/projects/my-ai-project"));
|
|
6617
|
+
console.log(chalk27.dim(" cd ~/projects/my-ai-project"));
|
|
6618
|
+
console.log(chalk27.dim(" ax init\n"));
|
|
6619
|
+
}
|
|
6620
|
+
process.exit(1);
|
|
6621
|
+
}
|
|
6622
|
+
}
|
|
6592
6623
|
console.log(chalk27.cyan("\u{1F50D} Validating environment..."));
|
|
6593
6624
|
await validateEnvironment(packageRoot);
|
|
6594
6625
|
console.log(chalk27.green(" \u2713 Environment validation passed"));
|
|
@@ -6640,19 +6671,26 @@ var initCommand = {
|
|
|
6640
6671
|
console.log(chalk27.gray(" 1. Review automatosx.config.json"));
|
|
6641
6672
|
console.log(chalk27.gray(" 2. List agents: automatosx list agents"));
|
|
6642
6673
|
console.log(chalk27.gray(' 3. Run an agent: automatosx run backend "Hello!"\n'));
|
|
6643
|
-
console.log(chalk27.cyan("Available example agents:"));
|
|
6644
|
-
console.log(chalk27.gray(" \u2022
|
|
6645
|
-
console.log(chalk27.gray(" \u2022
|
|
6646
|
-
console.log(chalk27.gray(" \u2022
|
|
6647
|
-
console.log(chalk27.gray(" \u2022
|
|
6648
|
-
console.log(chalk27.gray(" \u2022
|
|
6649
|
-
console.log(chalk27.gray(" \u2022 data
|
|
6650
|
-
console.log(chalk27.gray(" \u2022
|
|
6651
|
-
console.log(chalk27.gray(" \u2022
|
|
6652
|
-
console.log(chalk27.gray(" \u2022
|
|
6653
|
-
console.log(chalk27.gray(" \u2022
|
|
6654
|
-
console.log(chalk27.gray(" \u2022
|
|
6655
|
-
console.log(chalk27.gray(" \u2022
|
|
6674
|
+
console.log(chalk27.cyan("Available example agents (19 total):"));
|
|
6675
|
+
console.log(chalk27.gray(" \u2022 aerospace-scientist - Astrid (Aerospace Mission Scientist)"));
|
|
6676
|
+
console.log(chalk27.gray(" \u2022 backend - Bob (Senior Backend Engineer)"));
|
|
6677
|
+
console.log(chalk27.gray(" \u2022 ceo - Eric (Chief Executive Officer)"));
|
|
6678
|
+
console.log(chalk27.gray(" \u2022 creative-marketer - Candy (Creative Marketing Strategist)"));
|
|
6679
|
+
console.log(chalk27.gray(" \u2022 cto - Tony (Chief Technology Officer)"));
|
|
6680
|
+
console.log(chalk27.gray(" \u2022 data - Daisy (Data Engineer)"));
|
|
6681
|
+
console.log(chalk27.gray(" \u2022 data-scientist - Dana (Data Scientist)"));
|
|
6682
|
+
console.log(chalk27.gray(" \u2022 design - Debbee (UX/UI Designer)"));
|
|
6683
|
+
console.log(chalk27.gray(" \u2022 devops - Oliver (DevOps Engineer)"));
|
|
6684
|
+
console.log(chalk27.gray(" \u2022 frontend - Frank (Senior Frontend Developer)"));
|
|
6685
|
+
console.log(chalk27.gray(" \u2022 fullstack - Felix (Fullstack Engineer)"));
|
|
6686
|
+
console.log(chalk27.gray(" \u2022 mobile - Maya (Mobile Engineer)"));
|
|
6687
|
+
console.log(chalk27.gray(" \u2022 product - Paris (Product Manager)"));
|
|
6688
|
+
console.log(chalk27.gray(" \u2022 quality - Queenie (QA Engineer)"));
|
|
6689
|
+
console.log(chalk27.gray(" \u2022 quantum-engineer - Quinn (Quantum Systems Engineer)"));
|
|
6690
|
+
console.log(chalk27.gray(" \u2022 researcher - Rodman (Researcher)"));
|
|
6691
|
+
console.log(chalk27.gray(" \u2022 security - Steve (Security Engineer)"));
|
|
6692
|
+
console.log(chalk27.gray(" \u2022 stan - Peter (Best Practices Expert)"));
|
|
6693
|
+
console.log(chalk27.gray(" \u2022 writer - Wendy (Technical Writer)\n"));
|
|
6656
6694
|
console.log(chalk27.cyan("Claude Code Integration:"));
|
|
6657
6695
|
console.log(chalk27.gray(" \u2022 Use /ax-agent command in Claude Code"));
|
|
6658
6696
|
console.log(chalk27.gray(" \u2022 Example: /ax-agent backend, create a REST API"));
|
|
@@ -19042,14 +19080,27 @@ var statusCommand3 = {
|
|
|
19042
19080
|
handler: async (argv2) => {
|
|
19043
19081
|
try {
|
|
19044
19082
|
const startTime = Date.now();
|
|
19045
|
-
const
|
|
19046
|
-
const projectDir = process.cwd();
|
|
19083
|
+
const workingDir = process.cwd();
|
|
19047
19084
|
const pathResolver = new PathResolver({
|
|
19048
|
-
projectDir,
|
|
19049
|
-
workingDir
|
|
19050
|
-
agentWorkspace: join(
|
|
19085
|
+
projectDir: workingDir,
|
|
19086
|
+
workingDir,
|
|
19087
|
+
agentWorkspace: join(workingDir, ".automatosx", "workspaces")
|
|
19051
19088
|
});
|
|
19052
19089
|
const detectedProjectDir = await pathResolver.detectProjectRoot();
|
|
19090
|
+
let config;
|
|
19091
|
+
try {
|
|
19092
|
+
config = await loadConfig(detectedProjectDir);
|
|
19093
|
+
} catch (error) {
|
|
19094
|
+
logger.warn("Status command using default configuration due to load failure", {
|
|
19095
|
+
error: error.message
|
|
19096
|
+
});
|
|
19097
|
+
config = DEFAULT_CONFIG;
|
|
19098
|
+
}
|
|
19099
|
+
if (!config) {
|
|
19100
|
+
logger.warn("Status command received empty configuration, falling back to defaults");
|
|
19101
|
+
config = DEFAULT_CONFIG;
|
|
19102
|
+
}
|
|
19103
|
+
const providerConfigs = config.providers ?? {};
|
|
19053
19104
|
const automatosxDir = join(detectedProjectDir, ".automatosx");
|
|
19054
19105
|
const agentsDir = join(automatosxDir, "agents");
|
|
19055
19106
|
const abilitiesDir = join(automatosxDir, "abilities");
|
|
@@ -19057,31 +19108,31 @@ var statusCommand3 = {
|
|
|
19057
19108
|
const prdDir = join(detectedProjectDir, "automatosx", "PRD");
|
|
19058
19109
|
const tmpDir = join(detectedProjectDir, "automatosx", "tmp");
|
|
19059
19110
|
const providers = [];
|
|
19060
|
-
if (
|
|
19111
|
+
if (providerConfigs["claude-code"]?.enabled) {
|
|
19061
19112
|
providers.push(new ClaudeProvider({
|
|
19062
19113
|
name: "claude-code",
|
|
19063
19114
|
enabled: true,
|
|
19064
|
-
priority:
|
|
19065
|
-
timeout:
|
|
19066
|
-
command:
|
|
19115
|
+
priority: providerConfigs["claude-code"].priority,
|
|
19116
|
+
timeout: providerConfigs["claude-code"].timeout,
|
|
19117
|
+
command: providerConfigs["claude-code"].command
|
|
19067
19118
|
}));
|
|
19068
19119
|
}
|
|
19069
|
-
if (
|
|
19120
|
+
if (providerConfigs["gemini-cli"]?.enabled) {
|
|
19070
19121
|
providers.push(new GeminiProvider({
|
|
19071
19122
|
name: "gemini-cli",
|
|
19072
19123
|
enabled: true,
|
|
19073
|
-
priority:
|
|
19074
|
-
timeout:
|
|
19075
|
-
command:
|
|
19124
|
+
priority: providerConfigs["gemini-cli"].priority,
|
|
19125
|
+
timeout: providerConfigs["gemini-cli"].timeout,
|
|
19126
|
+
command: providerConfigs["gemini-cli"].command
|
|
19076
19127
|
}));
|
|
19077
19128
|
}
|
|
19078
|
-
if (
|
|
19129
|
+
if (providerConfigs["openai"]?.enabled) {
|
|
19079
19130
|
providers.push(new OpenAIProvider({
|
|
19080
19131
|
name: "openai",
|
|
19081
19132
|
enabled: true,
|
|
19082
|
-
priority:
|
|
19083
|
-
timeout:
|
|
19084
|
-
command:
|
|
19133
|
+
priority: providerConfigs["openai"].priority,
|
|
19134
|
+
timeout: providerConfigs["openai"].timeout,
|
|
19135
|
+
command: providerConfigs["openai"].command
|
|
19085
19136
|
}));
|
|
19086
19137
|
}
|
|
19087
19138
|
const providerHealth = await Promise.all(
|
|
@@ -19112,9 +19163,9 @@ var statusCommand3 = {
|
|
|
19112
19163
|
configuration: {
|
|
19113
19164
|
configFile: join(detectedProjectDir, "automatosx.config.json"),
|
|
19114
19165
|
configExists: existsSync(join(detectedProjectDir, "automatosx.config.json")),
|
|
19115
|
-
logLevel: config.logging.level,
|
|
19116
|
-
memoryMaxEntries: config.memory.maxEntries,
|
|
19117
|
-
memoryRetentionDays: config.memory.cleanupDays
|
|
19166
|
+
logLevel: config.logging?.level ?? DEFAULT_CONFIG.logging.level,
|
|
19167
|
+
memoryMaxEntries: config.memory?.maxEntries ?? DEFAULT_CONFIG.memory.maxEntries,
|
|
19168
|
+
memoryRetentionDays: config.memory?.cleanupDays ?? DEFAULT_CONFIG.memory.cleanupDays
|
|
19118
19169
|
},
|
|
19119
19170
|
directories: {
|
|
19120
19171
|
automatosx: { path: automatosxDir, exists: existsSync(automatosxDir) },
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
{
|
|
2
|
+
"providers": {
|
|
3
|
+
"claude-code": {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"priority": 3,
|
|
6
|
+
"timeout": 1500000,
|
|
7
|
+
"command": "claude",
|
|
8
|
+
"healthCheck": {
|
|
9
|
+
"enabled": true,
|
|
10
|
+
"interval": 300000,
|
|
11
|
+
"timeout": 5000
|
|
12
|
+
},
|
|
13
|
+
"circuitBreaker": {
|
|
14
|
+
"enabled": true,
|
|
15
|
+
"failureThreshold": 3,
|
|
16
|
+
"recoveryTimeout": 60000
|
|
17
|
+
},
|
|
18
|
+
"processManagement": {
|
|
19
|
+
"gracefulShutdownTimeout": 5000,
|
|
20
|
+
"forceKillDelay": 1000
|
|
21
|
+
},
|
|
22
|
+
"versionDetection": {
|
|
23
|
+
"timeout": 5000,
|
|
24
|
+
"forceKillDelay": 1000,
|
|
25
|
+
"cacheEnabled": true
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"gemini-cli": {
|
|
29
|
+
"enabled": true,
|
|
30
|
+
"priority": 2,
|
|
31
|
+
"timeout": 1500000,
|
|
32
|
+
"command": "gemini",
|
|
33
|
+
"healthCheck": {
|
|
34
|
+
"enabled": true,
|
|
35
|
+
"interval": 300000,
|
|
36
|
+
"timeout": 5000
|
|
37
|
+
},
|
|
38
|
+
"circuitBreaker": {
|
|
39
|
+
"enabled": true,
|
|
40
|
+
"failureThreshold": 3,
|
|
41
|
+
"recoveryTimeout": 60000
|
|
42
|
+
},
|
|
43
|
+
"processManagement": {
|
|
44
|
+
"gracefulShutdownTimeout": 5000,
|
|
45
|
+
"forceKillDelay": 1000
|
|
46
|
+
},
|
|
47
|
+
"versionDetection": {
|
|
48
|
+
"timeout": 5000,
|
|
49
|
+
"forceKillDelay": 1000,
|
|
50
|
+
"cacheEnabled": true
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"openai": {
|
|
54
|
+
"enabled": true,
|
|
55
|
+
"priority": 1,
|
|
56
|
+
"timeout": 1500000,
|
|
57
|
+
"command": "codex",
|
|
58
|
+
"healthCheck": {
|
|
59
|
+
"enabled": true,
|
|
60
|
+
"interval": 300000,
|
|
61
|
+
"timeout": 5000
|
|
62
|
+
},
|
|
63
|
+
"circuitBreaker": {
|
|
64
|
+
"enabled": true,
|
|
65
|
+
"failureThreshold": 3,
|
|
66
|
+
"recoveryTimeout": 60000
|
|
67
|
+
},
|
|
68
|
+
"processManagement": {
|
|
69
|
+
"gracefulShutdownTimeout": 5000,
|
|
70
|
+
"forceKillDelay": 1000
|
|
71
|
+
},
|
|
72
|
+
"versionDetection": {
|
|
73
|
+
"timeout": 5000,
|
|
74
|
+
"forceKillDelay": 1000,
|
|
75
|
+
"cacheEnabled": true
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"execution": {
|
|
80
|
+
"defaultTimeout": 1500000,
|
|
81
|
+
"concurrency": {
|
|
82
|
+
"maxConcurrentAgents": 4,
|
|
83
|
+
"autoDetect": false,
|
|
84
|
+
"cpuMultiplier": 1,
|
|
85
|
+
"minConcurrency": 2,
|
|
86
|
+
"maxConcurrency": 16
|
|
87
|
+
},
|
|
88
|
+
"retry": {
|
|
89
|
+
"maxAttempts": 3,
|
|
90
|
+
"initialDelay": 1000,
|
|
91
|
+
"maxDelay": 10000,
|
|
92
|
+
"backoffFactor": 2,
|
|
93
|
+
"retryableErrors": [
|
|
94
|
+
"ECONNREFUSED",
|
|
95
|
+
"ETIMEDOUT",
|
|
96
|
+
"ENOTFOUND",
|
|
97
|
+
"rate_limit",
|
|
98
|
+
"overloaded",
|
|
99
|
+
"timeout"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"provider": {
|
|
103
|
+
"maxWaitMs": 60000,
|
|
104
|
+
"fallbackDelay": 5000
|
|
105
|
+
},
|
|
106
|
+
"stages": {
|
|
107
|
+
"enabled": true,
|
|
108
|
+
"defaultTimeout": 1800000,
|
|
109
|
+
"checkpointPath": ".automatosx/checkpoints",
|
|
110
|
+
"autoSaveCheckpoint": true,
|
|
111
|
+
"cleanupAfterDays": 7,
|
|
112
|
+
"retry": {
|
|
113
|
+
"defaultMaxRetries": 1,
|
|
114
|
+
"defaultRetryDelay": 2000
|
|
115
|
+
},
|
|
116
|
+
"prompts": {
|
|
117
|
+
"timeout": 600000,
|
|
118
|
+
"autoConfirm": false,
|
|
119
|
+
"locale": "en"
|
|
120
|
+
},
|
|
121
|
+
"progress": {
|
|
122
|
+
"updateInterval": 2000,
|
|
123
|
+
"syntheticProgress": true
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"orchestration": {
|
|
128
|
+
"session": {
|
|
129
|
+
"maxSessions": 100,
|
|
130
|
+
"maxMetadataSize": 10240,
|
|
131
|
+
"saveDebounce": 1000,
|
|
132
|
+
"cleanupAfterDays": 7,
|
|
133
|
+
"maxUuidAttempts": 100,
|
|
134
|
+
"persistPath": ".automatosx/sessions"
|
|
135
|
+
},
|
|
136
|
+
"delegation": {
|
|
137
|
+
"maxDepth": 2,
|
|
138
|
+
"timeout": 1500000,
|
|
139
|
+
"enableCycleDetection": true
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"memory": {
|
|
143
|
+
"maxEntries": 10000,
|
|
144
|
+
"persistPath": ".automatosx/memory",
|
|
145
|
+
"autoCleanup": true,
|
|
146
|
+
"cleanupDays": 30,
|
|
147
|
+
"busyTimeout": 5000,
|
|
148
|
+
"search": {
|
|
149
|
+
"defaultLimit": 10,
|
|
150
|
+
"maxLimit": 100,
|
|
151
|
+
"timeout": 5000
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"abilities": {
|
|
155
|
+
"basePath": ".automatosx/abilities",
|
|
156
|
+
"fallbackPath": "examples/abilities",
|
|
157
|
+
"cache": {
|
|
158
|
+
"enabled": true,
|
|
159
|
+
"maxEntries": 50,
|
|
160
|
+
"ttl": 600000,
|
|
161
|
+
"maxSize": 5242880,
|
|
162
|
+
"cleanupInterval": 120000
|
|
163
|
+
},
|
|
164
|
+
"limits": {
|
|
165
|
+
"maxFileSize": 524288
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"workspace": {
|
|
169
|
+
"prdPath": "automatosx/PRD",
|
|
170
|
+
"tmpPath": "automatosx/tmp",
|
|
171
|
+
"autoCleanupTmp": true,
|
|
172
|
+
"tmpCleanupDays": 7
|
|
173
|
+
},
|
|
174
|
+
"logging": {
|
|
175
|
+
"level": "info",
|
|
176
|
+
"path": ".automatosx/logs",
|
|
177
|
+
"console": true,
|
|
178
|
+
"retention": {
|
|
179
|
+
"maxSizeBytes": 104857600,
|
|
180
|
+
"maxAgeDays": 30,
|
|
181
|
+
"compress": true
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"performance": {
|
|
185
|
+
"profileCache": {
|
|
186
|
+
"enabled": true,
|
|
187
|
+
"maxEntries": 20,
|
|
188
|
+
"ttl": 600000,
|
|
189
|
+
"cleanupInterval": 120000
|
|
190
|
+
},
|
|
191
|
+
"teamCache": {
|
|
192
|
+
"enabled": true,
|
|
193
|
+
"maxEntries": 10,
|
|
194
|
+
"ttl": 600000,
|
|
195
|
+
"cleanupInterval": 120000
|
|
196
|
+
},
|
|
197
|
+
"providerCache": {
|
|
198
|
+
"enabled": true,
|
|
199
|
+
"maxEntries": 100,
|
|
200
|
+
"ttl": 600000,
|
|
201
|
+
"cleanupInterval": 120000
|
|
202
|
+
},
|
|
203
|
+
"adaptiveCache": {
|
|
204
|
+
"maxEntries": 1000,
|
|
205
|
+
"baseTTL": 300000,
|
|
206
|
+
"minTTL": 60000,
|
|
207
|
+
"maxTTL": 3600000,
|
|
208
|
+
"adaptiveMultiplier": 2,
|
|
209
|
+
"lowFreqDivisor": 2,
|
|
210
|
+
"frequencyThreshold": 5,
|
|
211
|
+
"cleanupInterval": 60000
|
|
212
|
+
},
|
|
213
|
+
"responseCache": {
|
|
214
|
+
"enabled": false,
|
|
215
|
+
"ttl": 86400,
|
|
216
|
+
"maxSize": 1000,
|
|
217
|
+
"maxMemorySize": 100,
|
|
218
|
+
"dbPath": ".automatosx/cache/responses.db"
|
|
219
|
+
},
|
|
220
|
+
"rateLimit": {
|
|
221
|
+
"enabled": false,
|
|
222
|
+
"requestsPerMinute": 60,
|
|
223
|
+
"burstSize": 10
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"advanced": {
|
|
227
|
+
"embedding": {
|
|
228
|
+
"timeout": 30000,
|
|
229
|
+
"retryDelay": 1000,
|
|
230
|
+
"dimensions": 1536,
|
|
231
|
+
"maxRetries": 3
|
|
232
|
+
},
|
|
233
|
+
"security": {
|
|
234
|
+
"enablePathValidation": true,
|
|
235
|
+
"allowedExtensions": [
|
|
236
|
+
".ts",
|
|
237
|
+
".js",
|
|
238
|
+
".tsx",
|
|
239
|
+
".jsx",
|
|
240
|
+
".py",
|
|
241
|
+
".go",
|
|
242
|
+
".rs",
|
|
243
|
+
".java",
|
|
244
|
+
".yaml",
|
|
245
|
+
".yml",
|
|
246
|
+
".json",
|
|
247
|
+
".toml",
|
|
248
|
+
".md",
|
|
249
|
+
".txt",
|
|
250
|
+
".csv"
|
|
251
|
+
]
|
|
252
|
+
},
|
|
253
|
+
"development": {
|
|
254
|
+
"mockProviders": false,
|
|
255
|
+
"profileMode": false
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
"integration": {
|
|
259
|
+
"vscode": {
|
|
260
|
+
"enabled": false,
|
|
261
|
+
"apiPort": 3000,
|
|
262
|
+
"autoStart": true,
|
|
263
|
+
"outputPanel": true,
|
|
264
|
+
"notifications": true
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"cli": {
|
|
268
|
+
"run": {
|
|
269
|
+
"defaultMemory": true,
|
|
270
|
+
"defaultSaveMemory": true,
|
|
271
|
+
"defaultFormat": "text",
|
|
272
|
+
"defaultVerbose": false
|
|
273
|
+
},
|
|
274
|
+
"session": {
|
|
275
|
+
"defaultShowAgents": true
|
|
276
|
+
},
|
|
277
|
+
"memory": {
|
|
278
|
+
"defaultLimit": 10
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"router": {
|
|
282
|
+
"healthCheckInterval": 60000,
|
|
283
|
+
"providerCooldownMs": 30000
|
|
284
|
+
},
|
|
285
|
+
"version": "5.6.29"
|
|
286
|
+
}
|