claude-flow 3.5.36 → 3.5.38
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/package.json +1 -1
- package/v3/@claude-flow/cli/dist/src/init/settings-generator.js +16 -8
- package/v3/@claude-flow/cli/package.json +2 -2
- package/v3/@claude-flow/shared/dist/core/config/loader.js +17 -1
- package/v3/@claude-flow/shared/dist/core/config/schema.d.ts +769 -175
- package/v3/@claude-flow/shared/dist/core/config/schema.js +3 -1
- package/v3/@claude-flow/shared/dist/events/index.d.ts +2 -0
- package/v3/@claude-flow/shared/dist/events/index.js +2 -0
- package/v3/@claude-flow/shared/dist/events/rvf-event-log.d.ts +82 -0
- package/v3/@claude-flow/shared/dist/events/rvf-event-log.js +340 -0
- package/v3/@claude-flow/shared/package.json +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-flow",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.38",
|
|
4
4
|
"description": "Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -154,15 +154,21 @@ export function generateSettings(options) {
|
|
|
154
154
|
*/
|
|
155
155
|
const IS_WINDOWS = process.platform === 'win32';
|
|
156
156
|
/**
|
|
157
|
-
* Build a hook command
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
* On Windows,
|
|
157
|
+
* Build a hook command with reliable $CLAUDE_PROJECT_DIR expansion.
|
|
158
|
+
* Wraps in `sh -c` to guarantee shell expansion on all platforms (macOS zsh,
|
|
159
|
+
* Linux bash). Falls back to "." if CLAUDE_PROJECT_DIR is unset, since
|
|
160
|
+
* Claude Code runs hooks from the project root.
|
|
161
|
+
* On Windows, uses `cmd /c` with %CLAUDE_PROJECT_DIR%.
|
|
162
162
|
*/
|
|
163
163
|
function hookCmd(script, subcommand) {
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
if (IS_WINDOWS) {
|
|
165
|
+
return `cmd /c node %CLAUDE_PROJECT_DIR%/${script} ${subcommand}`.trim();
|
|
166
|
+
}
|
|
167
|
+
// Use sh -c to ensure $CLAUDE_PROJECT_DIR is expanded by a real shell,
|
|
168
|
+
// even if Claude Code doesn't invoke hooks through a shell on macOS.
|
|
169
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
170
|
+
const dir = '${CLAUDE_PROJECT_DIR:-.}';
|
|
171
|
+
return `sh -c 'exec node "${dir}/${script}" ${subcommand}'`;
|
|
166
172
|
}
|
|
167
173
|
/** Shorthand for CJS hook-handler commands */
|
|
168
174
|
function hookHandlerCmd(subcommand) {
|
|
@@ -182,9 +188,11 @@ function generateStatusLineConfig(_options) {
|
|
|
182
188
|
// The script runs after each assistant message (debounced 300ms).
|
|
183
189
|
// NOTE: statusline must NOT use `cmd /c` — Claude Code manages its stdin
|
|
184
190
|
// directly for statusline commands, and `cmd /c` blocks stdin forwarding.
|
|
191
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
192
|
+
const dir = '${CLAUDE_PROJECT_DIR:-.}';
|
|
185
193
|
return {
|
|
186
194
|
type: 'command',
|
|
187
|
-
command: 'node
|
|
195
|
+
command: `sh -c 'exec node "${dir}/.claude/helpers/statusline.cjs"'`,
|
|
188
196
|
};
|
|
189
197
|
}
|
|
190
198
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claude-flow/cli",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.38",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Ruflo CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
88
|
"@claude-flow/mcp": "^3.0.0-alpha.8",
|
|
89
|
-
"@claude-flow/shared": "^3.0.0-alpha.
|
|
89
|
+
"@claude-flow/shared": "^3.0.0-alpha.7",
|
|
90
90
|
"@noble/ed25519": "^2.1.0",
|
|
91
91
|
"semver": "^7.6.0"
|
|
92
92
|
},
|
|
@@ -148,7 +148,23 @@ export class ConfigLoader {
|
|
|
148
148
|
break;
|
|
149
149
|
}
|
|
150
150
|
else {
|
|
151
|
-
|
|
151
|
+
// Config file exists but doesn't match the strict schema.
|
|
152
|
+
// Merge whatever valid object fields exist with defaults and continue.
|
|
153
|
+
// This handles partial configs, legacy configs, and simple key-value files.
|
|
154
|
+
if (fileConfig && typeof fileConfig === 'object' && !Array.isArray(fileConfig)) {
|
|
155
|
+
const partial = fileConfig;
|
|
156
|
+
const merged = { ...defaultSystemConfig };
|
|
157
|
+
for (const key of Object.keys(partial)) {
|
|
158
|
+
if (partial[key] && typeof partial[key] === 'object' && !Array.isArray(partial[key])) {
|
|
159
|
+
merged[key] = { ...(merged[key] || {}), ...partial[key] };
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
config = merged;
|
|
163
|
+
source = 'file';
|
|
164
|
+
path = configPath;
|
|
165
|
+
}
|
|
166
|
+
// Always break on first found config file — don't search further
|
|
167
|
+
break;
|
|
152
168
|
}
|
|
153
169
|
}
|
|
154
170
|
catch (error) {
|