@claude-flow/cli 3.42.4 → 3.42.5

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": {
3
- "version": "3.42.4",
3
+ "version": "3.42.5",
4
4
  "files": {
5
5
  "auto-memory-hook.mjs": "85fe05c757421c52137c0bc8545a0896bab6b4714538c2a11d1d0835bfcc8c1c",
6
6
  "hook-handler.cjs": "209d9fafe10e17d1be0866727f6f9cf9ac66f9a0793f1c793a4f58319e8e4583",
@@ -8,6 +8,6 @@
8
8
  "statusline.cjs": "4a48353b4f1566fa4379b00fd0321b6676a22b6cc91fbbd8380ac5183d619468"
9
9
  }
10
10
  },
11
- "signature": "zyopDoOW51Qkc0k2PpDbEv/puqT45lcx8EFnRQmwioIEDI/mv8KV140ZWcjEaa7lvIDW/epdB333K7bMW122Dw==",
11
+ "signature": "vKGy5o0MCknsugr2YSBRJojeNK1T+3et2Aqtj8MMFdgX6XeKHZglXkBjfNC6Jh74afqiXGBQlUs7VQgMf7daDQ==",
12
12
  "algorithm": "ed25519"
13
13
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "generation": 6,
4
- "generatedAt": "2026-09-17T21:28:47.530Z",
5
- "gitSha": "702d1461",
4
+ "generatedAt": "2026-09-21T19:42:33.000Z",
5
+ "gitSha": "9c61c86f",
6
6
  "catalog": {
7
7
  "agents": 167,
8
8
  "tools": 418,
@@ -1830,16 +1830,33 @@ export async function bridgeStorePattern(options) {
1830
1830
  try {
1831
1831
  const reasoningBank = registry.get('reasoningBank');
1832
1832
  const patternId = generateId('pattern');
1833
- if (reasoningBank && typeof reasoningBank.store === 'function') {
1834
- await reasoningBank.store({
1835
- id: patternId,
1836
- content: options.pattern,
1837
- type: options.type,
1838
- confidence: options.confidence,
1833
+ // #3327 Finding A — the real method is `storePattern`, and it takes a
1834
+ // ReasoningPattern, NOT the {id, content, type, confidence} shape used
1835
+ // here before. `reasoningBank.store` has never existed on agentdb's
1836
+ // ReasoningBank, so `typeof ... === 'function'` was always false and this
1837
+ // branch was dead code — every write fell through to bridge-fallback while
1838
+ // `agentdb_controllers` cheerfully reported `reasoningBank: enabled=true`.
1839
+ //
1840
+ // Contract (agentdb ReasoningBank.d.ts):
1841
+ // storePattern({ taskType, approach, successRate, uses?, avgReward?,
1842
+ // tags?, metadata? }) => Promise<number> // sqlite rowid
1843
+ // The embedded text is `${taskType}: ${approach}`, so the caller's pattern
1844
+ // text must land in `approach` for search to match on it.
1845
+ if (reasoningBank && typeof reasoningBank.storePattern === 'function') {
1846
+ const rowId = await reasoningBank.storePattern({
1847
+ taskType: options.type,
1848
+ approach: options.pattern,
1849
+ successRate: options.confidence,
1850
+ tags: [options.type, 'reasoning-pattern'],
1839
1851
  metadata: options.metadata,
1840
- timestamp: Date.now(),
1841
1852
  });
1842
- return { success: true, patternId, controller: 'reasoningBank' };
1853
+ // storePattern returns a numeric rowid; surface it as the caller-facing
1854
+ // id so a later getPattern/deletePattern by this id resolves.
1855
+ return {
1856
+ success: true,
1857
+ patternId: rowId != null ? String(rowId) : patternId,
1858
+ controller: 'reasoningBank',
1859
+ };
1843
1860
  }
1844
1861
  // Fallback: store via bridge SQL
1845
1862
  const patternValue = JSON.stringify({ pattern: options.pattern, type: options.type, confidence: options.confidence, metadata: options.metadata });
@@ -1873,7 +1890,13 @@ export async function bridgeStorePattern(options) {
1873
1890
  // be read back — return `patternId` (the real key) instead.
1874
1891
  return { success: true, patternId, controller: 'bridge-fallback' };
1875
1892
  }
1876
- catch {
1893
+ catch (err) {
1894
+ // #3327 Finding A — this catch is what hid the defect for months. When
1895
+ // ReasoningBank threw `embedPassage is not a function`, the error was
1896
+ // discarded and the caller saw an ordinary fallback, indistinguishable
1897
+ // from "no controller registered". Record it so `agentdb_health` and the
1898
+ // degraded `reason` can name the real cause instead of guessing.
1899
+ bridgeFailureReason = err instanceof Error ? err.message : String(err);
1877
1900
  return null;
1878
1901
  }
1879
1902
  }
@@ -1895,11 +1918,17 @@ export async function bridgeSearchPatterns(options) {
1895
1918
  else {
1896
1919
  results = await reasoningBank.search(options.query, { topK: options.topK || 5, minScore: options.minConfidence || 0.3 });
1897
1920
  }
1921
+ // #3327 Finding A — agentdb returns ReasoningPattern[]: the text lives in
1922
+ // `approach` and the cosine score in `similarity`. Neither `content`/
1923
+ // `pattern` nor `score`/`confidence` exists on that shape, so the old
1924
+ // mapping produced `content: ''` and `score: 0` for every hit even when
1925
+ // the search itself succeeded. Read the real fields first, keeping the
1926
+ // legacy names as fallbacks for the pre-agentdb shape.
1898
1927
  return {
1899
1928
  results: Array.isArray(results) ? results.map((r) => ({
1900
- id: r.id || r.patternId || '',
1901
- content: r.content || r.pattern || '',
1902
- score: r.score ?? r.confidence ?? 0,
1929
+ id: String(r.id ?? r.patternId ?? ''),
1930
+ content: r.approach ?? r.content ?? r.pattern ?? '',
1931
+ score: r.similarity ?? r.score ?? r.successRate ?? r.confidence ?? 0,
1903
1932
  })) : [],
1904
1933
  controller: 'reasoningBank',
1905
1934
  };
@@ -1954,7 +1983,12 @@ export async function bridgeSearchPatterns(options) {
1954
1983
  controller: 'bridge-fallback',
1955
1984
  } : null;
1956
1985
  }
1957
- catch {
1986
+ catch (err) {
1987
+ // #3327 Finding A — see bridgeStorePattern's catch. `embedQuery is not a
1988
+ // function` died here silently, which is why search reported
1989
+ // `reasoningBank-unavailable:registry-null` (a null return) even though
1990
+ // the registry was present and the controller was reported enabled.
1991
+ bridgeFailureReason = err instanceof Error ? err.message : String(err);
1958
1992
  return null;
1959
1993
  }
1960
1994
  }
File without changes
@@ -159,14 +159,14 @@ export declare const SpawnAgentSchema: z.ZodObject<{
159
159
  timeout: z.ZodOptional<z.ZodNumber>;
160
160
  }, "strip", z.ZodTypeAny, {
161
161
  type: "coder" | "reviewer" | "tester" | "planner" | "researcher" | "security-architect" | "security-auditor" | "memory-specialist" | "swarm-specialist" | "integration-architect" | "performance-engineer" | "core-architect" | "test-architect" | "queen-coordinator" | "project-coordinator";
162
+ id?: string | undefined;
162
163
  config?: Record<string, unknown> | undefined;
163
164
  timeout?: number | undefined;
164
- id?: string | undefined;
165
165
  }, {
166
166
  type: "coder" | "reviewer" | "tester" | "planner" | "researcher" | "security-architect" | "security-auditor" | "memory-specialist" | "swarm-specialist" | "integration-architect" | "performance-engineer" | "core-architect" | "test-architect" | "queen-coordinator" | "project-coordinator";
167
+ id?: string | undefined;
167
168
  config?: Record<string, unknown> | undefined;
168
169
  timeout?: number | undefined;
169
- id?: string | undefined;
170
170
  }>;
171
171
  /**
172
172
  * Task input schema
@@ -181,13 +181,13 @@ export declare const TaskInputSchema: z.ZodObject<{
181
181
  taskId: string;
182
182
  content: string;
183
183
  agentType: "coder" | "reviewer" | "tester" | "planner" | "researcher" | "security-architect" | "security-auditor" | "memory-specialist" | "swarm-specialist" | "integration-architect" | "performance-engineer" | "core-architect" | "test-architect" | "queen-coordinator" | "project-coordinator";
184
- priority?: "critical" | "high" | "medium" | "low" | undefined;
184
+ priority?: "low" | "medium" | "high" | "critical" | undefined;
185
185
  metadata?: Record<string, unknown> | undefined;
186
186
  }, {
187
187
  taskId: string;
188
188
  content: string;
189
189
  agentType: "coder" | "reviewer" | "tester" | "planner" | "researcher" | "security-architect" | "security-auditor" | "memory-specialist" | "swarm-specialist" | "integration-architect" | "performance-engineer" | "core-architect" | "test-architect" | "queen-coordinator" | "project-coordinator";
190
- priority?: "critical" | "high" | "medium" | "low" | undefined;
190
+ priority?: "low" | "medium" | "high" | "critical" | undefined;
191
191
  metadata?: Record<string, unknown> | undefined;
192
192
  }>;
193
193
  /**
@@ -234,16 +234,16 @@ export declare const ExecutorConfigSchema: z.ZodObject<{
234
234
  cwd: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
235
235
  allowSudo: z.ZodDefault<z.ZodBoolean>;
236
236
  }, "strip", z.ZodTypeAny, {
237
- allowedCommands: string[];
238
237
  timeout: number;
238
+ allowedCommands: string[];
239
239
  maxBuffer: number;
240
240
  allowSudo: boolean;
241
241
  blockedPatterns?: string[] | undefined;
242
242
  cwd?: string | undefined;
243
243
  }, {
244
244
  allowedCommands: string[];
245
- blockedPatterns?: string[] | undefined;
246
245
  timeout?: number | undefined;
246
+ blockedPatterns?: string[] | undefined;
247
247
  maxBuffer?: number | undefined;
248
248
  cwd?: string | undefined;
249
249
  allowSudo?: boolean | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/cli",
3
- "version": "3.42.4",
3
+ "version": "3.42.5",
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",