@claude-flow/cli 3.27.2 → 3.27.4
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/.claude/helpers/.helpers-version +1 -1
- package/.claude/helpers/helpers.manifest.json +3 -3
- package/.claude/helpers/statusline.cjs +5 -2
- package/catalog-manifest.json +2 -2
- package/dist/src/commands/init.js +3 -1
- package/dist/src/init/executor.js +26 -2
- package/dist/src/init/statusline-generator.js +18 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
3.
|
|
1
|
+
3.25.6
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest": {
|
|
3
|
-
"version": "3.27.
|
|
3
|
+
"version": "3.27.4",
|
|
4
4
|
"files": {
|
|
5
5
|
"auto-memory-hook.mjs": "68be7e9a9eba7bf9c4e8a230db7bf61a243b965639f8504842799d6c6ca28762",
|
|
6
6
|
"hook-handler.cjs": "2e4927ff158c0079a67a6f0ef0b99ac748d600d33798b0a5fbd5a6a82225ec03",
|
|
7
7
|
"intelligence.cjs": "bd1f8e4b034944aee1df0391dc47ac2e8cc4b3aa542c65407a59d49620bbf76b",
|
|
8
|
-
"statusline.cjs": "
|
|
8
|
+
"statusline.cjs": "19586a8052bd032cea909a2d020f680aa8da31f5c4229068af612811cc694d5a"
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
|
-
"signature": "
|
|
11
|
+
"signature": "y9y4o3fDtk7y2fBJy4NFbL3SF2Rog1GyVougqEHupMzxLctiKjS+k51WSnO35cFCUsMO6It3Vh30cNPsSwlzCA==",
|
|
12
12
|
"algorithm": "ed25519"
|
|
13
13
|
}
|
|
@@ -597,7 +597,6 @@ function getCostFromStdin() {
|
|
|
597
597
|
return null;
|
|
598
598
|
}
|
|
599
599
|
|
|
600
|
-
// Read package version from the first package.json we find.
|
|
601
600
|
// Compares dotted-numeric version strings (e.g. "3.27.1" vs "3.27.10").
|
|
602
601
|
// Returns >0 if a>b, <0 if a<b, 0 if equal-as-far-as-parseable. Deliberately
|
|
603
602
|
// simple (no prerelease/build-metadata handling) — this only orders local
|
|
@@ -615,7 +614,11 @@ function compareVersions(a, b) {
|
|
|
615
614
|
}
|
|
616
615
|
|
|
617
616
|
function getPkgVersion() {
|
|
618
|
-
|
|
617
|
+
// Baked in at generation time from the real running CLI's own resolved
|
|
618
|
+
// version (see generateStatuslineScript()'s doc comment) — correct even
|
|
619
|
+
// when this renders via a pure npx invocation with no local install for
|
|
620
|
+
// the candidate scan below to find.
|
|
621
|
+
let ver = "3.27.4";
|
|
619
622
|
try {
|
|
620
623
|
const home = os.homedir();
|
|
621
624
|
const pkgPaths = [
|
package/catalog-manifest.json
CHANGED
|
@@ -468,7 +468,9 @@ const initAction = async (ctx) => {
|
|
|
468
468
|
output.writeln(output.bold('Next steps:'));
|
|
469
469
|
output.printList([
|
|
470
470
|
`Run ${output.highlight(`${bin} daemon start`)} to start background workers`,
|
|
471
|
-
|
|
471
|
+
// Memory is initialized automatically during init (persistent by
|
|
472
|
+
// default — see executor.ts) — no separate `memory init` step needed
|
|
473
|
+
// unless the DB was skipped (MINIMAL_INIT_OPTIONS) or needs --force.
|
|
472
474
|
`Run ${output.highlight(`${bin} swarm init`)} to initialize a swarm`,
|
|
473
475
|
`Or use ${output.highlight(`${bin} init --start-all`)} to do all of the above`,
|
|
474
476
|
options.components.settings ? `Review ${output.highlight('.claude/settings.json')} for hook configurations` : '',
|
|
@@ -212,15 +212,39 @@ export async function executeInit(options) {
|
|
|
212
212
|
// the `vector_indexes` table (older CLI / agentdb-written), self-heal it
|
|
213
213
|
// so the statusline vector count + namespace routing work. Best-effort,
|
|
214
214
|
// dynamically imported so a WASM-only host without better-sqlite3 just
|
|
215
|
-
// skips it.
|
|
215
|
+
// skips it.
|
|
216
|
+
//
|
|
217
|
+
// Persistent memory ON BY DEFAULT: `runtime.memoryBackend` already
|
|
218
|
+
// defaults to 'hybrid' in DEFAULT_INIT_OPTIONS, but that only ever
|
|
219
|
+
// configured the DECLARED backend — the actual .swarm/memory.db file
|
|
220
|
+
// was never created until something eventually called `memory store`
|
|
221
|
+
// or the user ran `memory init --force` by hand (both the generated
|
|
222
|
+
// CLAUDE.md and the quickstart docs told users to do this as a
|
|
223
|
+
// separate step). A fresh project could sit for days looking
|
|
224
|
+
// "configured for AgentDB" while genuinely capturing nothing, with no
|
|
225
|
+
// signal that the config and the on-disk reality had diverged. Fresh
|
|
226
|
+
// projects now get the DB eagerly created here, matching what
|
|
227
|
+
// `memoryBackend` already promised; MINIMAL_INIT_OPTIONS
|
|
228
|
+
// (memoryBackend: 'memory') opts out, matching its non-persistent intent.
|
|
216
229
|
try {
|
|
217
230
|
const memDbPath = path.join(targetDir, '.swarm', 'memory.db');
|
|
218
231
|
if (fs.existsSync(memDbPath)) {
|
|
219
232
|
const { repairVectorIndexes } = await import('../memory/memory-initializer.js');
|
|
220
233
|
await repairVectorIndexes(memDbPath, { autoRecover: true });
|
|
221
234
|
}
|
|
235
|
+
else if (options.runtime.memoryBackend !== 'memory') {
|
|
236
|
+
const { initializeMemoryDatabase } = await import('../memory/memory-initializer.js');
|
|
237
|
+
const initResult = await initializeMemoryDatabase({
|
|
238
|
+
backend: options.runtime.memoryBackend,
|
|
239
|
+
dbPath: memDbPath,
|
|
240
|
+
verbose: false,
|
|
241
|
+
});
|
|
242
|
+
if (initResult.success) {
|
|
243
|
+
result.created.files.push('.swarm/memory.db');
|
|
244
|
+
}
|
|
245
|
+
}
|
|
222
246
|
}
|
|
223
|
-
catch { /* best-effort — never block init on memory
|
|
247
|
+
catch { /* best-effort — never block init on memory setup */ }
|
|
224
248
|
}
|
|
225
249
|
// Generate statusline
|
|
226
250
|
if (options.components.statusline) {
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* - Shared settings cache
|
|
10
10
|
* - Strict 2s timeouts on all shell calls
|
|
11
11
|
*/
|
|
12
|
+
import { getInstalledCliVersion } from './helper-refresh.js';
|
|
12
13
|
/**
|
|
13
14
|
* Generate optimized statusline script
|
|
14
15
|
* Output format:
|
|
@@ -21,6 +22,18 @@
|
|
|
21
22
|
*/
|
|
22
23
|
export function generateStatuslineScript(options) {
|
|
23
24
|
const maxAgents = options.runtime.maxAgents;
|
|
25
|
+
// Resolved reliably HERE (inside the actual running CLI process, via
|
|
26
|
+
// getInstalledCliVersion()'s createRequire/findPackageRoot resolution) —
|
|
27
|
+
// never wrong at generation time. Baked in as getPkgVersion()'s fallback
|
|
28
|
+
// so a pure-npx render (no persistent local install: no marketplace
|
|
29
|
+
// checkout, no project node_modules, nothing under a global prefix — npx
|
|
30
|
+
// only ever installs into its own ephemeral, unpredictably-hashed
|
|
31
|
+
// ~/.npm/_npx/<hash>/ directory, which none of getPkgVersion()'s
|
|
32
|
+
// candidate paths can find) shows the real version instead of the
|
|
33
|
+
// previous hardcoded "3.6" placeholder. getPkgVersion()'s own runtime
|
|
34
|
+
// candidate scan still wins over this baked-in value when it finds
|
|
35
|
+
// something newer (e.g. a later `npm update` in the same project).
|
|
36
|
+
const bakedVersion = getInstalledCliVersion();
|
|
24
37
|
return `#!/usr/bin/env node
|
|
25
38
|
/**
|
|
26
39
|
* RuFlo V3 Statusline — delegation build (#2195)
|
|
@@ -620,7 +633,6 @@ function getCostFromStdin() {
|
|
|
620
633
|
return null;
|
|
621
634
|
}
|
|
622
635
|
|
|
623
|
-
// Read package version from the first package.json we find.
|
|
624
636
|
// Compares dotted-numeric version strings (e.g. "3.27.1" vs "3.27.10").
|
|
625
637
|
// Returns >0 if a>b, <0 if a<b, 0 if equal-as-far-as-parseable. Deliberately
|
|
626
638
|
// simple (no prerelease/build-metadata handling) — this only orders local
|
|
@@ -638,7 +650,11 @@ function compareVersions(a, b) {
|
|
|
638
650
|
}
|
|
639
651
|
|
|
640
652
|
function getPkgVersion() {
|
|
641
|
-
|
|
653
|
+
// Baked in at generation time from the real running CLI's own resolved
|
|
654
|
+
// version (see generateStatuslineScript()'s doc comment) — correct even
|
|
655
|
+
// when this renders via a pure npx invocation with no local install for
|
|
656
|
+
// the candidate scan below to find.
|
|
657
|
+
let ver = ${JSON.stringify(bakedVersion)};
|
|
642
658
|
try {
|
|
643
659
|
const home = os.homedir();
|
|
644
660
|
const pkgPaths = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claude-flow/cli",
|
|
3
|
-
"version": "3.27.
|
|
3
|
+
"version": "3.27.4",
|
|
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",
|