@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 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
  [![Windows](https://img.shields.io/badge/Windows-10+-blue.svg)](https://www.microsoft.com/windows)
14
14
  [![Ubuntu](https://img.shields.io/badge/Ubuntu-24.04-orange.svg)](https://ubuntu.com)
15
15
 
16
- **Status**: ✅ Production Ready · **v5.6.29** · October 2025 · 19 Specialized Agents · 100% Resource Leak Free · Production Stability
16
+ **Status**: ✅ Production Ready · **v5.6.31** · October 2025 · 19 Specialized Agents · 100% Resource Leak Free · Production Stability
17
17
 
18
- **Latest (v5.6.29)**: Windows Compatibility Fix - Resolved spawn ENOENT errors for all Windows users (GitHub Issue #4). Added `shell: true` to 6 spawn() calls across all providers (Gemini CLI, Claude Code, OpenAI Codex). Windows 10+ users can now execute AutomatosX without errors. Fully backward compatible with macOS and Linux. Zero breaking changes. [See full changelog →](CHANGELOG.md)
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: true
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: true
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: true
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: true
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: true
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.26"
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 backend - Backend engineer"));
6645
- console.log(chalk27.gray(" \u2022 frontend - Frontend engineer"));
6646
- console.log(chalk27.gray(" \u2022 devops - DevOps specialist"));
6647
- console.log(chalk27.gray(" \u2022 security - Security analyst"));
6648
- console.log(chalk27.gray(" \u2022 quality - QA specialist"));
6649
- console.log(chalk27.gray(" \u2022 data - Data scientist"));
6650
- console.log(chalk27.gray(" \u2022 design - Product designer"));
6651
- console.log(chalk27.gray(" \u2022 writer - Technical writer"));
6652
- console.log(chalk27.gray(" \u2022 product - Product manager"));
6653
- console.log(chalk27.gray(" \u2022 ceo - Executive advisor"));
6654
- console.log(chalk27.gray(" \u2022 cto - Technology strategist"));
6655
- console.log(chalk27.gray(" \u2022 researcher - Research analyst\n"));
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 config = await loadConfig(process.cwd());
19046
- const projectDir = process.cwd();
19083
+ const workingDir = process.cwd();
19047
19084
  const pathResolver = new PathResolver({
19048
- projectDir,
19049
- workingDir: process.cwd(),
19050
- agentWorkspace: join(projectDir, ".automatosx", "workspaces")
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 (config.providers["claude-code"]?.enabled) {
19111
+ if (providerConfigs["claude-code"]?.enabled) {
19061
19112
  providers.push(new ClaudeProvider({
19062
19113
  name: "claude-code",
19063
19114
  enabled: true,
19064
- priority: config.providers["claude-code"].priority,
19065
- timeout: config.providers["claude-code"].timeout,
19066
- command: config.providers["claude-code"].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 (config.providers["gemini-cli"]?.enabled) {
19120
+ if (providerConfigs["gemini-cli"]?.enabled) {
19070
19121
  providers.push(new GeminiProvider({
19071
19122
  name: "gemini-cli",
19072
19123
  enabled: true,
19073
- priority: config.providers["gemini-cli"].priority,
19074
- timeout: config.providers["gemini-cli"].timeout,
19075
- command: config.providers["gemini-cli"].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 (config.providers["openai"]?.enabled) {
19129
+ if (providerConfigs["openai"]?.enabled) {
19079
19130
  providers.push(new OpenAIProvider({
19080
19131
  name: "openai",
19081
19132
  enabled: true,
19082
- priority: config.providers["openai"].priority,
19083
- timeout: config.providers["openai"].timeout,
19084
- command: config.providers["openai"].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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defai.digital/automatosx",
3
- "version": "5.6.29",
3
+ "version": "5.6.31",
4
4
  "description": "AI Agent Orchestration Platform",
5
5
  "type": "module",
6
6
  "publishConfig": {