moflo 4.8.40 → 4.8.41
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/hooks.mjs
CHANGED
|
@@ -27,7 +27,22 @@ import { createProcessManager } from './lib/process-manager.mjs';
|
|
|
27
27
|
|
|
28
28
|
const __filename = fileURLToPath(import.meta.url);
|
|
29
29
|
const __dirname = dirname(__filename);
|
|
30
|
-
|
|
30
|
+
|
|
31
|
+
// Detect project root by walking up from cwd to find package.json.
|
|
32
|
+
// IMPORTANT: Do NOT use resolve(__dirname, '..') or '../..' — this script lives
|
|
33
|
+
// in bin/ during development but gets synced to .claude/scripts/ in consumer
|
|
34
|
+
// projects, so __dirname-relative paths break. findProjectRoot() works everywhere.
|
|
35
|
+
function findProjectRoot() {
|
|
36
|
+
let dir = process.cwd();
|
|
37
|
+
const root = resolve(dir, '/');
|
|
38
|
+
while (dir !== root) {
|
|
39
|
+
if (existsSync(resolve(dir, 'package.json'))) return dir;
|
|
40
|
+
dir = dirname(dir);
|
|
41
|
+
}
|
|
42
|
+
return process.cwd();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const projectRoot = findProjectRoot();
|
|
31
46
|
const logFile = resolve(projectRoot, '.swarm/hooks.log');
|
|
32
47
|
const pm = createProcessManager(projectRoot);
|
|
33
48
|
|
package/bin/index-all.mjs
CHANGED
|
@@ -15,7 +15,22 @@ import { fileURLToPath } from 'url';
|
|
|
15
15
|
import { execFileSync } from 'child_process';
|
|
16
16
|
|
|
17
17
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
18
|
-
|
|
18
|
+
|
|
19
|
+
// Detect project root by walking up from cwd to find package.json.
|
|
20
|
+
// IMPORTANT: Do NOT use resolve(__dirname, '..') — this script lives in bin/
|
|
21
|
+
// during development but gets synced to .claude/scripts/ in consumer projects,
|
|
22
|
+
// so __dirname-relative paths break. findProjectRoot() works in both locations.
|
|
23
|
+
function findProjectRoot() {
|
|
24
|
+
let dir = process.cwd();
|
|
25
|
+
const root = resolve(dir, '/');
|
|
26
|
+
while (dir !== root) {
|
|
27
|
+
if (existsSync(resolve(dir, 'package.json'))) return dir;
|
|
28
|
+
dir = dirname(dir);
|
|
29
|
+
}
|
|
30
|
+
return process.cwd();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const projectRoot = findProjectRoot();
|
|
19
34
|
const LOG_PATH = resolve(projectRoot, '.swarm/hooks.log');
|
|
20
35
|
|
|
21
36
|
function log(msg) {
|
package/bin/index-patterns.mjs
CHANGED
|
@@ -353,8 +353,15 @@ async function main() {
|
|
|
353
353
|
|
|
354
354
|
// Trigger embedding generation in background
|
|
355
355
|
try {
|
|
356
|
-
|
|
357
|
-
|
|
356
|
+
// Check __dirname first (works in both dev bin/ and consumer .claude/scripts/),
|
|
357
|
+
// then fall back to node_modules/moflo/bin/ for consumer projects
|
|
358
|
+
const candidates = [
|
|
359
|
+
resolve(__dirname, 'build-embeddings.mjs'),
|
|
360
|
+
resolve(projectRoot, 'node_modules/moflo/bin/build-embeddings.mjs'),
|
|
361
|
+
resolve(projectRoot, '.claude/scripts/build-embeddings.mjs'),
|
|
362
|
+
];
|
|
363
|
+
const embeddingScript = candidates.find(p => existsSync(p));
|
|
364
|
+
if (embeddingScript) {
|
|
358
365
|
const child = spawn('node', [embeddingScript, '--namespace', NAMESPACE], {
|
|
359
366
|
cwd: projectRoot,
|
|
360
367
|
detached: true,
|
|
@@ -13,7 +13,22 @@ import { resolve, dirname } from 'path';
|
|
|
13
13
|
import { fileURLToPath } from 'url';
|
|
14
14
|
|
|
15
15
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
16
|
-
|
|
16
|
+
|
|
17
|
+
// Detect project root by walking up from cwd to find package.json.
|
|
18
|
+
// IMPORTANT: Do NOT use resolve(__dirname, '..') or '../..' — this script lives
|
|
19
|
+
// in bin/ during development but gets synced to .claude/scripts/ in consumer
|
|
20
|
+
// projects, so __dirname-relative paths break. findProjectRoot() works everywhere.
|
|
21
|
+
function findProjectRoot() {
|
|
22
|
+
let dir = process.cwd();
|
|
23
|
+
const root = resolve(dir, '/');
|
|
24
|
+
while (dir !== root) {
|
|
25
|
+
if (existsSync(resolve(dir, 'package.json'))) return dir;
|
|
26
|
+
dir = dirname(dir);
|
|
27
|
+
}
|
|
28
|
+
return process.cwd();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const projectRoot = findProjectRoot();
|
|
17
32
|
|
|
18
33
|
// ── 1. Helper: fire-and-forget a background process ─────────────────────────
|
|
19
34
|
function fireAndForget(cmd, args, label) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "moflo",
|
|
3
|
-
"version": "4.8.
|
|
3
|
+
"version": "4.8.41",
|
|
4
4
|
"description": "MoFlo — AI agent orchestration for Claude Code. Forked from ruflo/claude-flow with patches applied to source, plus feature-level orchestration.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moflo/cli",
|
|
3
|
-
"version": "4.8.
|
|
3
|
+
"version": "4.8.41",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "MoFlo CLI — AI agent orchestration with specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
|
|
6
6
|
"main": "dist/src/index.js",
|