moflo 4.10.23 → 4.10.24
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/dist/src/cli/commands/agent.js +14 -14
- package/dist/src/cli/commands/analyze.js +52 -52
- package/dist/src/cli/commands/benchmark.js +14 -14
- package/dist/src/cli/commands/claims.js +15 -15
- package/dist/src/cli/commands/completions.js +40 -40
- package/dist/src/cli/commands/config.js +8 -8
- package/dist/src/cli/commands/daemon.js +24 -24
- package/dist/src/cli/commands/deployment.js +15 -15
- package/dist/src/cli/commands/doctor-checks-config.js +6 -6
- package/dist/src/cli/commands/doctor.js +10 -10
- package/dist/src/cli/commands/embeddings.js +49 -49
- package/dist/src/cli/commands/guidance.js +22 -22
- package/dist/src/cli/commands/hive-mind.js +21 -21
- package/dist/src/cli/commands/hooks.js +95 -95
- package/dist/src/cli/commands/init.js +17 -17
- package/dist/src/cli/commands/issues.js +6 -6
- package/dist/src/cli/commands/mcp.js +10 -10
- package/dist/src/cli/commands/memory.js +56 -47
- package/dist/src/cli/commands/migrate.js +5 -5
- package/dist/src/cli/commands/neural.js +31 -31
- package/dist/src/cli/commands/performance.js +13 -13
- package/dist/src/cli/commands/plugins.js +26 -26
- package/dist/src/cli/commands/process.js +32 -32
- package/dist/src/cli/commands/progress.js +5 -5
- package/dist/src/cli/commands/providers.js +13 -13
- package/dist/src/cli/commands/route.js +26 -26
- package/dist/src/cli/commands/security.js +19 -19
- package/dist/src/cli/commands/session.js +13 -13
- package/dist/src/cli/commands/start.js +11 -11
- package/dist/src/cli/commands/status.js +8 -8
- package/dist/src/cli/commands/swarm.js +7 -7
- package/dist/src/cli/commands/task.js +9 -9
- package/dist/src/cli/commands/transfer-store.js +16 -16
- package/dist/src/cli/commands/update.js +2 -2
- package/dist/src/cli/hooks/statusline/index.js +3 -3
- package/dist/src/cli/init/executor.js +6 -6
- package/dist/src/cli/init/helpers-generator.js +4 -4
- package/dist/src/cli/mcp-tools/hooks-tools.js +1 -1
- package/dist/src/cli/memory/auto-memory-bridge.js +1 -1
- package/dist/src/cli/memory/memory-initializer.js +1 -1
- package/dist/src/cli/plugins/tests/demo-plugin-store.js +6 -6
- package/dist/src/cli/version.js +1 -1
- package/package.json +2 -2
|
@@ -318,8 +318,8 @@ const startCommand = {
|
|
|
318
318
|
}
|
|
319
319
|
],
|
|
320
320
|
examples: [
|
|
321
|
-
{ command: '
|
|
322
|
-
{ command: '
|
|
321
|
+
{ command: 'flo swarm start -o "Build REST API" -s development', description: 'Start development swarm' },
|
|
322
|
+
{ command: 'flo swarm start -o "Analyze codebase" --parallel', description: 'Parallel analysis' }
|
|
323
323
|
],
|
|
324
324
|
action: async (ctx) => {
|
|
325
325
|
const objective = ctx.args[0] || ctx.flags.objective;
|
|
@@ -382,7 +382,7 @@ const startCommand = {
|
|
|
382
382
|
};
|
|
383
383
|
output.writeln();
|
|
384
384
|
output.printSuccess('Swarm execution started');
|
|
385
|
-
output.writeln(output.dim(` Monitor:
|
|
385
|
+
output.writeln(output.dim(` Monitor: flo swarm status ${executionState.swarmId}`));
|
|
386
386
|
return { success: true, data: executionState };
|
|
387
387
|
}
|
|
388
388
|
};
|
|
@@ -634,15 +634,15 @@ export const swarmCommand = {
|
|
|
634
634
|
subcommands: [initCommand, startCommand, statusCommand, stopCommand, scaleCommand, coordinateCommand],
|
|
635
635
|
options: [],
|
|
636
636
|
examples: [
|
|
637
|
-
{ command: '
|
|
638
|
-
{ command: '
|
|
639
|
-
{ command: '
|
|
637
|
+
{ command: 'flo swarm init --v3-mode', description: 'Initialize V3 swarm' },
|
|
638
|
+
{ command: 'flo swarm start -o "Build API" -s development', description: 'Start development swarm' },
|
|
639
|
+
{ command: 'flo swarm coordinate --agents 15', description: 'V3 coordination' }
|
|
640
640
|
],
|
|
641
641
|
action: async (ctx) => {
|
|
642
642
|
output.writeln();
|
|
643
643
|
output.writeln(output.bold('Swarm Coordination Commands'));
|
|
644
644
|
output.writeln();
|
|
645
|
-
output.writeln('Usage:
|
|
645
|
+
output.writeln('Usage: flo swarm <subcommand> [options]');
|
|
646
646
|
output.writeln();
|
|
647
647
|
output.writeln('Subcommands:');
|
|
648
648
|
output.printList([
|
|
@@ -621,20 +621,20 @@ export const taskCommand = {
|
|
|
621
621
|
subcommands: [createCommand, listCommand, statusCommand, cancelCommand, assignCommand, retryCommand],
|
|
622
622
|
options: [],
|
|
623
623
|
examples: [
|
|
624
|
-
{ command: '
|
|
625
|
-
{ command: '
|
|
626
|
-
{ command: '
|
|
627
|
-
{ command: '
|
|
628
|
-
{ command: '
|
|
629
|
-
{ command: '
|
|
630
|
-
{ command: '
|
|
624
|
+
{ command: 'flo task create -t implementation -d "Add user auth"', description: 'Create a task' },
|
|
625
|
+
{ command: 'flo task list', description: 'List pending/running tasks' },
|
|
626
|
+
{ command: 'flo task list --all', description: 'List all tasks' },
|
|
627
|
+
{ command: 'flo task status task-123', description: 'Get task details' },
|
|
628
|
+
{ command: 'flo task cancel task-123', description: 'Cancel a task' },
|
|
629
|
+
{ command: 'flo task assign task-123 --agent coder-1', description: 'Assign task to agent' },
|
|
630
|
+
{ command: 'flo task retry task-123', description: 'Retry a failed task' }
|
|
631
631
|
],
|
|
632
632
|
action: async (ctx) => {
|
|
633
633
|
// Show help if no subcommand
|
|
634
634
|
output.writeln();
|
|
635
635
|
output.writeln(output.bold('Task Management Commands'));
|
|
636
636
|
output.writeln();
|
|
637
|
-
output.writeln('Usage:
|
|
637
|
+
output.writeln('Usage: flo task <subcommand> [options]');
|
|
638
638
|
output.writeln();
|
|
639
639
|
output.writeln('Subcommands:');
|
|
640
640
|
output.printList([
|
|
@@ -646,7 +646,7 @@ export const taskCommand = {
|
|
|
646
646
|
`${output.highlight('retry')} - Retry a failed task`
|
|
647
647
|
]);
|
|
648
648
|
output.writeln();
|
|
649
|
-
output.writeln('Run "
|
|
649
|
+
output.writeln('Run "flo task <subcommand> --help" for subcommand help');
|
|
650
650
|
return { success: true };
|
|
651
651
|
}
|
|
652
652
|
};
|
|
@@ -18,9 +18,9 @@ export const storeListCommand = {
|
|
|
18
18
|
{ name: 'limit', short: 'l', type: 'number', description: 'Maximum results', default: 20 },
|
|
19
19
|
],
|
|
20
20
|
examples: [
|
|
21
|
-
{ command: '
|
|
22
|
-
{ command: '
|
|
23
|
-
{ command: '
|
|
21
|
+
{ command: 'flo hooks transfer store list', description: 'List all patterns' },
|
|
22
|
+
{ command: 'flo hooks transfer store list --category routing', description: 'List routing patterns' },
|
|
23
|
+
{ command: 'flo hooks transfer store list --featured', description: 'List featured patterns' },
|
|
24
24
|
],
|
|
25
25
|
action: async (ctx) => {
|
|
26
26
|
const registryName = ctx.flags.registry;
|
|
@@ -116,8 +116,8 @@ export const storeSearchCommand = {
|
|
|
116
116
|
{ name: 'limit', type: 'number', description: 'Maximum results', default: 20 },
|
|
117
117
|
],
|
|
118
118
|
examples: [
|
|
119
|
-
{ command: '
|
|
120
|
-
{ command: '
|
|
119
|
+
{ command: 'flo hooks transfer store search -q "routing"', description: 'Search for routing patterns' },
|
|
120
|
+
{ command: 'flo hooks transfer store search -q "react" --language typescript', description: 'Search with filters' },
|
|
121
121
|
],
|
|
122
122
|
action: async (ctx) => {
|
|
123
123
|
const query = (ctx.args[0] || ctx.flags.query);
|
|
@@ -184,8 +184,8 @@ export const storeDownloadCommand = {
|
|
|
184
184
|
{ name: 'import', short: 'i', type: 'boolean', description: 'Import after download' },
|
|
185
185
|
],
|
|
186
186
|
examples: [
|
|
187
|
-
{ command: '
|
|
188
|
-
{ command: '
|
|
187
|
+
{ command: 'flo hooks transfer store download -n seraphine-genesis', description: 'Download pattern' },
|
|
188
|
+
{ command: 'flo hooks transfer store download -n seraphine-genesis --import', description: 'Download and import' },
|
|
189
189
|
],
|
|
190
190
|
action: async (ctx) => {
|
|
191
191
|
const patternName = (ctx.args[0] || ctx.flags.name);
|
|
@@ -257,7 +257,7 @@ export const storePublishCommand = {
|
|
|
257
257
|
{ name: 'framework', type: 'string', description: 'Primary framework' },
|
|
258
258
|
],
|
|
259
259
|
examples: [
|
|
260
|
-
{ command: '
|
|
260
|
+
{ command: 'flo hooks transfer store publish -i patterns.cfp -n my-patterns -d "My patterns" -c routing -t custom', description: 'Publish pattern' },
|
|
261
261
|
],
|
|
262
262
|
action: async (ctx) => {
|
|
263
263
|
const inputPath = ctx.flags.input;
|
|
@@ -323,7 +323,7 @@ export const storeInfoCommand = {
|
|
|
323
323
|
{ name: 'name', short: 'n', type: 'string', description: 'Pattern name or ID', required: true },
|
|
324
324
|
],
|
|
325
325
|
examples: [
|
|
326
|
-
{ command: '
|
|
326
|
+
{ command: 'flo hooks transfer store info -n seraphine-genesis', description: 'Show pattern info' },
|
|
327
327
|
],
|
|
328
328
|
action: async (ctx) => {
|
|
329
329
|
const patternName = (ctx.args[0] || ctx.flags.name);
|
|
@@ -398,10 +398,10 @@ export const storeCommand = {
|
|
|
398
398
|
storeInfoCommand,
|
|
399
399
|
],
|
|
400
400
|
examples: [
|
|
401
|
-
{ command: '
|
|
402
|
-
{ command: '
|
|
403
|
-
{ command: '
|
|
404
|
-
{ command: '
|
|
401
|
+
{ command: 'flo hooks transfer store list', description: 'List patterns' },
|
|
402
|
+
{ command: 'flo hooks transfer store search -q "routing"', description: 'Search patterns' },
|
|
403
|
+
{ command: 'flo hooks transfer store download -n seraphine-genesis', description: 'Download pattern' },
|
|
404
|
+
{ command: 'flo hooks transfer store publish -i patterns.cfp ...', description: 'Publish pattern' },
|
|
405
405
|
],
|
|
406
406
|
action: async () => {
|
|
407
407
|
output.writeln();
|
|
@@ -418,9 +418,9 @@ export const storeCommand = {
|
|
|
418
418
|
]);
|
|
419
419
|
output.writeln();
|
|
420
420
|
output.writeln('Example:');
|
|
421
|
-
output.writeln(output.dim('
|
|
422
|
-
output.writeln(output.dim('
|
|
423
|
-
output.writeln(output.dim('
|
|
421
|
+
output.writeln(output.dim(' flo hooks transfer store list --featured'));
|
|
422
|
+
output.writeln(output.dim(' flo hooks transfer store search -q "routing"'));
|
|
423
|
+
output.writeln(output.dim(' flo hooks transfer store download -n seraphine-genesis'));
|
|
424
424
|
return { success: true };
|
|
425
425
|
},
|
|
426
426
|
};
|
|
@@ -91,7 +91,7 @@ const checkCommand = {
|
|
|
91
91
|
if (manualUpdates.length > 0) {
|
|
92
92
|
output.writeln();
|
|
93
93
|
output.printInfo('To update manually, run:');
|
|
94
|
-
output.writeln('
|
|
94
|
+
output.writeln(' flo update all');
|
|
95
95
|
}
|
|
96
96
|
return { success: true };
|
|
97
97
|
}
|
|
@@ -268,7 +268,7 @@ const updateCommand = {
|
|
|
268
268
|
`${output.dim('CLAUDE_FLOW_FORCE_UPDATE=true')} - Force update check`,
|
|
269
269
|
]);
|
|
270
270
|
output.writeln();
|
|
271
|
-
output.writeln('Run "
|
|
271
|
+
output.writeln('Run "flo update <subcommand> --help" for subcommand help');
|
|
272
272
|
return { success: true };
|
|
273
273
|
},
|
|
274
274
|
};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Provides real-time progress, metrics, and status information.
|
|
6
6
|
*
|
|
7
7
|
* Format matches the working .claude/statusline.sh output:
|
|
8
|
-
* ▊
|
|
8
|
+
* ▊ MoFlo ● <user> │ ⎇ <branch> │ Opus 4.7
|
|
9
9
|
* ─────────────────────────────────────────────────────
|
|
10
10
|
* 🏗️ DDD Domains [●●●●●] 5/5 ⚡ 1.0x → 2.49x-7.47x
|
|
11
11
|
* 🤖 Swarm ◉ [58/15] 👥 0 🟢 CVE 3/3 💾 22282MB 📂 47% 🧠 10%
|
|
@@ -98,7 +98,7 @@ export class StatuslineGenerator {
|
|
|
98
98
|
const c = colors;
|
|
99
99
|
const lines = [];
|
|
100
100
|
// Header Line: V3 Project + User + Branch + Model
|
|
101
|
-
let header = `${c.bold}${c.brightPurple}▊
|
|
101
|
+
let header = `${c.bold}${c.brightPurple}▊ MoFlo ${c.reset}`;
|
|
102
102
|
header += `${data.swarm.coordinationActive ? c.brightCyan : c.dim}● ${c.brightCyan}${data.user.name}${c.reset}`;
|
|
103
103
|
if (data.user.gitBranch) {
|
|
104
104
|
header += ` ${c.dim}│${c.reset} ${c.brightBlue}⎇ ${data.user.gitBranch}${c.reset}`;
|
|
@@ -222,7 +222,7 @@ export class StatuslineGenerator {
|
|
|
222
222
|
const c = colors;
|
|
223
223
|
const lines = [];
|
|
224
224
|
// Line 1: Header (NOT collision zone)
|
|
225
|
-
let header = `${c.bold}${c.brightPurple}▊
|
|
225
|
+
let header = `${c.bold}${c.brightPurple}▊ MoFlo ${c.reset}`;
|
|
226
226
|
header += `${data.swarm.coordinationActive ? c.brightCyan : c.dim}● ${c.brightCyan}${data.user.name}${c.reset}`;
|
|
227
227
|
if (data.user.gitBranch) {
|
|
228
228
|
header += ` ${c.dim}│${c.reset} ${c.brightBlue}⎇ ${data.user.gitBranch}${c.reset}`;
|
|
@@ -522,7 +522,7 @@ export async function executeUpgrade(targetDir, _upgradeSettings = false) {
|
|
|
522
522
|
ddd: { progress: 0, modules: 0, totalFiles: 0, totalLines: 0 },
|
|
523
523
|
swarm: { activeAgents: 0, maxAgents: 15, topology: 'hierarchical-mesh' },
|
|
524
524
|
learning: { status: 'READY', patternsLearned: 0, sessionsCompleted: 0 },
|
|
525
|
-
_note: 'Metrics will update as you use
|
|
525
|
+
_note: 'Metrics will update as you use moflo'
|
|
526
526
|
};
|
|
527
527
|
fs.writeFileSync(progressPath, JSON.stringify(progress, null, 2), 'utf-8');
|
|
528
528
|
result.created.push('.moflo/metrics/v3-progress.json');
|
|
@@ -554,7 +554,7 @@ export async function executeUpgrade(targetDir, _upgradeSettings = false) {
|
|
|
554
554
|
routing: { accuracy: 0, decisions: 0 },
|
|
555
555
|
patterns: { shortTerm: 0, longTerm: 0, quality: 0 },
|
|
556
556
|
sessions: { total: 0, current: null },
|
|
557
|
-
_note: 'Intelligence grows as you use
|
|
557
|
+
_note: 'Intelligence grows as you use moflo'
|
|
558
558
|
};
|
|
559
559
|
fs.writeFileSync(learningPath, JSON.stringify(learning, null, 2), 'utf-8');
|
|
560
560
|
result.created.push('.moflo/metrics/learning.json');
|
|
@@ -1295,7 +1295,7 @@ mcp:
|
|
|
1295
1295
|
result.created.files.push('.moflo/config.yaml');
|
|
1296
1296
|
// Write .gitignore
|
|
1297
1297
|
const gitignorePath = path.join(targetDir, '.moflo', '.gitignore');
|
|
1298
|
-
const gitignore = `#
|
|
1298
|
+
const gitignore = `# moflo runtime files
|
|
1299
1299
|
data/
|
|
1300
1300
|
logs/
|
|
1301
1301
|
sessions/
|
|
@@ -1351,7 +1351,7 @@ async function writeInitialMetrics(targetDir, options, result) {
|
|
|
1351
1351
|
patternsLearned: 0,
|
|
1352
1352
|
sessionsCompleted: 0
|
|
1353
1353
|
},
|
|
1354
|
-
_note: 'Metrics will update as you use
|
|
1354
|
+
_note: 'Metrics will update as you use moflo. Run: npx moflo daemon start'
|
|
1355
1355
|
};
|
|
1356
1356
|
fs.writeFileSync(progressPath, JSON.stringify(progress, null, 2), 'utf-8');
|
|
1357
1357
|
result.created.files.push('.moflo/metrics/v3-progress.json');
|
|
@@ -1398,7 +1398,7 @@ async function writeInitialMetrics(targetDir, options, result) {
|
|
|
1398
1398
|
total: 0,
|
|
1399
1399
|
current: null
|
|
1400
1400
|
},
|
|
1401
|
-
_note: 'Intelligence grows as you use
|
|
1401
|
+
_note: 'Intelligence grows as you use moflo'
|
|
1402
1402
|
};
|
|
1403
1403
|
fs.writeFileSync(learningPath, JSON.stringify(learning, null, 2), 'utf-8');
|
|
1404
1404
|
result.created.files.push('.moflo/metrics/learning.json');
|
|
@@ -1755,7 +1755,7 @@ npx moflo hive-mind consensus --propose "task"
|
|
|
1755
1755
|
|
|
1756
1756
|
### MCP Server Setup
|
|
1757
1757
|
\`\`\`bash
|
|
1758
|
-
# Add
|
|
1758
|
+
# Add moflo MCP
|
|
1759
1759
|
claude mcp add moflo -- npx -y moflo
|
|
1760
1760
|
|
|
1761
1761
|
# Optional servers
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export function generatePreCommitHook() {
|
|
9
9
|
return `#!/bin/bash
|
|
10
|
-
#
|
|
10
|
+
# moflo Pre-Commit Hook
|
|
11
11
|
# Validates code quality before commit
|
|
12
12
|
|
|
13
13
|
set -e
|
|
14
14
|
|
|
15
|
-
echo "🔍 Running
|
|
15
|
+
echo "🔍 Running moflo pre-commit checks..."
|
|
16
16
|
|
|
17
17
|
# Get staged files
|
|
18
18
|
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)
|
|
@@ -39,7 +39,7 @@ echo "✅ Pre-commit checks complete"
|
|
|
39
39
|
*/
|
|
40
40
|
export function generatePostCommitHook() {
|
|
41
41
|
return `#!/bin/bash
|
|
42
|
-
#
|
|
42
|
+
# moflo Post-Commit Hook
|
|
43
43
|
# Records commit metrics and trains patterns
|
|
44
44
|
|
|
45
45
|
COMMIT_HASH=$(git rev-parse HEAD)
|
|
@@ -47,7 +47,7 @@ COMMIT_MSG=$(git log -1 --pretty=%B)
|
|
|
47
47
|
|
|
48
48
|
echo "📊 Recording commit metrics..."
|
|
49
49
|
|
|
50
|
-
# Notify
|
|
50
|
+
# Notify flo of commit
|
|
51
51
|
npx moflo hooks notify \\
|
|
52
52
|
--message "Commit: $COMMIT_MSG" \\
|
|
53
53
|
--level info \\
|
|
@@ -2266,7 +2266,7 @@ export const hooksPatternSearch = {
|
|
|
2266
2266
|
results: [],
|
|
2267
2267
|
searchTimeMs: 0,
|
|
2268
2268
|
backend: 'unavailable',
|
|
2269
|
-
note: 'Real vector search not available. Initialize memory database with:
|
|
2269
|
+
note: 'Real vector search not available. Initialize memory database with: flo memory init',
|
|
2270
2270
|
};
|
|
2271
2271
|
},
|
|
2272
2272
|
};
|
|
@@ -687,7 +687,7 @@ function pruneSectionsToFit(sections, budget, strategy) {
|
|
|
687
687
|
* Build MEMORY.md index lines from curated sections.
|
|
688
688
|
*/
|
|
689
689
|
function buildIndexLines(sections, topicMapping, sectionOrder) {
|
|
690
|
-
const lines = ['#
|
|
690
|
+
const lines = ['# moflo Project Memory', ''];
|
|
691
691
|
// Use provided order, then append any remaining sections
|
|
692
692
|
const orderedCategories = sectionOrder
|
|
693
693
|
? [...sectionOrder, ...Object.keys(sections).filter((k) => !sectionOrder.includes(k))]
|
|
@@ -1604,7 +1604,7 @@ export async function storeEntry(options) {
|
|
|
1604
1604
|
const dbPath = customPath || memoryDbPath(process.cwd());
|
|
1605
1605
|
try {
|
|
1606
1606
|
if (!fs.existsSync(dbPath)) {
|
|
1607
|
-
return { success: false, id: '', error: 'Database not initialized. Run:
|
|
1607
|
+
return { success: false, id: '', error: 'Database not initialized. Run: flo memory init' };
|
|
1608
1608
|
}
|
|
1609
1609
|
// Ensure schema has all required columns (migration for older DBs)
|
|
1610
1610
|
await ensureSchemaColumns(dbPath);
|
|
@@ -93,7 +93,7 @@ async function demo() {
|
|
|
93
93
|
console.log('');
|
|
94
94
|
}
|
|
95
95
|
console.log(' To install:');
|
|
96
|
-
console.log(' $
|
|
96
|
+
console.log(' $ flo plugins install -n plugin-creator');
|
|
97
97
|
console.log('');
|
|
98
98
|
}
|
|
99
99
|
// Summary
|
|
@@ -112,11 +112,11 @@ async function demo() {
|
|
|
112
112
|
console.log(' ✅ Content-addressed storage (CID)');
|
|
113
113
|
console.log('');
|
|
114
114
|
console.log(' CLI Commands:');
|
|
115
|
-
console.log(' $
|
|
116
|
-
console.log(' $
|
|
117
|
-
console.log(' $
|
|
118
|
-
console.log(' $
|
|
119
|
-
console.log(' $
|
|
115
|
+
console.log(' $ flo plugins list # List all plugins');
|
|
116
|
+
console.log(' $ flo plugins list --official # Official only');
|
|
117
|
+
console.log(' $ flo plugins search -q neural # Search plugins');
|
|
118
|
+
console.log(' $ flo plugins info -n plugin-creator');
|
|
119
|
+
console.log(' $ flo plugins install -n plugin-creator');
|
|
120
120
|
console.log('');
|
|
121
121
|
}
|
|
122
122
|
demo().catch(err => {
|
package/dist/src/cli/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "moflo",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.24",
|
|
4
4
|
"description": "MoFlo — AI agent orchestration for Claude Code. A standalone, opinionated toolkit with semantic memory, learned routing, gates, spells, and the /flo issue-execution skill.",
|
|
5
5
|
"main": "dist/src/cli/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
96
96
|
"@typescript-eslint/parser": "^7.18.0",
|
|
97
97
|
"eslint": "^8.0.0",
|
|
98
|
-
"moflo": "^4.10.
|
|
98
|
+
"moflo": "^4.10.23",
|
|
99
99
|
"tsx": "^4.21.0",
|
|
100
100
|
"typescript": "^5.9.3",
|
|
101
101
|
"vitest": "^4.0.0"
|