Files
ruflo/.github
ReuvenandRuFlo 584fc8e666 test+ci: extract-tool-block + workspace build + timeout bump
Three independent fixes for the remaining Test V3 failures:

1. tool-honesty.test.ts (6 fails)
   The handler-extraction was using fixed .slice(start, start + N)
   windows that didn't keep up as handler bodies grew. Replace with
   extractToolBlock(source, toolName) — walks brace depth from the
   opening { until the matching close. All assertions about
   os.totalmem(), performance.now(), _stub: implementation === 'none'
   now reach the actual code regardless of file growth. 7 sites
   updated; the mechanism was always brittle but only started failing
   recently.

2. p1-commands.test.ts (1 fail) — 'Failed to resolve entry for package
   @claude-flow/memory' during vite-import-analysis. The test job ran

> claude-flow@3.7.0-alpha.18 test /Users/cohen/Projects/ruflo
> vitest

 DEV  v1.6.1 /Users/cohen/Projects/ruflo

 ✓ v3/@claude-flow/plugins/__tests__/ruvector-bridge.test.ts  (102 tests) 46ms
 ✓ v3/@claude-flow/guidance/tests/analyzer.test.ts  (172 tests) 94ms
 ✓ v3/@claude-flow/guidance/tests/temporal.test.ts  (98 tests) 166ms
 ✓ v3/@claude-flow/plugins/__tests__/ruvector-integration.test.ts  (68 tests | 3 skipped) 31ms
 ✓ v3/@claude-flow/claims/tests/claim-service.test.ts  (43 tests) 17ms
 ✓ v3/@claude-flow/guidance/tests/truth-anchors.test.ts  (89 tests) 14ms
 ✓ v3/@claude-flow/guidance/tests/uncertainty.test.ts  (83 tests) 19ms
TAP version 13
 ❯ tests/context-persistence-hook.test.mjs  (0 test)
stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1839:11)

=== Context Persistence Archive Status ===

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1846:11)
  Backend:     sqlite (/Users/cohen/Projects/ruflo/.claude-flow/data/transcript-archive.db)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1847:11)
  Total:       0 entries

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1848:11)
  Transcripts: 0 entries

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1849:11)
  Namespaces:  none

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1850:11)
  Budget:      4000 chars

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1851:11)
  Sessions:    0

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1852:11)
  Proactive:   enabled (UserPromptSubmit hook)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1853:11)
  Auto-opt:    enabled (importance ranking, pruning, sync)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1854:11)
  Retention:   30 days (prune never-accessed entries)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1856:11)
  RuVector:    not configured

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1864:15)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1865:15)
  --- Self-Learning ---

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1866:15)
  Embeddings:  0/0 entries have vector embeddings

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1867:15)
  Avg conf:    0.0% (decay: -0.5%/hr, boost: +3%/access)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1868:15)
  Low conf:    0 entries below 30% (pruned at 15%)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1869:15)
  Semantic:    pending (embeddings generating)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1874:11)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1875:11)
  --- Context Autopilot ---

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1876:11)
  Enabled:     true

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1877:11)
  Window:      200.0K tokens

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1878:11)
  Warn at:     70%

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1879:11)
  Prune at:    85%

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1880:11)
  Compaction:  LOSSLESS (archive before, restore after)

stdout | doStatus (/Users/cohen/Projects/ruflo/.claude/helpers/context-persistence-hook.mjs:1906:11)

# Subtest: SQLiteBackend
    # Subtest: should initialize and create schema
    ok 1 - should initialize and create schema
      ---
      duration_ms: 2.748125
      type: 'test'
      ...
    # Subtest: should store and query entries
    ok 2 - should store and query entries
      ---
      duration_ms: 1.609625
      type: 'test'
      ...
    # Subtest: should query by session with indexed lookup
    ok 3 - should query by session with indexed lookup
      ---
      duration_ms: 3.155
      type: 'test'
      ...
    # Subtest: should dedup via hashExists
    ok 4 - should dedup via hashExists
      ---
      duration_ms: 1.294
      type: 'test'
      ...
    # Subtest: should bulk insert in a transaction
    ok 5 - should bulk insert in a transaction
      ---
      duration_ms: 1.90825
      type: 'test'
      ...
    # Subtest: should list sessions with counts
    ok 6 - should list sessions with counts
      ---
      duration_ms: 1.512959
      type: 'test'
      ...
    # Subtest: should persist across close/reopen
    ok 7 - should persist across close/reopen
      ---
      duration_ms: 1.88125
      type: 'test'
      ...
    1..7
ok 1 - SQLiteBackend
  ---
  duration_ms: 14.84825
  type: 'suite'
  ...
# Subtest: JsonFileBackend
    # Subtest: should initialize empty
    ok 1 - should initialize empty
      ---
      duration_ms: 0.645625
      type: 'test'
      ...
    # Subtest: should store and query entries
    ok 2 - should store and query entries
      ---
      duration_ms: 0.98325
      type: 'test'
      ...
    # Subtest: should queryBySession
    ok 3 - should queryBySession
      ---
      duration_ms: 1.245833
      type: 'test'
      ...
    # Subtest: should hashExists
    ok 4 - should hashExists
      ---
      duration_ms: 0.347167
      type: 'test'
      ...
    1..4
ok 2 - JsonFileBackend
  ---
  duration_ms: 3.594417
  type: 'suite'
  ...
# Subtest: resolveBackend
    # Subtest: should resolve to sqlite when better-sqlite3 is available
    ok 1 - should resolve to sqlite when better-sqlite3 is available
      ---
      duration_ms: 1.113041
      type: 'test'
      ...
    1..1
ok 3 - resolveBackend
  ---
  duration_ms: 1.208041
  type: 'suite'
  ...
# Subtest: createHashEmbedding
    # Subtest: should produce 768-dimensional embedding
    not ok 1 - should produce 768-dimensional embedding
      ---
      duration_ms: 10.651208
      type: 'test'
      location: '/Users/cohen/Projects/ruflo/tests/context-persistence-hook.test.mjs:300:25'
      failureType: 'testCodeFailure'
      error: |-
        Expected values to be strictly equal:

        384 !== 768

      code: 'ERR_ASSERTION'
      name: 'AssertionError'
      expected: 768
      actual: 384
      operator: 'strictEqual'
      stack: |-
        TestContext.<anonymous> (/Users/cohen/Projects/ruflo/tests/context-persistence-hook.test.mjs:297:12)
        Test.runInAsyncScope (node:async_hooks:214:14)
        Test.run (node:internal/test_runner/test:1047:25)
        Test.start (node:internal/test_runner/test:944:17)
        node:internal/test_runner/test:1440:71
        node:internal/per_context/primordials:466:82
        new Promise (<anonymous>)
        new SafePromise (node:internal/per_context/primordials:435:3)
        node:internal/per_context/primordials:466:9
        Array.map (<anonymous>)
      ...
    # Subtest: should be L2-normalized
    ok 2 - should be L2-normalized
      ---
      duration_ms: 0.688958
      type: 'test'
      ...
    # Subtest: should be deterministic
    ok 3 - should be deterministic
      ---
      duration_ms: 1.47825
      type: 'test'
      ...
    # Subtest: should produce different embeddings for different text
    ok 4 - should produce different embeddings for different text
      ---
      duration_ms: 0.859625
      type: 'test'
      ...
    1..4
not ok 4 - createHashEmbedding
  ---
  duration_ms: 13.878834
  type: 'suite'
  location: '/Users/cohen/Projects/ruflo/tests/context-persistence-hook.test.mjs:299:23'
  failureType: 'subtestsFailed'
  error: '1 subtest failed'
  code: 'ERR_TEST_FAILURE'
  ...
# Subtest: hashContent
    # Subtest: should produce SHA-256 hex string
    ok 1 - should produce SHA-256 hex string
      ---
      duration_ms: 0.5655
      type: 'test'
      ...
    # Subtest: should be deterministic
    ok 2 - should be deterministic
      ---
      duration_ms: 0.05475
      type: 'test'
      ...
    # Subtest: should differ for different content
    ok 3 - should differ for different content
      ---
      duration_ms: 0.054208
      type: 'test'
      ...
    1..3
ok 5 - hashContent
  ---
  duration_ms: 0.802833
  type: 'suite'
  ...
# Subtest: parseTranscript
    # Subtest: should parse JSONL file
    ok 1 - should parse JSONL file
      ---
      duration_ms: 0.468667
      type: 'test'
      ...
    # Subtest: should return empty for missing file
    ok 2 - should return empty for missing file
      ---
      duration_ms: 0.071292
      type: 'test'
      ...
    # Subtest: should skip malformed lines
    ok 3 - should skip malformed lines
      ---
      duration_ms: 0.28825
      type: 'test'
      ...
    1..3
ok 6 - parseTranscript
  ---
  duration_ms: 0.913125
  type: 'suite'
  ...
# Subtest: extractTextContent
    # Subtest: should extract from content array
    ok 1 - should extract from content array
      ---
      duration_ms: 0.166417
      type: 'test'
      ...
    # Subtest: should extract from string content
    ok 2 - should extract from string content
      ---
      duration_ms: 0.060542
      type: 'test'
      ...
    # Subtest: should handle null/undefined
    ok 3 - should handle null/undefined
      ---
      duration_ms: 0.058375
      type: 'test'
      ...
    # Subtest: should skip non-text blocks
    ok 4 - should skip non-text blocks
      ---
      duration_ms: 0.064375
      type: 'test'
      ...
    1..4
ok 7 - extractTextContent
  ---
  duration_ms: 0.452291
  type: 'suite'
  ...
# Subtest: extractToolCalls
    # Subtest: should extract tool_use blocks
    ok 1 - should extract tool_use blocks
      ---
      duration_ms: 0.13575
      type: 'test'
      ...
    # Subtest: should handle null message
    ok 2 - should handle null message
      ---
      duration_ms: 0.722
      type: 'test'
      ...
    1..2
ok 8 - extractToolCalls
  ---
  duration_ms: 0.93275
  type: 'suite'
  ...
# Subtest: extractFilePaths
    # Subtest: should extract and deduplicate paths
    ok 1 - should extract and deduplicate paths
      ---
      duration_ms: 0.124834
      type: 'test'
      ...
    1..1
ok 9 - extractFilePaths
  ---
  duration_ms: 0.183958
  type: 'suite'
  ...
# Subtest: chunkTranscript
    # Subtest: should group user+assistant pairs
    ok 1 - should group user+assistant pairs
      ---
      duration_ms: 0.234708
      type: 'test'
      ...
    # Subtest: should skip synthetic tool result messages
    ok 2 - should skip synthetic tool result messages
      ---
      duration_ms: 0.116291
      type: 'test'
      ...
    # Subtest: should filter non user/assistant messages
    ok 3 - should filter non user/assistant messages
      ---
      duration_ms: 0.160208
      type: 'test'
      ...
    # Subtest: should handle empty messages
    ok 4 - should handle empty messages
      ---
      duration_ms: 0.064875
      type: 'test'
      ...
    1..4
ok 10 - chunkTranscript
  ---
  duration_ms: 0.703125
  type: 'suite'
  ...
# Subtest: extractSummary
    # Subtest: should produce summary within 300 chars
    ok 1 - should produce summary within 300 chars
      ---
      duration_ms: 0.2075
      type: 'test'
      ...
    # Subtest: should handle empty chunk
    ok 2 - should handle empty chunk
      ---
      duration_ms: 0.066584
      type: 'test'
      ...
    1..2
ok 11 - extractSummary
  ---
  duration_ms: 0.348542
  type: 'suite'
  ...
# Subtest: buildEntry
    # Subtest: should produce valid memory entry
    ok 1 - should produce valid memory entry
      ---
      duration_ms: 0.194917
      type: 'test'
      ...
    1..1
ok 12 - buildEntry
  ---
  duration_ms: 0.225708
  type: 'suite'
  ...
# Subtest: storeChunks (SQLite)
    # Subtest: should store chunks and dedup duplicates
    not ok 1 - should store chunks and dedup duplicates
      ---
      duration_ms: 1.849375
      type: 'test'
      location: '/Users/cohen/Projects/ruflo/tests/context-persistence-hook.test.mjs:535:25'
      failureType: 'testCodeFailure'
      error: |-
        Expected values to be strictly equal:

        0 !== 1

      code: 'ERR_ASSERTION'
      name: 'AssertionError'
      expected: 1
      actual: 0
      operator: 'strictEqual'
      stack: |-
        TestContext.<anonymous> (/Users/cohen/Projects/ruflo/tests/context-persistence-hook.test.mjs:542:12)
        Test.run (node:internal/test_runner/test:1054:7)
        async Promise.all (index 0)
        Suite.run (node:internal/test_runner/test:1442:7)
        Test.processPendingSubtests (node:internal/test_runner/test:744:7)
      ...
    1..1
not ok 13 - storeChunks (SQLite)
  ---
  duration_ms: 1.8975
  type: 'suite'
  location: '/Users/cohen/Projects/ruflo/tests/context-persistence-hook.test.mjs:534:23'
  failureType: 'subtestsFailed'
  error: '1 subtest failed'
  code: 'ERR_TEST_FAILURE'
  ...
# Subtest: storeChunks (JSON fallback)
    # Subtest: should store chunks and dedup duplicates
    ok 1 - should store chunks and dedup duplicates
      ---
      duration_ms: 0.585334
      type: 'test'
      ...
    1..1
ok 14 - storeChunks (JSON fallback)
  ---
  duration_ms: 0.637333
  type: 'suite'
  ...
# Subtest: retrieveContext
    # Subtest: should build restoration text (SQLite)
    ok 1 - should build restoration text (SQLite)
      ---
      duration_ms: 1.849
      type: 'test'
      ...
    # Subtest: should return empty for unknown session
    ok 2 - should return empty for unknown session
      ---
      duration_ms: 1.272875
      type: 'test'
      ...
    # Subtest: should respect budget constraint
    ok 3 - should respect budget constraint
      ---
      duration_ms: 2.0155
      type: 'test'
      ...
    1..3
ok 15 - retrieveContext
  ---
  duration_ms: 5.218958
  type: 'suite'
  ...
# Subtest: no-op conditions
    # Subtest: should not restore for non-matching session
    ok 1 - should not restore for non-matching session
      ---
      duration_ms: 1.32625
      type: 'test'
      ...
    1..1
ok 16 - no-op conditions
  ---
  duration_ms: 1.376833
  type: 'suite'
  ...
# Subtest: getRuVectorConfig
    # Subtest: should return null when no env vars set
    ok 1 - should return null when no env vars set
      ---
      duration_ms: 0.266125
      type: 'test'
      ...
    # Subtest: should parse config from RUVECTOR_* env vars
    ok 2 - should parse config from RUVECTOR_* env vars
      ---
      duration_ms: 0.192292
      type: 'test'
      ...
    # Subtest: should fall back to PG* env vars
    ok 3 - should fall back to PG* env vars
      ---
      duration_ms: 0.145542
      type: 'test'
      ...
    1..3
ok 17 - getRuVectorConfig
  ---
  duration_ms: 0.677542
  type: 'suite'
  ...
# Subtest: RuVectorBackend
    # Subtest: should be exported and constructable
    ok 1 - should be exported and constructable
      ---
      duration_ms: 0.115542
      type: 'test'
      ...
    # Subtest: hashExists should return false (async-only for pg)
    ok 2 - hashExists should return false (async-only for pg)
      ---
      duration_ms: 0.071208
      type: 'test'
      ...
    1..2
ok 18 - RuVectorBackend
  ---
  duration_ms: 0.258375
  type: 'suite'
  ...
# Subtest: proactive archiving (UserPromptSubmit)
    # Subtest: should archive incrementally and dedup on re-archive
    not ok 1 - should archive incrementally and dedup on re-archive
      ---
      duration_ms: 2.16425
      type: 'test'
      location: '/Users/cohen/Projects/ruflo/tests/context-persistence-hook.test.mjs:763:25'
      failureType: 'testCodeFailure'
      error: |-
        Expected values to be strictly equal:

        0 !== 3

      code: 'ERR_ASSERTION'
      name: 'AssertionError'
      expected: 3
      actual: 0
      operator: 'strictEqual'
      stack: |-
        TestContext.<anonymous> (/Users/cohen/Projects/ruflo/tests/context-persistence-hook.test.mjs:769:12)
        Test.run (node:internal/test_runner/test:1054:7)
        async Promise.all (index 0)
        Suite.run (node:internal/test_runner/test:1442:7)
        Test.processPendingSubtests (node:internal/test_runner/test:744:7)
      ...
    # Subtest: should build complete restoration from proactively archived data
    ok 2 - should build complete restoration from proactively archived data
      ---
      duration_ms: 2.355
      type: 'test'
      ...
    1..2
not ok 19 - proactive archiving (UserPromptSubmit)
  ---
  duration_ms: 4.612
  type: 'suite'
  location: '/Users/cohen/Projects/ruflo/tests/context-persistence-hook.test.mjs:762:23'
  failureType: 'subtestsFailed'
  error: '1 subtest failed'
  code: 'ERR_TEST_FAILURE'
  ...
# Subtest: resolveBackend priority
    # Subtest: should resolve sqlite as highest priority
    ok 1 - should resolve sqlite as highest priority
      ---
      duration_ms: 1.255125
      type: 'test'
      ...
    # Subtest: should not resolve ruvector when env vars are absent
    ok 2 - should not resolve ruvector when env vars are absent
      ---
      duration_ms: 0.075042
      type: 'test'
      ...
    1..2
ok 20 - resolveBackend priority
  ---
  duration_ms: 1.414292
  type: 'suite'
  ...
# Subtest: buildCompactInstructions
    # Subtest: should produce compact instructions with archived turn count
    ok 1 - should produce compact instructions with archived turn count
      ---
      duration_ms: 0.488083
      type: 'test'
      ...
    # Subtest: should include file paths and tool names
    ok 2 - should include file paths and tool names
      ---
      duration_ms: 0.109459
      type: 'test'
      ...
    # Subtest: should include decision context from assistant text
    ok 3 - should include decision context from assistant text
      ---
      duration_ms: 0.085916
      type: 'test'
      ...
    # Subtest: should include most recent turns section
    ok 4 - should include most recent turns section
      ---
      duration_ms: 0.305083
      type: 'test'
      ...
    # Subtest: should respect COMPACT_INSTRUCTION_BUDGET
    ok 5 - should respect COMPACT_INSTRUCTION_BUDGET
      ---
      duration_ms: 0.5195
      type: 'test'
      ...
    # Subtest: should handle empty chunks gracefully
    ok 6 - should handle empty chunks gracefully
      ---
      duration_ms: 0.065
      type: 'test'
      ...
    1..6
ok 21 - buildCompactInstructions
  ---
  duration_ms: 1.695334
  type: 'suite'
  ...
# Subtest: computeImportance
    # Subtest: should rank recently accessed entries higher
    ok 1 - should rank recently accessed entries higher
      ---
      duration_ms: 0.155
      type: 'test'
      ...
    # Subtest: should rank frequently accessed entries higher
    ok 2 - should rank frequently accessed entries higher
      ---
      duration_ms: 0.066875
      type: 'test'
      ...
    # Subtest: should boost entries with tool calls and file paths
    ok 3 - should boost entries with tool calls and file paths
      ---
      duration_ms: 0.066167
      type: 'test'
      ...
    # Subtest: should return positive scores for all entries
    ok 4 - should return positive scores for all entries
      ---
      duration_ms: 0.058042
      type: 'test'
      ...
    1..4
ok 22 - computeImportance
  ---
  duration_ms: 0.438458
  type: 'suite'
  ...
 ✓ v3/@claude-flow/claims/tests/work-stealing-service.test.ts  (36 tests) 16ms
 ✓ v3/@claude-flow/swarm/__tests__/queen-coordinator.test.ts  (68 tests) 66ms
 ❯ v3/@claude-flow/cli/__tests__/memory-ruvector-deep.test.ts  (145 tests | 1 failed | 13 skipped) 1416ms
   ❯ v3/@claude-flow/cli/__tests__/memory-ruvector-deep.test.ts > Edge Cases > SONA Optimizer keyword extraction > should extract architecture keywords
     → Failed to resolve entry for package "@ruvector/sona". The package may have incorrect main/module/exports specified in its package.json.
 ✓ v3/@claude-flow/claims/tests/load-balancer.test.ts  (27 tests) 15ms
 ✓ v3/@claude-flow/cli/__tests__/services/headless-worker-executor.test.ts  (61 tests) 189ms
 ✓ v3/@claude-flow/guidance/tests/trust.test.ts  (99 tests) 27ms
 ❯ archive/v2/src/verification/tests/mocks/false-reporting-scenarios.test.ts  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/mcp-tools-deep.test.ts  (107 tests) 610ms
 ✓ v3/@claude-flow/claims/tests/events.test.ts  (36 tests) 17ms
 ✓ v3/@claude-flow/cli/__tests__/commands-deep.test.ts  (400 tests) 73ms
 ❯ archive/v2/src/verification/tests/e2e/verification-pipeline.test.ts  (0 test)
 ✓ v3/plugins/gastown-bridge/tests/convoy.test.ts  (63 tests) 17ms
 ✓ v3/plugins/gastown-bridge/tests/wasm-loader.test.ts  (47 tests) 15ms
 ✓ v3/@claude-flow/guidance/tests/manifest-validator.test.ts  (59 tests) 14ms
 ✓ v3/@claude-flow/memory/src/auto-memory-bridge.test.ts  (74 tests) 80ms
 ❯ archive/v2/examples/05-swarm-apps/rest-api-advanced/tests/integration/orders.test.js  (0 test)
 ✓ v3/@claude-flow/codex/tests/generators.test.ts  (68 tests) 13ms
 ✓ v3/@claude-flow/cli/__tests__/plugins-transfer-deep.test.ts  (204 tests) 1793ms
TAP version 13
 ❯ tests/rvf-capability-verify.test.ts  (0 test)
 ✓ v3/plugins/gastown-bridge/tests/mcp-tools.test.ts  (34 tests) 12ms
 ✓ v3/@claude-flow/guidance/tests/capabilities.test.ts  (68 tests) 12ms
 ✓ v3/plugins/agentic-qe/__tests__/tools/chaos-inject.test.ts  (43 tests) 10ms
 ✓ v3/@claude-flow/guidance/tests/evolution.test.ts  (44 tests) 14ms
 ✓ v3/@claude-flow/guidance/tests/hooks.test.ts  (38 tests) 17ms
 ✓ ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/wasmTools.test.ts  (48 tests) 16ms
 ✓ v3/@claude-flow/cli/__tests__/p1-commands.test.ts  (56 tests | 28 skipped) 1055ms
 ❯ archive/v2/src/verification/tests/performance/verification-overhead.test.ts  (0 test)
 ✓ v3/@claude-flow/memory/src/controller-registry.test.ts  (65 tests) 135ms
 ✓ v3/plugins/gastown-bridge/tests/types.test.ts  (55 tests) 16ms
 ✓ v3/@claude-flow/guidance/tests/memory-gate.test.ts  (48 tests) 12ms
 ✓ v3/@claude-flow/memory/src/learning-bridge.test.ts  (56 tests) 46ms
 ✓ v3/plugins/agentic-qe/__tests__/bridges.test.ts  (44 tests) 10ms
 ✓ v3/@claude-flow/guidance/tests/generators.test.ts  (68 tests) 12ms
 ✓ v3/@claude-flow/cli/__tests__/ruvector/coverage-router.test.ts  (39 tests) 12ms
 ✓ v3/@claude-flow/cli/__tests__/commands.test.ts  (48 tests | 16 skipped) 643ms
 ❯ archive/v2/src/verification/tests/integration/cross-agent-communication.test.ts  (0 test)
 ❯ archive/v2/tests/integration/mcp-pattern-persistence.test.js  (0 test)
 ✓ v3/@claude-flow/memory/src/memory-graph.test.ts  (60 tests) 16ms
 ✓ v3/@claude-flow/plugins/__tests__/ruvector-quantization.test.ts  (28 tests) 2384ms
 ✓ v3/@claude-flow/plugins/__tests__/ruvector-migrations.test.ts  (42 tests) 3166ms
 ✓ v3/@claude-flow/guidance/tests/artifacts.test.ts  (49 tests) 16ms
 ✓ v3/@claude-flow/guidance/tests/coherence.test.ts  (56 tests) 14ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/device-lifecycle-service.test.ts  (40 tests) 16ms
 ✓ v3/@claude-flow/cli/__tests__/services/worker-daemon-resource-thresholds.test.ts  (40 tests) 2781ms
 ❯ archive/v2/tests/unit/terminal/terminal-manager.test.ts  (0 test)
 ✓ v3/@claude-flow/codex/tests/migrations.test.ts  (56 tests) 13ms
 ❯ archive/v2/tests/unit/core/orchestrator.test.ts  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/security-verification.test.ts  (25 tests) 15ms
 ✓ ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts  (47 tests) 180ms
stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > insertOne and findOne
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > insertMany and find with toArray
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > updateOne with $set
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > updateOne with upsert
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > updateOne with $setOnInsert during upsert
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > updateMany
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > deleteOne
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > deleteMany
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > countDocuments
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > distinct
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > findOneAndUpdate
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > findOneAndDelete
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfCollection CRUD > bulkWrite
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Query operators > $gt, $gte, $lt, $lte
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Query operators > $ne
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Query operators > $in and $nin
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Query operators > $exists
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Query operators > $or and $and
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Query operators > $regex
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Query operators > $not
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Update operators > $inc
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Update operators > $push
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Update operators > $push with $each
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Update operators > $pull
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Update operators > $addToSet
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Update operators > $unset
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Cursor > sort, limit, skip
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Cursor > async iterator
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Cursor > tryNext / hasNext / next
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Cursor > map transforms results
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Aggregation > $match + $sort + $limit
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Aggregation > aggregate().next()
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Aggregation > $group with $sum
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfGridFSBucket > upload and download
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > RvfGridFSBucket > delete file
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Multi-tenant > tenant-scoped collections are isolated
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Multi-tenant > listTenants and getTenantStats
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Persistence > flush to disk and reload
[RVF] No existing database at , starting fresh
[RVF] No existing database at /tmp/rvf-test-51058ed3-5790-42d6-beb6-7372b3b658e5.json, starting fresh
[RVF] Loaded 36 collections from /tmp/rvf-test-51058ed3-5790-42d6-beb6-7372b3b658e5.json (4 tenants)

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > ObjectId > equals and toString
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > ObjectId > createFromHexString
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > ObjectId > toJSON
[RVF] No existing database at , starting fresh

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Performance benchmark > insert 10,000 documents
[RVF] No existing database at , starting fresh
  Insert 10k docs: 38.0ms

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Performance benchmark > find with filter on 10k docs
[RVF] No existing database at , starting fresh
  Find with range filter (10k): 3.8ms (1000 results)

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Performance benchmark > updateMany on 10k docs
[RVF] No existing database at , starting fresh
  UpdateMany (5k matched): 12.8ms

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Performance benchmark > aggregate pipeline on 10k docs
[RVF] No existing database at , starting fresh
  Aggregate (match+sort+limit): 19.7ms

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Performance benchmark > concurrent read/write operations
[RVF] No existing database at , starting fresh
  5 concurrent ops (1k docs): 1.6ms

stdout | ruflo/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts > Performance benchmark > multi-tenant isolation performance
[RVF] No existing database at , starting fresh
  Multi-tenant insert (10 tenants × 1k): 15.4ms
  Single tenant query (1k docs): 4.4ms (499 results)

 ✓ v3/plugins/prime-radiant/__tests__/plugin.test.ts  (42 tests) 394ms
 ✓ v3/@claude-flow/guidance/tests/conformance-kit.test.ts  (42 tests) 28ms
 ✓ v3/plugins/gastown-bridge/tests/bridges.test.ts  (43 tests) 16ms
 ✓ v3/@claude-flow/cli/__tests__/ruvector/diff-classifier.test.ts  (53 tests) 16ms
 ✓ v3/plugins/gastown-bridge/tests/validators.test.ts  (63 tests) 10ms
TAP version 13
 ❯ v3/__tests__/appliance/rvfa-distribution.test.ts  (0 test)
# Subtest: RvfaPatcher.createPatch
    # Subtest: creates a patch with RVFP magic bytes
    ok 1 - creates a patch with RVFP magic bytes
      ---
      duration_ms: 3.366833
      type: 'test'
      ...
    # Subtest: creates a patch with correct version number
    ok 2 - creates a patch with correct version number
      ---
      duration_ms: 0.270458
      type: 'test'
      ...
    # Subtest: includes all header fields in the patch
    ok 3 - includes all header fields in the patch
      ---
      duration_ms: 0.274833
      type: 'test'
      ...
    1..3
ok 1 - RvfaPatcher.createPatch
  ---
  duration_ms: 4.778709
  type: 'suite'
  ...
# Subtest: RvfaPatcher.parsePatchHeader
    # Subtest: extracts all fields from a valid patch
    ok 1 - extracts all fields from a valid patch
      ---
      duration_ms: 0.386917
      type: 'test'
      ...
    # Subtest: rejects a buffer with wrong magic
    ok 2 - rejects a buffer with wrong magic
      ---
      duration_ms: 0.501875
      type: 'test'
      ...
    # Subtest: rejects a buffer that is too small
    ok 3 - rejects a buffer that is too small
      ---
      duration_ms: 0.147584
      type: 'test'
      ...
    1..3
ok 2 - RvfaPatcher.parsePatchHeader
  ---
  duration_ms: 1.299917
  type: 'suite'
  ...
# Subtest: RvfaPatcher.verifyPatch
    # Subtest: returns valid=true for a well-formed patch
    ok 1 - returns valid=true for a well-formed patch
      ---
      duration_ms: 0.427667
      type: 'test'
      ...
    # Subtest: returns valid=false for a tampered patch payload
    ok 2 - returns valid=false for a tampered patch payload
      ---
      duration_ms: 0.181583
      type: 'test'
      ...
    # Subtest: returns valid=false for a tampered footer
    ok 3 - returns valid=false for a tampered footer
      ---
      duration_ms: 0.421292
      type: 'test'
      ...
    1..3
ok 3 - RvfaPatcher.verifyPatch
  ---
  duration_ms: 1.222917
  type: 'suite'
  ...
 ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts  (48 tests | 28 failed) 36ms
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/portfolio-risk > should handle valid input
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/portfolio-risk > should calculate concentration risk
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/portfolio-risk > should reject unauthorized access
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/portfolio-risk > should reject empty holdings
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/portfolio-risk > should reject invalid symbol format
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/portfolio-risk > should log audit entries
     → expected "spy" to be called with arguments: [ ObjectContaining{…} ]

Received:

Number of calls: 0

   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/anomaly-detect > should handle valid input
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/anomaly-detect > should reject unauthorized access
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/anomaly-detect > should reject invalid transaction UUID
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/anomaly-detect > should reject invalid timestamp
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/anomaly-detect > should reject empty transactions
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/market-regime > should handle valid input
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/market-regime > should include regime characteristics
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/market-regime > should reject missing market data
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/market-regime > should reject insufficient price data
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/compliance-check > should handle valid input
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/compliance-check > should check Basel III compliance
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/compliance-check > should handle as-of date
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/compliance-check > should reject missing entity
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/compliance-check > should reject empty regulations
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/stress-test > should handle valid input
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/stress-test > should handle multiple scenarios
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/stress-test > should identify VaR breaches
     → Cannot read properties of undefined (reading '0')
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/stress-test > should reject unauthorized access
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/stress-test > should reject empty scenarios
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > finance/stress-test > should reject empty portfolio holdings
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > Audit Logging > should log audit entries with required fields
     → expected "spy" to be called with arguments: [ ObjectContaining{…} ]

Received:

Number of calls: 0

   ❯ v3/plugins/financial-risk/tests/mcp-tools.test.ts > Financial Risk MCP Tools > Error Handling > should include error details in response
     → expected undefined to be true // Object.is equality
 ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts  (49 tests | 34 failed) 48ms
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Tool Registry > should have version 1.0.0
     → expected '3.0.0-alpha.1' to be '1.0.0' // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Tool Registry > should get tool by name
     → getTool is not a function
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Tool Registry > should return undefined for unknown tool
     → getTool is not a function
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Tool Registry > should get all tool names
     → getToolNames is not a function
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/clause-extract > should have correct tool definition
     → expected [ undefined ] to include 'document'
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/clause-extract > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/clause-extract > should use default options
     → expected undefined to be 'US' // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/clause-extract > should reject unauthorized access
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/clause-extract > should reject document exceeding size limit
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/risk-assess > should have correct tool definition
     → expected [ undefined ] to include 'document'
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/risk-assess > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/risk-assess > should reject missing partyRole
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/risk-assess > should reject invalid partyRole
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/contract-compare > should have correct tool definition
     → expected [ undefined ] to include 'baseDocument'
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/contract-compare > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/contract-compare > should use default comparison mode
     → expected undefined to be 'full' // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/contract-compare > should reject missing base document
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/contract-compare > should reject documents exceeding size limit
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/obligation-track > should have correct tool definition
     → expected [ undefined ] to include 'document'
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/obligation-track > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/obligation-track > should reject missing document
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/playbook-match > should have correct tool definition
     → expected [ undefined ] to include 'document'
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/playbook-match > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/playbook-match > should use default strictness
     → expected undefined to be 'moderate' // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/playbook-match > should reject unauthorized access (playbook-match is partner only)
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > legal/playbook-match > should reject playbook exceeding size limit
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Authorization & Role Permissions > should restrict paralegal access
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Authorization & Role Permissions > should deny client access to all tools
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Matter Isolation > should include matter context in audit logs
     → expected "spy" to be called with arguments: [ ObjectContaining{…} ]

Received:

Number of calls: 0

   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Audit Logging > should log successful operations
     → expected "spy" to be called with arguments: [ ObjectContaining{…} ]

Received:

Number of calls: 0

   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Audit Logging > should include document hash in audit
     → expected "spy" to be called with arguments: [ ObjectContaining{…} ]

Received:

Number of calls: 0

   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Error Handling > should handle validation errors gracefully
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Error Handling > should include error code in response
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/legal-contracts/tests/mcp-tools.test.ts > Legal Contracts MCP Tools > Performance > should include analysis time in results
     → expected undefined not to be undefined
 ✓ v3/@claude-flow/guidance/tests/gateway.test.ts  (54 tests) 13ms
 ❯ archive/v2/tests/integration/agentdb/compatibility.test.js  (0 test)
 ❯ archive/v2/tests/performance/agentdb/benchmarks.test.js  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/parser.test.ts  (52 tests) 11ms
 ❯ archive/v2/tests/performance/benchmark.test.ts  (0 test)
 ❯ v3/__tests__/integration/workflow-integration.test.ts  (15 tests | 2 failed) 319ms
   ❯ v3/__tests__/integration/workflow-integration.test.ts > Full Workflow Integration Tests > should support workflow resume after interruption
     → expected 'completed' to be 'paused' // Object.is equality
   ❯ v3/__tests__/integration/workflow-integration.test.ts > Full Workflow Integration Tests > should support workflow composition and nesting
     → expected 3 to be greater than or equal to 4
 ✓ v3/@claude-flow/testing/src/v2-compat/api-compat.test.ts  (59 tests) 34ms
 ✓ v3/plugins/agentic-qe/__tests__/tools/security-scan.test.ts  (37 tests) 10ms
 ❯ archive/v2/tests/unit/core/enhanced-orchestrator.test.ts  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/integration-docker.test.ts  (95 tests) 1897ms
 ✓ v3/plugins/teammate-plugin/tests/utils.test.ts  (63 tests) 1991ms
 ✓ v3/@claude-flow/guidance/tests/proof.test.ts  (44 tests) 16ms
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/audit-service.test.ts  (91 tests) 19ms
 ✓ v3/plugins/healthcare-clinical/tests/mcp-tools.test.ts  (46 tests) 33ms
 ✓ v3/@claude-flow/guidance/tests/persistence.test.ts  (35 tests) 672ms
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/pii-pipeline-service.test.ts  (44 tests) 11ms
 ✓ v3/plugins/agentic-qe/__tests__/tools/analyze-coverage.test.ts  (35 tests) 15ms
TAP version 13
 ❯ tests/rvf-backend.test.ts  (0 test)
# Subtest: RvfBackend
 ❯ archive/v2/tests/unit/utils/helpers.test.ts  (0 test)
 ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts  (50 tests | 32 failed) 43ms
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > Tool Registry > should have version 0.1.0
     → expected '3.0.0-alpha.1' to be '0.1.0' // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > Tool Registry > should get tool by name
     → getTool is not a function
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > Tool Registry > should return undefined for unknown tool
     → getTool is not a function
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > Tool Registry > should get all tool names
     → getToolNames is not a function
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/semantic-search > should have correct tool definition
     → expected [ undefined ] to include 'query'
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/semantic-search > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/semantic-search > should reject missing query
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/semantic-search > should reject query exceeding max length
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/semantic-search > should reject topK outside valid range
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/architecture-analyze > should have correct tool definition
     → expected [ undefined ] to include 'targetPath'
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/architecture-analyze > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/architecture-analyze > should reject missing targetPath
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/architecture-analyze > should reject targetPath exceeding max length
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/refactor-impact > should have correct tool definition
     → expected [ undefined ] to include 'targetPath'
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/refactor-impact > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/refactor-impact > should reject missing targetPath
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/refactor-impact > should reject missing changeType
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/refactor-impact > should reject invalid changeType
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/split-suggest > should have correct tool definition
     → expected [ undefined ] to include 'targetPath'
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/split-suggest > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/split-suggest > should use default threshold
     → expected undefined to be 500 // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/split-suggest > should reject missing targetPath
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/split-suggest > should reject threshold outside valid range
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/learn-patterns > should have correct tool definition
     → expected [ undefined ] to include 'targetPath'
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/learn-patterns > should handle valid input
     → expected undefined not to be undefined
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/learn-patterns > should reject missing targetPath
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > code/learn-patterns > should reject minConfidence outside valid range
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > Security - Secret Masking > should mask secrets in search results
     → data.results is not iterable
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > Error Handling > should handle validation errors gracefully
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > Error Handling > should include timestamp in error response
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > Performance Logging > should log duration on success
     → expected "spy" to be called with arguments: [ StringContaining "completed", …(1) ]

Received:

Number of calls: 0

   ❯ v3/plugins/code-intelligence/tests/mcp-tools.test.ts > Code Intelligence MCP Tools > Performance Logging > should include analysis time in results
     → expected undefined not to be undefined
 ✓ v3/plugins/prime-radiant/__tests__/tools/consensus-verify.test.ts  (25 tests) 10ms
 ✓ v3/plugins/prime-radiant/__tests__/engines/causal.test.ts  (23 tests) 9ms
 ✓ v3/@claude-flow/cli/__tests__/security-audit.test.ts  (25 tests) 93ms
 ✓ v3/plugins/prime-radiant/__tests__/wasm-bridge.test.ts  (32 tests) 359ms
 ✓ v3/@claude-flow/memory/src/agent-memory-scope.test.ts  (30 tests) 17ms
 ✓ v3/@claude-flow/testing/src/v2-compat/hooks-compat.test.ts  (75 tests) 38ms
 ✓ v3/@claude-flow/mcp/__tests__/mcp.test.ts  (47 tests) 18ms
 ✓ v3/plugins/teammate-plugin/tests/teammate-bridge.test.ts  (32 tests) 26ms
TAP version 13
 ❯ tests/rvf-embeddings.test.ts  (0 test)
# Subtest: RvfEmbeddingCache
    # Subtest: CRUD operations
        # Subtest: set/get stores and retrieves an embedding
        ok 1 - set/get stores and retrieves an embedding
          ---
          duration_ms: 2.882125
          type: 'test'
          ...
        # Subtest: has returns true for existing keys and false for missing keys
        ok 2 - has returns true for existing keys and false for missing keys
          ---
          duration_ms: 0.577666
          type: 'test'
          ...
        # Subtest: delete removes an entry and returns correct boolean
        ok 3 - delete removes an entry and returns correct boolean
          ---
          duration_ms: 1.288583
          type: 'test'
          ...
        # Subtest: clear removes all entries
        ok 4 - clear removes all entries
          ---
          duration_ms: 0.628708
          type: 'test'
          ...
        # Subtest: size returns the number of entries
        ok 5 - size returns the number of entries
          ---
          duration_ms: 1.497
          type: 'test'
          ...
        1..5
    ok 1 - CRUD operations
      ---
      duration_ms: 7.3745
      type: 'suite'
      ...
    # Subtest: LRU eviction
        # Subtest: evicts oldest entries when maxSize is exceeded
        ok 1 - evicts oldest entries when maxSize is exceeded
          ---
          duration_ms: 2.112042
          type: 'test'
          ...
        1..1
    ok 2 - LRU eviction
      ---
      duration_ms: 2.200041
      type: 'suite'
      ...
TAP version 13
 ❯ tests/rvf-event-log.test.ts  (0 test)
# Subtest: RvfEventLog\#initialize
    # Subtest: creates event file with magic header
    ok 1 - creates event file with magic header
      ---
      duration_ms: 3.846042
      type: 'test'
      ...
    # Subtest: creates snapshot file alongside event file
    ok 2 - creates snapshot file alongside event file
      ---
      duration_ms: 0.910959
      type: 'test'
      ...
    # Subtest: rebuilds indexes on re-open
    ok 3 - rebuilds indexes on re-open
      ---
      duration_ms: 2.797958
      type: 'test'
      ...
    # Subtest: emits initialized event
    ok 4 - emits initialized event
      ---
      duration_ms: 0.830583
      type: 'test'
      ...
    # Subtest: is idempotent when called twice
    ok 5 - is idempotent when called twice
      ---
      duration_ms: 0.57375
      type: 'test'
      ...
    1..5
ok 1 - RvfEventLog\#initialize
  ---
  duration_ms: 10.158042
  type: 'suite'
  ...
# Subtest: RvfEventLog\#append
    # Subtest: assigns incrementing versions per aggregate
    ok 1 - assigns incrementing versions per aggregate
      ---
      duration_ms: 0.815791
      type: 'test'
      ...
    # Subtest: persists to disk immediately
    ok 2 - persists to disk immediately
      ---
      duration_ms: 0.64175
      type: 'test'
      ...
    # Subtest: emits event:appended
    ok 3 - emits event:appended
      ---
      duration_ms: 0.747083
      type: 'test'
      ...
    # Subtest: throws when not initialized
    ok 4 - throws when not initialized
      ---
      duration_ms: 0.498792
      type: 'test'
      ...
    1..4
ok 2 - RvfEventLog\#append
  ---
  duration_ms: 2.853125
  type: 'suite'
  ...
# Subtest: RvfEventLog\#getEvents
    # Subtest: filters by aggregateId
    ok 1 - filters by aggregateId
      ---
      duration_ms: 0.842958
      type: 'test'
      ...
    # Subtest: filters by fromVersion
    ok 2 - filters by fromVersion
      ---
      duration_ms: 0.647916
      type: 'test'
      ...
    # Subtest: returns empty array for unknown aggregate
    ok 3 - returns empty array for unknown aggregate
      ---
      duration_ms: 0.770958
      type: 'test'
      ...
    1..3
ok 3 - RvfEventLog\#getEvents
  ---
  duration_ms: 2.319833
  type: 'suite'
  ...
# Subtest: RvfEventLog\#getAllEvents
    # Subtest: returns all events sorted by timestamp when no filter
    ok 1 - returns all events sorted by timestamp when no filter
      ---
      duration_ms: 1.129458
      type: 'test'
      ...
    # Subtest: filters by eventTypes
    ok 2 - filters by eventTypes
      ---
      duration_ms: 0.810417
      type: 'test'
      ...
    # Subtest: filters by timestamps (after/before)
    ok 3 - filters by timestamps (after/before)
      ---
      duration_ms: 0.652458
      type: 'test'
      ...
    # Subtest: supports pagination (offset + limit)
    ok 4 - supports pagination (offset + limit)
      ---
      duration_ms: 0.808042
      type: 'test'
      ...
    1..4
ok 4 - RvfEventLog\#getAllEvents
  ---
  duration_ms: 3.468625
  type: 'suite'
  ...
# Subtest: RvfEventLog\#snapshots
    # Subtest: saveSnapshot persists and getSnapshot retrieves
    ok 1 - saveSnapshot persists and getSnapshot retrieves
      ---
      duration_ms: 0.608542
      type: 'test'
      ...
    # Subtest: returns null for missing snapshot
    ok 2 - returns null for missing snapshot
      ---
      duration_ms: 0.507625
      type: 'test'
      ...
    # Subtest: multiple snapshots: latest wins
    ok 3 - multiple snapshots: latest wins
      ---
      duration_ms: 0.528292
      type: 'test'
      ...
    # Subtest: snapshots survive close and re-initialize
    ok 4 - snapshots survive close and re-initialize
      ---
      duration_ms: 0.637791
      type: 'test'
      ...
    1..4
ok 5 - RvfEventLog\#snapshots
  ---
  duration_ms: 2.335625
  type: 'suite'
  ...
# Subtest: RvfEventLog\#getStats
    # Subtest: returns correct statistics
    ok 1 - returns correct statistics
      ---
      duration_ms: 0.698833
      type: 'test'
      ...
    # Subtest: returns nulls for empty log
    ok 2 - returns nulls for empty log
      ---
      duration_ms: 0.514792
      type: 'test'
      ...
    1..2
ok 6 - RvfEventLog\#getStats
  ---
  duration_ms: 1.246917
  type: 'suite'
  ...
# Subtest: RvfEventLog persistence
    # Subtest: data survives close and re-initialize cycle
    ok 1 - data survives close and re-initialize cycle
      ---
      duration_ms: 0.723792
      type: 'test'
      ...
    # Subtest: truncated records are handled gracefully
    ok 2 - truncated records are handled gracefully
      ---
      duration_ms: 0.609125
      type: 'test'
      ...
    1..2
ok 7 - RvfEventLog persistence
  ---
  duration_ms: 1.366542
  type: 'suite'
  ...
# Subtest: RvfEventLog\#close
    # Subtest: clears in-memory state
    ok 1 - clears in-memory state
      ---
      duration_ms: 0.98575
      type: 'test'
      ...
    # Subtest: prevents append after close
    ok 2 - prevents append after close
      ---
      duration_ms: 0.842625
      type: 'test'
      ...
    # Subtest: emits shutdown event
    ok 3 - emits shutdown event
      ---
      duration_ms: 0.609125
      type: 'test'
      ...
    # Subtest: is idempotent
    ok 4 - is idempotent
      ---
      duration_ms: 0.555459
      type: 'test'
      ...
    1..4
ok 8 - RvfEventLog\#close
  ---
  duration_ms: 3.062958
  type: 'suite'
  ...
# Subtest: RvfEventLog edge cases
    # Subtest: empty log returns empty arrays
    ok 1 - empty log returns empty arrays
      ---
      duration_ms: 0.628125
      type: 'test'
      ...
    # Subtest: corrupt JSON records are skipped
    ok 2 - corrupt JSON records are skipped
      ---
      duration_ms: 0.57425
      type: 'test'
      ...
    # Subtest: handles large number of events
    ok 3 - handles large number of events
      ---
      duration_ms: 21.553625
      type: 'test'
      ...
    # Subtest: invalid file header throws
    ok 4 - invalid file header throws
      ---
      duration_ms: 0.633792
      type: 'test'
      ...
    # Subtest: snapshot:recommended emitted at threshold
    ok 5 - snapshot:recommended emitted at threshold
      ---
      duration_ms: 0.7895
      type: 'test'
      ...
    1..5
ok 9 - RvfEventLog edge cases
  ---
  duration_ms: 24.27125
  type: 'suite'
  ...
 ✓ v3/@claude-flow/security/__tests__/acceptance/security-compliance.test.ts  (34 tests) 8ms
 ❯ archive/v2/examples/05-swarm-apps/rest-api-advanced/tests/integration/products.test.js  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/ruvector/ast-analyzer.test.ts  (52 tests) 26ms
 ❯ v3/__tests__/honesty/tool-honesty.test.ts  (28 tests | 10 failed) 31ms
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > system_reset uses real OS values > should use os.loadavg() for cpu in the reset handler
     → expected 'name: \'system_reset\',\n    descript…' to contain 'os.loadavg()'
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > system_reset uses real OS values > should use os.totalmem() and os.freemem() for memory values
     → expected 'name: \'system_reset\',\n    descript…' to contain 'os.totalmem()'
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > hooks_intelligence_attention fallback > should return empty results array when no backend is available
     → expected 'name: \'hooks_intelligence_attention\…' to contain 'implementation = \'none\''
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > hooks_intelligence_attention fallback > should mark _stub as true when no backend is available
     → expected 'name: \'hooks_intelligence_attention\…' to contain '_stub: implementation === \'none\''
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > hooks_intelligence_attention fallback > should not generate fake speedup claims when no backend is available
     → expected 'name: \'hooks_intelligence_attention\…' to match /speedup:.*implementation\.startsWith\…/
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > performance_report uses real OS values > should use process.memoryUsage() and os module for real metrics
     → expected 'name: \'performance_report\',\n    de…' to contain 'process.memoryUsage()'
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > performance_report uses real OS values > should use real timing in performance_benchmark
     → expected 'name: \'performance_benchmark\',\n   …' to contain 'performance.now()'
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > Performance tools are real implementations > should have real performance_profile (not _stub)
     → expected 'name: \'performance_profile\',\n    d…' to contain '_real: true'
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > Performance tools are real implementations > should have real performance_optimize (not _stub)
     → expected 'name: \'performance_optimize\',\n    …' to contain '_real: true'
   ❯ v3/__tests__/honesty/tool-honesty.test.ts > Tool Honesty (v3.5.56-57) > Performance tools are real implementations > should have real performance_bottleneck (not _stub)
     → expected 'name: \'performance_bottleneck\',\n  …' to contain '_real: true'
 ✓ v3/@claude-flow/testing/src/v2-compat/mcp-compat.test.ts  (69 tests) 37ms
 ✓ v3/@claude-flow/codex/tests/validators.test.ts  (38 tests) 15ms
 ✓ v3/plugins/financial-risk/tests/types.test.ts  (47 tests) 55ms
 ✓ v3/@claude-flow/guidance/tests/benchmark.test.ts  (23 tests) 561ms
stdout | v3/@claude-flow/guidance/tests/benchmark.test.ts > Benchmark Summary > should print results table

==========================================================================================
  GUIDANCE CONTROL PLANE — PERFORMANCE BENCHMARK REPORT
==========================================================================================
Benchmark                                             ops/sec     avg μs   total ms
------------------------------------------------------------------------------------------
ContinueGate.evaluate(healthy)                        809,493       1.24      12.35
ContinueGate.evaluate(stop)                           972,593       1.03      10.28
ContinueGate.evaluateWithHistory(cooldown)          2,752,483       0.36       3.63
ThreatDetector.analyzeInput(clean)                    612,284       1.63      16.33
ThreatDetector.analyzeInput(malicious)                 81,676      12.24     122.44
ThreatDetector.getThreatScore(1k)                      72,102      13.87      13.87
CollusionDetector.detectCollusion(100)                 42,669      23.44      23.44
CollusionDetector.detectCollusion(1k)                   9,570     104.49      10.45
MemoryQuorum.propose(eviction)                        341,237       2.93      14.65
MemoryQuorum.vote+resolve                              75,392      13.26      66.32
Gateway.evaluate(full pipeline)                       236,884       4.22      42.21
MemoryWriteGate.evaluateWrite(clean)                  109,513       9.13      91.31
MemoryWriteGate.evaluateWrite(50 entries)              86,056      11.62      11.62
CoherenceScheduler.computeCoherence(20)             1,146,696       0.87       8.72
TrustAccumulator.recordOutcome                      2,297,091       0.44       4.35
TrustAccumulator.getScore+getTier(100)              2,407,922       0.42       4.15
AuthorityGate.canPerform                            4,625,167       0.22       2.16
AuthorityGate.canPerform(escalation)                  897,324       1.11      11.14
Classifier.classify(reversible)                       469,228       2.13      21.31
Classifier.classify(irreversible)                   2,318,505       0.43       4.31
MetaGovernor.checkAllInvariants(4)                  1,228,112       0.81       8.14
MetaGovernor.validateOptimizerAction                2,040,641       0.49       0.49
------------------------------------------------------------------------------------------
Total benchmarks: 22
==========================================================================================

 ✓ v3/@claude-flow/guidance/tests/continue-gate.test.ts  (42 tests) 34ms
 ✓ v3/plugins/agentic-qe/__tests__/plugin.test.ts  (33 tests) 16ms
 ✓ v3/@claude-flow/cli/__tests__/output.test.ts  (59 tests) 14ms
 ✓ v3/@claude-flow/cli/__tests__/ruvector/index.test.ts  (33 tests) 18ms
 ❯ v3/plugins/code-intelligence/tests/types.test.ts  (54 tests | 2 failed) 21ms
   ❯ v3/plugins/code-intelligence/tests/types.test.ts > Code Intelligence Types > Secret Patterns > should detect API keys in quotes
     → expected false to be true // Object.is equality
   ❯ v3/plugins/code-intelligence/tests/types.test.ts > Code Intelligence Types > maskSecrets > should mask GitHub tokens
     → expected 'const token = "ghp_abcdefghijklmnopqr…' to contain '[REDACTED]'
 ✓ v3/mcp/__tests__/session-tools.test.ts  (43 tests) 41ms
 ✓ v3/@claude-flow/neural/__tests__/patterns.test.ts  (39 tests) 22ms
 ✓ v3/plugins/prime-radiant/__tests__/engines/spectral.test.ts  (25 tests) 15ms
 ✓ v3/@claude-flow/hooks/__tests__/workers.test.ts  (31 tests) 420ms
 ❯ archive/v2/src/maestro/tests/native-hive-mind-integration.test.ts  (0 test)
 ✓ v3/plugins/prime-radiant/__tests__/engines/cohomology.test.ts  (30 tests) 10ms
 ✓ v3/mcp/__tests__/task-tools.test.ts  (41 tests) 32ms
 ❯ v3/@claude-flow/security/__tests__/unit/safe-executor.test.ts  (37 tests | 1 failed) 22ms
   ❯ v3/@claude-flow/security/__tests__/unit/safe-executor.test.ts > SafeExecutor > interaction verification > should extract command before checking allowed list
     → Invalid Chai property: toHaveBeenCalledBefore
 ✓ v3/@claude-flow/cli/__tests__/ruvector/ruvllm-wasm.test.ts  (29 tests) 22ms
 ❯ archive/v2/src/verification/tests/unit/truth-scoring.test.ts  (0 test)
 ❯ archive/v2/tests/unit/cli/commands/init/validation.test.js  (0 test)
 ❯ v3/@claude-flow/cli/__tests__/cli.test.ts  (0 test)
TAP version 13
 ❯ v3/__tests__/appliance/gguf-engine.test.ts  (0 test)
TAP version 13
 ❯ v3/__tests__/appliance/rvfa-signing.test.ts  (0 test)
# Subtest: generateKeyPair
    # Subtest: produces a key pair with publicKey, privateKey, and fingerprint
    ok 1 - produces a key pair with publicKey, privateKey, and fingerprint
      ---
      duration_ms: 5.48525
      type: 'test'
      ...
    # Subtest: public key is in PEM format (starts with BEGIN)
    ok 2 - public key is in PEM format (starts with BEGIN)
      ---
      duration_ms: 0.3825
      type: 'test'
      ...
    # Subtest: private key is in PEM format (starts with BEGIN)
    ok 3 - private key is in PEM format (starts with BEGIN)
      ---
      duration_ms: 0.298125
      type: 'test'
      ...
    # Subtest: generates distinct key pairs on each call
    ok 4 - generates distinct key pairs on each call
      ---
      duration_ms: 0.643167
      type: 'test'
      ...
    1..4
ok 1 - generateKeyPair
  ---
  duration_ms: 7.793791
  type: 'suite'
  ...
# Subtest: Key fingerprint
    # Subtest: fingerprint is hex and 16 characters long
    ok 1 - fingerprint is hex and 16 characters long
      ---
      duration_ms: 0.596625
      type: 'test'
      ...
 ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts  (35 tests | 18 failed) 12ms
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Plugin Integration Types > should export all plugin types
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Plugin Integration Types > should export all class instances
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Plugin Metadata > reasoningBankPlugin should have correct metadata
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Plugin Metadata > semanticCodeSearchPlugin should have correct metadata
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Plugin Metadata > sonaLearningPlugin should have correct metadata
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Plugin Metadata > intentRouterPlugin should have correct metadata
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Plugin Metadata > mcpToolOptimizerPlugin should have correct metadata
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Plugin Metadata > hookPatternLibraryPlugin should have correct metadata
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > MCP Tool Definitions > reasoningBankPlugin should define expected tools
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > MCP Tool Definitions > semanticCodeSearchPlugin should define expected tools
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > MCP Tool Definitions > sonaLearningPlugin should define expected tools
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > MCP Tool Definitions > intentRouterPlugin should define expected tools
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > MCP Tool Definitions > mcpToolOptimizerPlugin should define expected tools
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > MCP Tool Definitions > hookPatternLibraryPlugin should define expected tools
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Hook Definitions > reasoningBankPlugin should define learning hooks
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Hook Definitions > intentRouterPlugin should define routing hooks
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Hook Definitions > mcpToolOptimizerPlugin should define optimization hooks
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
   ❯ v3/@claude-flow/plugins/examples/ruvector-plugins/ruvector-plugins.test.ts > Hook Definitions > hookPatternLibraryPlugin should define file operation hooks
     → Transform failed with 6 errors:
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:57:9: ERROR: Multiple exports with the same name "ReasoningBank"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:58:9: ERROR: Multiple exports with the same name "SemanticCodeSearch"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:59:9: ERROR: Multiple exports with the same name "SONALearning"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:60:9: ERROR: Multiple exports with the same name "IntentRouter"
/Users/cohen/Projects/ruflo/v3/@claude-flow/plugins/examples/ruvector-plugins/index.ts:61:9: ERROR: Multiple exports with the same name "MCPToolOptimizer"
...
 ✓ v3/@claude-flow/plugins/__tests__/ruvector-streaming.test.ts  (26 tests) 8459ms
 ❯ archive/v2/tests/integration/mcp.test.ts  (0 test)
 ❯ v3/plugins/legal-contracts/tests/types.test.ts  (44 tests | 1 failed) 26ms
   ❯ v3/plugins/legal-contracts/tests/types.test.ts > Legal Contracts Types > PlaybookMatchInputSchema > should validate with priority clauses
     → expected false to be true // Object.is equality
 ✓ v3/plugins/agentic-qe/__tests__/live-repo.test.ts  (8 tests) 55ms
 ❯ archive/v2/tests/unit/mcp/mcp-interface.test.ts  (0 test)
 ✓ v3/@claude-flow/testing/src/v2-compat/cli-compat.test.ts  (67 tests) 20ms
 ❯ archive/v2/tests/mcp/mcp-2025-compliance.test.ts  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/ruvector/graph-analyzer.test.ts  (29 tests | 1 skipped) 150ms
 ✓ v3/@claude-flow/plugins/__tests__/dependency-graph.test.ts  (46 tests) 42ms
 ❯ archive/v2/src/__tests__/integration/swarm-sdk-integration.test.ts  (0 test)
 ✓ v3/@claude-flow/neural/__tests__/algorithms.test.ts  (44 tests) 596ms
 ❯ archive/v2/src/__tests__/regression/backward-compatibility.test.ts  (0 test)
 ❯ archive/v2/src/mcp/tests/mcp-integration.test.ts  (0 test)
 ✓ v3/plugins/agentic-qe/__tests__/tools/generate-tests.test.ts  (33 tests) 9ms
 ✓ v3/@claude-flow/cli/__tests__/ruvector/q-learning-router.test.ts  (45 tests) 284ms
 ❯ archive/v2/tests/unit/cli/commands/init/rollback.test.js  (0 test)
 ❯ archive/v2/examples/05-swarm-apps/rest-api-advanced/tests/integration/auth.test.js  (0 test)
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/routing-service.test.ts  (26 tests) 6ms
 ✓ v3/@claude-flow/security/__tests__/integration/security-flow.test.ts  (20 tests) 14ms
 ✓ v3/__tests__/integration/plugin-integration.test.ts  (15 tests) 117ms
 ✓ v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts  (26 tests) 10ms
stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > registration > should register a plugin
[INFO] Plugin registered: test-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > registration > should reject duplicate plugins
[INFO] Plugin registered: test-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > registration > should respect max plugins limit
[INFO] Plugin registered: plugin-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-2 v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > version constraints > should check maxCoreVersion
[INFO] Plugin registered: test-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > version constraints > should validate dependency versions during initialization
[INFO] Plugin registered: dep-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: main-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > version constraints > should pass validation with compatible versions
[INFO] Plugin registered: dep-plugin v1.5.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: main-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: dep-plugin { component: 'EnhancedPluginRegistry' }
[DEBUG] Dependency validated: dep-plugin@^1.0.0 { component: 'EnhancedPluginRegistry', plugin: 'main-plugin' }
[INFO] Plugin initialized: main-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 2 plugins (sequential) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > safe unload > should prevent unload of plugins with dependents
[INFO] Plugin registered: base-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: dependent-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: base-plugin { component: 'EnhancedPluginRegistry' }
[DEBUG] Dependency validated: base-plugin@* { component: 'EnhancedPluginRegistry', plugin: 'dependent-plugin' }
[INFO] Plugin initialized: dependent-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 2 plugins (sequential) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > safe unload > should allow cascade unload
[INFO] Plugin registered: base-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: dependent-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: base-plugin { component: 'EnhancedPluginRegistry' }
[DEBUG] Dependency validated: base-plugin@* { component: 'EnhancedPluginRegistry', plugin: 'dependent-plugin' }
[INFO] Plugin initialized: dependent-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 2 plugins (sequential) { component: 'EnhancedPluginRegistry' }
[INFO] Plugin shutdown: dependent-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Plugin shutdown: base-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Plugin unregistered: base-plugin { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > safe unload > should allow force unload
[INFO] Plugin registered: base-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: dependent-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: base-plugin { component: 'EnhancedPluginRegistry' }
[DEBUG] Dependency validated: base-plugin@* { component: 'EnhancedPluginRegistry', plugin: 'dependent-plugin' }
[INFO] Plugin initialized: dependent-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 2 plugins (sequential) { component: 'EnhancedPluginRegistry' }
[INFO] Plugin shutdown: base-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Plugin unregistered: base-plugin { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > initialization strategies > should initialize sequentially by default
[INFO] Plugin registered: plugin-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-2 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-1 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-2 { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 2 plugins (sequential) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > initialization strategies > should support parallel initialization
[INFO] Plugin registered: plugin-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-2 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-3 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 3 plugins (parallel) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > initialization strategies > should support parallel-safe initialization
[INFO] Plugin registered: base v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: dep-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: dep-2 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: base { component: 'EnhancedPluginRegistry' }
[DEBUG] Dependency validated: base@* { component: 'EnhancedPluginRegistry', plugin: 'dep-1' }
[DEBUG] Dependency validated: base@* { component: 'EnhancedPluginRegistry', plugin: 'dep-2' }
[INFO] Plugin initialized: dep-1 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: dep-2 { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 3 plugins (parallel-safe) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > hot reload > should reload a plugin
[INFO] Plugin registered: test-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: test-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 1 plugins (sequential) { component: 'EnhancedPluginRegistry' }
[INFO] Plugin hot reloaded: test-plugin -> v2.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > hot reload > should preserve state during reload
[INFO] Plugin registered: test-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: test-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 1 plugins (sequential) { component: 'EnhancedPluginRegistry' }
[INFO] Plugin hot reloaded: test-plugin -> v2.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > hot reload > should reject name mismatch
[INFO] Plugin registered: original v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: original { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 1 plugins (sequential) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > conflict resolution > should error on conflict by default
[INFO] Plugin registered: plugin-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-2 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-1 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > conflict resolution > should support first-wins strategy
[INFO] Plugin registered: plugin-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-2 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-1 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-2 { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 2 plugins (sequential) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > conflict resolution > should support namespace strategy
[INFO] Plugin registered: plugin-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-2 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-1 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-2 { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 2 plugins (sequential) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > health check > should return health status for all plugins
[INFO] Plugin registered: healthy-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: healthy-plugin { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 1 plugins (sequential) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > health check > should report unhealthy for uninitialized plugins
[INFO] Plugin registered: uninitialized-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > stats > should return correct statistics
[INFO] Plugin registered: plugin-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-2 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-1 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-2 { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 2 plugins (sequential) { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/enhanced-plugin-registry.test.ts > EnhancedPluginRegistry > shutdown > should shutdown all plugins
[INFO] Plugin registered: plugin-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-2 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-1 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin initialized: plugin-2 { component: 'EnhancedPluginRegistry' }
[INFO] Registry initialized with 2 plugins (sequential) { component: 'EnhancedPluginRegistry' }
[INFO] Plugin shutdown: plugin-2 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin shutdown: plugin-1 { component: 'EnhancedPluginRegistry' }

 ❯ archive/v2/src/__tests__/in-process-mcp.test.ts  (0 test)
 ❯ archive/v2/tests/production/performance-validation.test.ts  (0 test)
 ❯ v3/plugins/healthcare-clinical/tests/types.test.ts  (42 tests | 5 failed) 14ms
   ❯ v3/plugins/healthcare-clinical/tests/types.test.ts > Healthcare Clinical Types > Result Helpers > should create success result
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/healthcare-clinical/tests/types.test.ts > Healthcare Clinical Types > Result Helpers > should create success result with metadata
     → expected undefined to be true // Object.is equality
   ❯ v3/plugins/healthcare-clinical/tests/types.test.ts > Healthcare Clinical Types > Result Helpers > should create error result from string
     → expected undefined to be false // Object.is equality
   ❯ v3/plugins/healthcare-clinical/tests/types.test.ts > Healthcare Clinical Types > Result Helpers > should create error result from Error object
     → expected undefined to be false // Object.is equality
   ❯ v3/plugins/healthcare-clinical/tests/types.test.ts > Healthcare Clinical Types > Result Helpers > should create error result with metadata
     → expected undefined to be false // Object.is equality
 ❯ v3/@claude-flow/swarm/__tests__/topology.test.ts  (46 tests | 1 failed) 5022ms
   ❯ v3/@claude-flow/swarm/__tests__/topology.test.ts > TopologyManager > Event Emission > should emit topology.rebalanced event
     → Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/trust-evaluator.test.ts  (26 tests) 4ms
 ✓ v3/plugins/test-intelligence/tests/mcp-tools.test.ts  (37 tests) 12ms
TAP version 13
 ❯ tests/rvf-learning-store.test.ts  (0 test)
# Subtest: RvfLearningStore
    # Subtest: initialize
        # Subtest: creates parent directory if it does not exist
        ok 1 - creates parent directory if it does not exist
          ---
          duration_ms: 58.594416
          type: 'test'
          ...
 ✓ v3/mcp/__tests__/system-tools.test.ts  (38 tests) 17ms
stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateSessionContext > should return V3 development context
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateSessionContext > should include HNSW performance targets
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateSessionContext > should include code quality rules
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateSessionContext > should include learned patterns count
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

 ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts  (41 tests | 18 failed) 118ms
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > CognitiveBridge > retrieve > should retrieve stored item
     → expected 0.9 to be 0.8 // Object.is equality
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > CognitiveBridge > decay > should apply decay to stored items
     → actual value must be number or bigint, received "undefined"
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > CognitiveBridge > focus > should handle focus on non-existent items
     → expected [ 'non-existent' ] to not include 'non-existent'
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > initialization > should initialize successfully
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > initialization > should cleanup on destroy
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > learn > should learn from trajectories
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > learn > should return 0 for empty trajectories
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > learn > should throw when not initialized
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > predict > should predict action from state
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > predict > should return explore action for unknown states
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > pattern management > should store pattern
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > pattern management > should find similar patterns
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > pattern management > should update pattern success rate
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > LoRA operations > should apply LoRA transformation
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > LoRA operations > should update LoRA weights
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > EWC operations > should compute Fisher information
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > EWC operations > should consolidate without throwing
     → this._module.setMode is not a function
   ❯ v3/plugins/cognitive-kernel/tests/bridges.test.ts > SonaBridge > mode management > should set and get mode
     → this._module.setMode is not a function
 ✓ ruflo/src/ruvocal/src/lib/wasm/tests/wasm-capabilities.test.ts  (36 tests) 13ms
 ❯ archive/v2/tests/session-serialization.test.js  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/config-adapter-deep.test.ts  (32 tests) 5ms
 ✓ v3/plugins/hyperbolic-reasoning/tests/bridges.test.ts  (32 tests) 42ms
 ✓ v3/plugins/prime-radiant/__tests__/tools/coherence-check.test.ts  (25 tests) 13ms
 ✓ v3/plugins/hyperbolic-reasoning/tests/types.test.ts  (45 tests) 15ms
 ❯ archive/v2/tests/security/init-security.test.js  (0 test)
 ❯ archive/v2/tests/production/deployment-validation.test.ts  (0 test)
 ✓ v3/plugins/test-intelligence/tests/types.test.ts  (42 tests) 7ms
 ❯ archive/v2/src/__tests__/permission-manager.test.ts  (0 test)
 ✓ v3/@claude-flow/performance/__tests__/attention.test.ts  (42 tests) 6027ms
 ✓ v3/@claude-flow/mcp/__tests__/integration.test.ts  (18 tests) 173ms
stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > initialization > should initialize in in-memory mode when dependencies are not available
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > initialization > should only initialize once
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > storePattern > should store a new pattern
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

 ❯ archive/v2/tests/production/environment-validation.test.ts  (0 test)
 ❯ archive/v2/src/__tests__/session-forking.test.ts  (0 test)
stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_embed_hierarchy handler > should handle valid hierarchy input
[hyperbolic-reasoning] Embed hierarchy { nodes: 4, model: 'poincare_ball', dimensions: 32 }
[hyperbolic-reasoning] Hierarchy embedded {
  nodes: 4,
  curvature: -0.9920702175650472,
  mapScore: 0.3333333333333333,
  durationMs: '26.78'
}

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_embed_hierarchy handler > should handle poincare_ball model
[hyperbolic-reasoning] Embed hierarchy { nodes: 1, model: 'poincare_ball', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded { nodes: 1, curvature: -1, mapScore: 1, durationMs: '0.38' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_embed_hierarchy handler > should handle klein model
[hyperbolic-reasoning] Embed hierarchy { nodes: 1, model: 'klein', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded { nodes: 1, curvature: -1, mapScore: 1, durationMs: '0.23' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_embed_hierarchy handler > should compute embedding metrics
[hyperbolic-reasoning] Embed hierarchy { nodes: 2, model: 'poincare_ball', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded {
  nodes: 2,
  curvature: -0.9980029722162757,
  mapScore: 0,
  durationMs: '11.34'
}

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_taxonomic_reason handler > should handle is_a query with valid taxonomy
[hyperbolic-reasoning] Embed hierarchy { nodes: 5, model: 'poincare_ball', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded {
  nodes: 5,
  curvature: -0.9815663292527839,
  mapScore: 0,
  durationMs: '41.82'
}
[hyperbolic-reasoning] Taxonomic reason { type: 'is_a', subject: 'dog' }
[hyperbolic-reasoning] Taxonomic reasoning completed { type: 'is_a', confidence: 0.9982601921268105, durationMs: '0.15' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_taxonomic_reason handler > should return error for non-existent taxonomy
[hyperbolic-reasoning] Embed hierarchy { nodes: 5, model: 'poincare_ball', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded {
  nodes: 5,
  curvature: -0.9817262762019103,
  mapScore: 0,
  durationMs: '42.21'
}
[hyperbolic-reasoning] Taxonomic reason { type: 'is_a', subject: 'dog' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_taxonomic_reason handler > should handle similarity query
[hyperbolic-reasoning] Embed hierarchy { nodes: 5, model: 'poincare_ball', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded {
  nodes: 5,
  curvature: -0.9810996024449922,
  mapScore: 0,
  durationMs: '41.99'
}
[hyperbolic-reasoning] Taxonomic reason { type: 'similarity', subject: 'cat' }
[hyperbolic-reasoning] Taxonomic reasoning completed { type: 'similarity', confidence: 1, durationMs: '0.21' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_semantic_search handler > should handle valid search input
[hyperbolic-reasoning] Embed hierarchy { nodes: 5, model: 'poincare_ball', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded {
  nodes: 5,
  curvature: -0.9849613082586339,
  mapScore: 0,
  durationMs: '43.25'
}
[hyperbolic-reasoning] Semantic search { index: 'embed_1778334884569', mode: 'nearest', topK: 10 }
[hyperbolic-reasoning] Semantic search completed { results: 5, mode: 'nearest', durationMs: '0.31' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_semantic_search handler > should return error for non-existent index
[hyperbolic-reasoning] Embed hierarchy { nodes: 5, model: 'poincare_ball', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded {
  nodes: 5,
  curvature: -0.9849417552689446,
  mapScore: 0,
  durationMs: '41.57'
}
[hyperbolic-reasoning] Semantic search { index: 'non-existent-index', mode: 'nearest', topK: 10 }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_semantic_search handler > should respect topK limit
[hyperbolic-reasoning] Embed hierarchy { nodes: 5, model: 'poincare_ball', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded {
  nodes: 5,
  curvature: -0.9849033114473389,
  mapScore: 0,
  durationMs: '42.47'
}
[hyperbolic-reasoning] Semantic search { index: 'embed_1778334884655', mode: 'nearest', topK: 2 }
[hyperbolic-reasoning] Semantic search completed { results: 2, mode: 'nearest', durationMs: '0.14' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_semantic_search handler > should return distance metrics
[hyperbolic-reasoning] Embed hierarchy { nodes: 5, model: 'poincare_ball', dimensions: undefined }
[hyperbolic-reasoning] Hierarchy embedded {
  nodes: 5,
  curvature: -0.9848710075578658,
  mapScore: 0,
  durationMs: '41.23'
}
[hyperbolic-reasoning] Semantic search { index: 'embed_1778334884697', mode: 'nearest', topK: 3 }
[hyperbolic-reasoning] Semantic search completed { results: 3, mode: 'nearest', durationMs: '0.26' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_hierarchy_compare handler > should handle valid comparison input
[hyperbolic-reasoning] Hierarchy compare { sourceNodes: 3, targetNodes: 3, method: 'gromov_wasserstein' }
[hyperbolic-reasoning] Hierarchy comparison completed { alignments: 3, structuralSimilarity: 1, durationMs: '40.78' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_hierarchy_compare handler > should handle all alignment methods
[hyperbolic-reasoning] Hierarchy compare { sourceNodes: 1, targetNodes: 1, method: 'wasserstein' }
[hyperbolic-reasoning] Hierarchy comparison completed { alignments: 1, structuralSimilarity: 1, durationMs: '0.14' }
[hyperbolic-reasoning] Hierarchy compare { sourceNodes: 1, targetNodes: 1, method: 'gromov_wasserstein' }
[hyperbolic-reasoning] Hierarchy comparison completed { alignments: 1, structuralSimilarity: 1, durationMs: '0.08' }
[hyperbolic-reasoning] Hierarchy compare { sourceNodes: 1, targetNodes: 1, method: 'tree_edit' }
[hyperbolic-reasoning] Hierarchy comparison completed { alignments: 1, structuralSimilarity: 1, durationMs: '0.07' }
[hyperbolic-reasoning] Hierarchy compare { sourceNodes: 1, targetNodes: 1, method: 'subtree_isomorphism' }
[hyperbolic-reasoning] Hierarchy comparison completed { alignments: 1, structuralSimilarity: 1, durationMs: '0.06' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_hierarchy_compare handler > should compute alignment between hierarchies
[hyperbolic-reasoning] Hierarchy compare { sourceNodes: 2, targetNodes: 2, method: 'gromov_wasserstein' }
[hyperbolic-reasoning] Hierarchy comparison completed { alignments: 2, structuralSimilarity: 1, durationMs: '20.03' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_entailment_graph handler > should handle build action
[hyperbolic-reasoning] Entailment graph { action: 'build', concepts: 3 }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_entailment_graph handler > should handle build action
[hyperbolic-reasoning] Entailment graph built { nodes: 3, edges: 0, durationMs: '3.96' }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_entailment_graph handler > should handle query action after build
[hyperbolic-reasoning] Entailment graph { action: 'build', concepts: 2 }
[hyperbolic-reasoning] Entailment graph built { nodes: 2, edges: 0, durationMs: '1.10' }
[hyperbolic-reasoning] Entailment graph { action: 'query', concepts: undefined }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_entailment_graph handler > should handle query action with message about pre-built graph
[hyperbolic-reasoning] Entailment graph { action: 'query', concepts: undefined }

stdout | v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts > hyperbolic_entailment_graph handler > should handle prune action
[hyperbolic-reasoning] Entailment graph { action: 'build', concepts: 2 }
[hyperbolic-reasoning] Entailment graph built { nodes: 2, edges: 0, durationMs: '0.94' }
[hyperbolic-reasoning] Entailment graph { action: 'prune', concepts: undefined }

 ✓ v3/plugins/hyperbolic-reasoning/tests/mcp-tools.test.ts  (30 tests | 2 skipped) 416ms
 ✓ v3/plugins/quantum-optimizer/tests/types.test.ts  (37 tests) 13ms
 ❯ archive/v2/src/__tests__/hook-matchers.test.ts  (0 test)
 ✓ v3/@claude-flow/shared/src/events/event-store.test.ts  (24 tests) 83ms
 ❯ v3/@claude-flow/swarm/__tests__/consensus.test.ts  (37 tests | 1 failed) 5786ms
   ❯ v3/@claude-flow/swarm/__tests__/consensus.test.ts > Byzantine Consensus > Fault Tolerance > should achieve consensus with 2f+1 votes
     → Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
TAP version 13
 ❯ v3/__tests__/appliance/rvfa-format.test.ts  (0 test)
# Subtest: Format constants
    # Subtest: RVFA_MAGIC is the 4-byte ASCII string "RVFA"
    ok 1 - RVFA_MAGIC is the 4-byte ASCII string "RVFA"
      ---
      duration_ms: 3.326833
      type: 'test'
      ...
    # Subtest: RVFA_VERSION is 1
    ok 2 - RVFA_VERSION is 1
      ---
      duration_ms: 0.11675
      type: 'test'
      ...
    1..2
ok 1 - Format constants
  ---
  duration_ms: 4.358459
  type: 'suite'
  ...
# Subtest: createDefaultHeader
    # Subtest: returns a valid header for "cloud" profile
    ok 1 - returns a valid header for "cloud" profile
      ---
      duration_ms: 0.461375
      type: 'test'
      ...
    # Subtest: returns a valid header for "hybrid" profile
    ok 2 - returns a valid header for "hybrid" profile
      ---
      duration_ms: 0.085083
      type: 'test'
      ...
    # Subtest: returns a valid header for "offline" profile
    ok 3 - returns a valid header for "offline" profile
      ---
      duration_ms: 0.15825
      type: 'test'
      ...
    # Subtest: cloud profile does not include ruvllm capability
    ok 4 - cloud profile does not include ruvllm capability
      ---
      duration_ms: 0.072917
      type: 'test'
      ...
    # Subtest: offline profile includes ruvllm capability
    ok 5 - offline profile includes ruvllm capability
      ---
      duration_ms: 0.146208
      type: 'test'
      ...
    1..5
ok 2 - createDefaultHeader
  ---
  duration_ms: 1.362625
  type: 'suite'
  ...
# Subtest: validateHeader
    # Subtest: accepts a well-formed header
    ok 1 - accepts a well-formed header
      ---
      duration_ms: 0.145958
      type: 'test'
      ...
    # Subtest: rejects null, non-object, and primitives
    ok 2 - rejects null, non-object, and primitives
      ---
      duration_ms: 0.179625
      type: 'test'
      ...
    # Subtest: rejects header with missing or wrong magic
    ok 3 - rejects header with missing or wrong magic
      ---
      duration_ms: 0.256
      type: 'test'
      ...
    # Subtest: rejects header with wrong version type
    ok 4 - rejects header with wrong version type
      ---
      duration_ms: 0.084125
      type: 'test'
      ...
    # Subtest: rejects header with invalid profile
    ok 5 - rejects header with invalid profile
      ---
      duration_ms: 0.074375
      type: 'test'
      ...
    # Subtest: rejects header with invalid boot.isolation
    ok 6 - rejects header with invalid boot.isolation
      ---
      duration_ms: 0.064583
      type: 'test'
      ...
    # Subtest: rejects header with invalid models.provider
    ok 7 - rejects header with invalid models.provider
      ---
      duration_ms: 0.058791
      type: 'test'
      ...
    1..7
ok 3 - validateHeader
  ---
  duration_ms: 1.148792
  type: 'suite'
  ...
# Subtest: formatSize
    # Subtest: formats 0 bytes
    ok 1 - formats 0 bytes
      ---
      duration_ms: 0.128291
      type: 'test'
      ...
    # Subtest: formats bytes below 1 KB
    ok 2 - formats bytes below 1 KB
      ---
      duration_ms: 0.050167
      type: 'test'
      ...
    # Subtest: formats kilobytes
    ok 3 - formats kilobytes
      ---
      duration_ms: 0.056208
      type: 'test'
      ...
    # Subtest: formats megabytes
    ok 4 - formats megabytes
      ---
      duration_ms: 0.053084
      type: 'test'
      ...
    # Subtest: formats gigabytes
    ok 5 - formats gigabytes
      ---
      duration_ms: 0.048625
      type: 'test'
      ...
    # Subtest: formats negative bytes as 0 B
    ok 6 - formats negative bytes as 0 B
      ---
      duration_ms: 0.046417
      type: 'test'
      ...
    1..6
ok 4 - formatSize
  ---
  duration_ms: 0.485625
  type: 'suite'
  ...
# Subtest: RvfaWriter
    # Subtest: creates a binary starting with RVFA magic bytes
    ok 1 - creates a binary starting with RVFA magic bytes
      ---
      duration_ms: 1.064583
      type: 'test'
      ...
    # Subtest: writes the correct version number
    ok 2 - writes the correct version number
      ---
      duration_ms: 0.277167
      type: 'test'
      ...
    # Subtest: adds sections with correct SHA256
    ok 3 - adds sections with correct SHA256
      ---
      duration_ms: 0.376625
      type: 'test'
      ...
    # Subtest: compresses sections with gzip when requested
    ok 4 - compresses sections with gzip when requested
      ---
      duration_ms: 0.432792
      type: 'test'
      ...
    # Subtest: computes a valid footer hash
    ok 5 - computes a valid footer hash
      ---
      duration_ms: 0.425125
      type: 'test'
      ...
    # Subtest: produces valid header JSON
    ok 6 - produces valid header JSON
      ---
      duration_ms: 0.230292
      type: 'test'
      ...
    # Subtest: section offsets are correct and non-overlapping
    ok 7 - section offsets are correct and non-overlapping
      ---
      duration_ms: 0.143542
      type: 'test'
      ...
    1..7
ok 5 - RvfaWriter
  ---
  duration_ms: 3.14375
  type: 'suite'
  ...
# Subtest: RvfaReader
    # Subtest: reads back what RvfaWriter wrote (round-trip)
    ok 1 - reads back what RvfaWriter wrote (round-trip)
      ---
      duration_ms: 0.495125
      type: 'test'
      ...
    # Subtest: extracts uncompressed sections correctly
    ok 2 - extracts uncompressed sections correctly
      ---
      duration_ms: 0.305292
      type: 'test'
      ...
    # Subtest: extracts gzip-compressed sections correctly
    ok 3 - extracts gzip-compressed sections correctly
      ---
      duration_ms: 0.445417
      type: 'test'
      ...
    # Subtest: verify() passes for a valid file
    ok 4 - verify() passes for a valid file
      ---
      duration_ms: 0.256875
      type: 'test'
      ...
    # Subtest: verify() fails for tampered magic bytes
    ok 5 - verify() fails for tampered magic bytes
      ---
      duration_ms: 0.366417
      type: 'test'
      ...
    # Subtest: verify() fails for tampered section data
    ok 6 - verify() fails for tampered section data
      ---
      duration_ms: 0.236709
      type: 'test'
      ...
    # Subtest: verify() fails for tampered footer hash
    ok 7 - verify() fails for tampered footer hash
      ---
      duration_ms: 0.325833
      type: 'test'
      ...
    # Subtest: rejects files with wrong magic bytes
    ok 8 - rejects files with wrong magic bytes
      ---
      duration_ms: 0.19
      type: 'test'
      ...
    # Subtest: rejects files with header too large (>1MB)
    ok 9 - rejects files with header too large (>1MB)
      ---
      duration_ms: 0.188333
      type: 'test'
      ...
    # Subtest: handles empty sections
    ok 10 - handles empty sections
      ---
      duration_ms: 0.209209
      type: 'test'
      ...
    # Subtest: handles multiple sections
    ok 11 - handles multiple sections
      ---
      duration_ms: 0.25075
      type: 'test'
      ...
    # Subtest: throws when extracting a nonexistent section
    ok 12 - throws when extracting a nonexistent section
      ---
      duration_ms: 0.171875
      type: 'test'
      ...
    1..12
ok 6 - RvfaReader
  ---
  duration_ms: 3.648792
  type: 'suite'
  ...
# Subtest: Security
    # Subtest: rejects negative section offsets
    ok 1 - rejects negative section offsets
      ---
      duration_ms: 0.339417
      type: 'test'
      ...
    # Subtest: rejects overlapping sections
    ok 2 - rejects overlapping sections
      ---
      duration_ms: 0.180834
      type: 'test'
      ...
    # Subtest: rejects header larger than 1MB
    ok 3 - rejects header larger than 1MB
      ---
      duration_ms: 0.077833
      type: 'test'
      ...
    # Subtest: rejects buffer too small for preamble
    ok 4 - rejects buffer too small for preamble
      ---
      duration_ms: 0.074417
      type: 'test'
      ...
    # Subtest: rejects file paths with null bytes
    ok 5 - rejects file paths with null bytes
      ---
      duration_ms: 0.26575
      type: 'test'
      ...
    1..5
ok 7 - Security
  ---
  duration_ms: 1.034666
  type: 'suite'
  ...
 ✓ v3/@claude-flow/cli/__tests__/mcp-client.test.ts  (34 tests) 15ms
 ✓ v3/plugins/cognitive-kernel/tests/types.test.ts  (42 tests) 11ms
 ❯ archive/v2/tests/production/security-validation.test.ts  (0 test)
 ✓ v3/@claude-flow/shared/src/hooks/hooks.test.ts  (23 tests) 114ms
 ✓ v3/@claude-flow/swarm/__tests__/coordinator.test.ts  (21 tests) 2521ms
 ✓ v3/@claude-flow/neural/__tests__/sona.test.ts  (23 tests) 15ms
stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/neural-consensus handler > should handle valid input
[neural-coordination] Processing neural consensus {
  topic: 'Choose deployment strategy',
  agentCount: 3,
  protocol: 'neural_voting'
}
[neural-coordination] Neural consensus completed {
  consensusReached: false,
  selectedOption: null,
  rounds: 5,
  durationMs: '2.70'
}

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/neural-consensus handler > should handle all protocols
[neural-coordination] Processing neural consensus { topic: 'Test', agentCount: 2, protocol: 'neural_voting' }
[neural-coordination] Neural consensus completed {
  consensusReached: true,
  selectedOption: '1',
  rounds: 1,
  durationMs: '0.31'
}
[neural-coordination] Processing neural consensus { topic: 'Test', agentCount: 2, protocol: 'iterative_refinement' }
[neural-coordination] Neural consensus completed {
  consensusReached: true,
  selectedOption: '2',
  rounds: 2,
  durationMs: '0.10'
}
[neural-coordination] Processing neural consensus { topic: 'Test', agentCount: 2, protocol: 'auction' }
[neural-coordination] Neural consensus completed {
  consensusReached: true,
  selectedOption: '2',
  rounds: 1,
  durationMs: '0.46'
}
[neural-coordination] Processing neural consensus { topic: 'Test', agentCount: 2, protocol: 'contract_net' }
[neural-coordination] Neural consensus completed {
  consensusReached: true,
  selectedOption: '1',
  rounds: 1,
  durationMs: '0.17'
}

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/neural-consensus handler > should report divergent agents
[neural-coordination] Processing neural consensus {
  topic: 'Contentious topic',
  agentCount: 2,
  protocol: 'iterative_refinement'
}
[neural-coordination] Neural consensus completed {
  consensusReached: false,
  selectedOption: null,
  rounds: 3,
  durationMs: '0.16'
}

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/topology-optimize handler > should handle valid input
[neural-coordination] Optimizing topology { agentCount: 3, objective: 'minimize_latency' }
[neural-coordination] Topology optimization completed { topology: 'mesh', edges: 0, durationMs: '0.37' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/topology-optimize handler > should handle all topology types
[neural-coordination] Optimizing topology { agentCount: 3, objective: 'minimize_latency' }
[neural-coordination] Topology optimization completed { topology: 'mesh', edges: 3, durationMs: '0.12' }
[neural-coordination] Optimizing topology { agentCount: 3, objective: 'minimize_latency' }
[neural-coordination] Topology optimization completed { topology: 'tree', edges: 2, durationMs: '0.28' }
[neural-coordination] Optimizing topology { agentCount: 3, objective: 'minimize_latency' }
[neural-coordination] Topology optimization completed { topology: 'ring', edges: 3, durationMs: '0.08' }
[neural-coordination] Optimizing topology { agentCount: 3, objective: 'minimize_latency' }
[neural-coordination] Topology optimization completed { topology: 'star', edges: 2, durationMs: '0.23' }
[neural-coordination] Optimizing topology { agentCount: 3, objective: 'minimize_latency' }
[neural-coordination] Topology optimization completed { topology: 'hybrid', edges: 2, durationMs: '0.07' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/topology-optimize handler > should compute topology metrics
[neural-coordination] Optimizing topology { agentCount: 3, objective: 'minimize_latency' }
[neural-coordination] Topology optimization completed { topology: 'hybrid', edges: 2, durationMs: '0.07' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/collective-memory handler > should handle store action
[neural-coordination] Processing collective memory { action: 'store', scope: 'team' }
[neural-coordination] Collective memory operation completed { action: 'store', scope: 'team', durationMs: '0.08' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/collective-memory handler > should handle retrieve action
[neural-coordination] Processing collective memory { action: 'store', scope: 'team' }
[neural-coordination] Collective memory operation completed { action: 'store', scope: 'team', durationMs: '0.04' }
[neural-coordination] Processing collective memory { action: 'retrieve', scope: 'team' }
[neural-coordination] Collective memory operation completed { action: 'retrieve', scope: 'team', durationMs: '0.04' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/collective-memory handler > should handle consolidate action
[neural-coordination] Processing collective memory { action: 'consolidate', scope: 'team' }
[neural-coordination] Collective memory operation completed { action: 'consolidate', scope: 'team', durationMs: '0.11' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/collective-memory handler > should handle forget action
[neural-coordination] Processing collective memory { action: 'forget', scope: 'team' }
[neural-coordination] Collective memory operation completed { action: 'forget', scope: 'team', durationMs: '0.03' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/collective-memory handler > should handle synchronize action
[neural-coordination] Processing collective memory { action: 'synchronize', scope: 'global' }
[neural-coordination] Collective memory operation completed { action: 'synchronize', scope: 'global', durationMs: '0.04' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/collective-memory handler > should return error for missing key on store
[neural-coordination] Processing collective memory { action: 'store', scope: 'team' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/emergent-protocol handler > should handle valid input
[neural-coordination] Training emergent protocol { taskType: 'coordination', episodes: 100 }
[neural-coordination] Emergent protocol training completed { vocabularySize: 10, successRate: '0.582', durationMs: '0.14' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/emergent-protocol handler > should generate symbols for task objectives
[neural-coordination] Training emergent protocol { taskType: 'navigation', episodes: 500 }
[neural-coordination] Emergent protocol training completed { vocabularySize: 20, successRate: '0.784', durationMs: '0.07' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/emergent-protocol handler > should generate composition rules when interpretability enabled
[neural-coordination] Training emergent protocol { taskType: 'test', episodes: 1000 }
[neural-coordination] Emergent protocol training completed { vocabularySize: 20, successRate: '0.889', durationMs: '0.20' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/swarm-behavior handler > should handle valid input
[neural-coordination] Orchestrating swarm behavior { behavior: 'flocking', adaptiveRules: true }
[neural-coordination] Swarm behavior orchestrated { behavior: 'flocking', emergenceScore: '0.926', durationMs: '0.08' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/swarm-behavior handler > should handle all behavior types
[neural-coordination] Orchestrating swarm behavior { behavior: 'flocking', adaptiveRules: true }
[neural-coordination] Swarm behavior orchestrated { behavior: 'flocking', emergenceScore: '0.844', durationMs: '0.04' }
[neural-coordination] Orchestrating swarm behavior { behavior: 'foraging', adaptiveRules: true }
[neural-coordination] Swarm behavior orchestrated { behavior: 'foraging', emergenceScore: '0.770', durationMs: '0.03' }
[neural-coordination] Orchestrating swarm behavior { behavior: 'formation', adaptiveRules: true }
[neural-coordination] Swarm behavior orchestrated { behavior: 'formation', emergenceScore: '1.010', durationMs: '0.03' }
[neural-coordination] Orchestrating swarm behavior { behavior: 'task_allocation', adaptiveRules: true }
[neural-coordination] Swarm behavior orchestrated {
  behavior: 'task_allocation',
  emergenceScore: '0.781',
  durationMs: '0.03'
}
[neural-coordination] Orchestrating swarm behavior { behavior: 'exploration', adaptiveRules: true }
[neural-coordination] Swarm behavior orchestrated {
  behavior: 'exploration',
  emergenceScore: '0.699',
  durationMs: '0.03'
}
[neural-coordination] Orchestrating swarm behavior { behavior: 'aggregation', adaptiveRules: true }
[neural-coordination] Swarm behavior orchestrated {
  behavior: 'aggregation',
  emergenceScore: '0.788',
  durationMs: '0.03'
}
[neural-coordination] Orchestrating swarm behavior { behavior: 'dispersion', adaptiveRules: true }
[neural-coordination] Swarm behavior orchestrated { behavior: 'dispersion', emergenceScore: '0.662', durationMs: '0.03' }

stdout | v3/plugins/neural-coordination/tests/mcp-tools.test.ts > coordination/swarm-behavior handler > should compute swarm metrics
[neural-coordination] Orchestrating swarm behavior { behavior: 'flocking', adaptiveRules: true }
[neural-coordination] Swarm behavior orchestrated { behavior: 'flocking', emergenceScore: '0.861', durationMs: '0.03' }

 ✓ v3/plugins/neural-coordination/tests/mcp-tools.test.ts  (30 tests) 18ms
 ✓ v3/plugins/neural-coordination/tests/types.test.ts  (41 tests) 15ms
 ✓ v3/@claude-flow/security/__tests__/unit/path-validator.test.ts  (32 tests) 10ms
stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/working-memory handler > should handle allocate action
[cognitive-kernel] Processing working memory { action: 'allocate', capacity: 7 }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/working-memory handler > should handle update action
[cognitive-kernel] Processing working memory { action: 'update', capacity: 7 }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/working-memory handler > should handle retrieve action
[cognitive-kernel] Processing working memory { action: 'retrieve', capacity: 7 }
[cognitive-kernel] Working memory operation completed { action: 'retrieve', slotsUsed: 0, durationMs: '0.17' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/working-memory handler > should handle clear action
[cognitive-kernel] Processing working memory { action: 'clear', capacity: 7 }
[cognitive-kernel] Working memory operation completed { action: 'clear', slotsUsed: 0, durationMs: '0.27' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/working-memory handler > should handle consolidate action
[cognitive-kernel] Processing working memory { action: 'consolidate', capacity: 7 }
[cognitive-kernel] Working memory operation completed { action: 'consolidate', slotsUsed: 0, durationMs: '0.14' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/working-memory handler > should respect capacity limit
[cognitive-kernel] Processing working memory { action: 'allocate', capacity: 3 }
[cognitive-kernel] Working memory operation completed { action: 'allocate', slotsUsed: 1, durationMs: '0.25' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/attention-control handler > should handle valid input
[cognitive-kernel] Controlling attention { mode: 'focus', targetCount: 2 }
[cognitive-kernel] Attention control completed { mode: 'focus', focus: 2, durationMs: '0.53' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/attention-control handler > should handle all attention modes
[cognitive-kernel] Controlling attention { mode: 'focus', targetCount: 0 }
[cognitive-kernel] Attention control completed { mode: 'focus', focus: 0, durationMs: '0.04' }
[cognitive-kernel] Controlling attention { mode: 'diffuse', targetCount: 0 }
[cognitive-kernel] Attention control completed { mode: 'diffuse', focus: 0, durationMs: '0.02' }
[cognitive-kernel] Controlling attention { mode: 'selective', targetCount: 0 }
[cognitive-kernel] Attention control completed { mode: 'selective', focus: 0, durationMs: '0.02' }
[cognitive-kernel] Controlling attention { mode: 'divided', targetCount: 0 }
[cognitive-kernel] Attention control completed { mode: 'divided', focus: 0, durationMs: '0.02' }
[cognitive-kernel] Controlling attention { mode: 'sustained', targetCount: 0 }
[cognitive-kernel] Attention control completed { mode: 'sustained', focus: 0, durationMs: '0.02' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/attention-control handler > should compute attention state
[cognitive-kernel] Controlling attention { mode: 'selective', targetCount: 1 }
[cognitive-kernel] Attention control completed { mode: 'selective', focus: 1, durationMs: '0.03' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/meta-monitor handler > should handle valid input
[cognitive-kernel] Performing meta-cognitive monitoring { monitoringTypes: 3, interventions: true }
[cognitive-kernel] Meta-cognitive monitoring completed { confidence: '0.72', errorsDetected: 0, durationMs: '0.09' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/meta-monitor handler > should compute assessment metrics
[cognitive-kernel] Performing meta-cognitive monitoring { monitoringTypes: 2, interventions: true }
[cognitive-kernel] Meta-cognitive monitoring completed { confidence: '0.88', errorsDetected: 0, durationMs: '0.03' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/meta-monitor handler > should generate interventions when enabled
[cognitive-kernel] Performing meta-cognitive monitoring { monitoringTypes: 0, interventions: true }
[cognitive-kernel] Meta-cognitive monitoring completed { confidence: '0.90', errorsDetected: 0, durationMs: '0.02' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/meta-monitor handler > should handle all reflection depths
[cognitive-kernel] Performing meta-cognitive monitoring { monitoringTypes: 0, interventions: true }
[cognitive-kernel] Meta-cognitive monitoring completed { confidence: '0.71', errorsDetected: 0, durationMs: '0.02' }
[cognitive-kernel] Performing meta-cognitive monitoring { monitoringTypes: 0, interventions: true }
[cognitive-kernel] Meta-cognitive monitoring completed { confidence: '0.83', errorsDetected: 0, durationMs: '0.09' }
[cognitive-kernel] Performing meta-cognitive monitoring { monitoringTypes: 0, interventions: true }
[cognitive-kernel] Meta-cognitive monitoring completed { confidence: '0.71', errorsDetected: 0, durationMs: '0.02' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/scaffold handler > should handle valid input
[cognitive-kernel] Generating scaffold { complexity: 'moderate', scaffoldType: 'decomposition' }
[cognitive-kernel] Scaffold generated { scaffoldType: 'decomposition', stepCount: 4, durationMs: '0.08' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/scaffold handler > should generate appropriate steps for complexity
[cognitive-kernel] Generating scaffold { complexity: 'simple', scaffoldType: 'decomposition' }
[cognitive-kernel] Scaffold generated { scaffoldType: 'decomposition', stepCount: 2, durationMs: '0.02' }
[cognitive-kernel] Generating scaffold { complexity: 'expert', scaffoldType: 'decomposition' }
[cognitive-kernel] Scaffold generated { scaffoldType: 'decomposition', stepCount: 8, durationMs: '0.02' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/scaffold handler > should handle all scaffold types
[cognitive-kernel] Generating scaffold { complexity: 'simple', scaffoldType: 'decomposition' }
[cognitive-kernel] Scaffold generated { scaffoldType: 'decomposition', stepCount: 2, durationMs: '0.02' }
[cognitive-kernel] Generating scaffold { complexity: 'simple', scaffoldType: 'analogy' }
[cognitive-kernel] Scaffold generated { scaffoldType: 'analogy', stepCount: 2, durationMs: '0.03' }
[cognitive-kernel] Generating scaffold { complexity: 'simple', scaffoldType: 'worked_example' }
[cognitive-kernel] Scaffold generated { scaffoldType: 'worked_example', stepCount: 2, durationMs: '0.02' }
[cognitive-kernel] Generating scaffold { complexity: 'simple', scaffoldType: 'socratic' }
[cognitive-kernel] Scaffold generated { scaffoldType: 'socratic', stepCount: 2, durationMs: '0.02' }
[cognitive-kernel] Generating scaffold { complexity: 'simple', scaffoldType: 'metacognitive_prompting' }
[cognitive-kernel] Scaffold generated {
  scaffoldType: 'metacognitive_prompting',
  stepCount: 2,
  durationMs: '0.34'
}
[cognitive-kernel] Generating scaffold { complexity: 'simple', scaffoldType: 'chain_of_thought' }
[cognitive-kernel] Scaffold generated { scaffoldType: 'chain_of_thought', stepCount: 2, durationMs: '0.12' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/scaffold handler > should include hints and checkpoints in steps
[cognitive-kernel] Generating scaffold { complexity: 'moderate', scaffoldType: 'chain_of_thought' }
[cognitive-kernel] Scaffold generated { scaffoldType: 'chain_of_thought', stepCount: 4, durationMs: '0.04' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/cognitive-load handler > should handle valid input
[cognitive-kernel] Managing cognitive load { optimization: 'balanced', threshold: 0.8 }
[cognitive-kernel] Cognitive load management completed { totalLoad: '0.50', overloaded: false, durationMs: '0.07' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/cognitive-load handler > should detect overload condition
[cognitive-kernel] Managing cognitive load { optimization: 'balanced', threshold: 0.8 }
[cognitive-kernel] Cognitive load management completed { totalLoad: '1.00', overloaded: true, durationMs: '0.03' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/cognitive-load handler > should not detect overload for low load
[cognitive-kernel] Managing cognitive load { optimization: 'balanced', threshold: 0.8 }
[cognitive-kernel] Cognitive load management completed { totalLoad: '0.20', overloaded: false, durationMs: '0.02' }

stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/cognitive-load handler > should handle all optimization strategies
[cognitive-kernel] Managing cognitive load { optimization: 'reduce_extraneous', threshold: 0.8 }
[cognitive-kernel] Cognitive load management completed { totalLoad: '0.20', overloaded: false, durationMs: '0.03' }
[cognitive-kernel] Managing cognitive load { optimization: 'chunk_intrinsic', threshold: 0.8 }
[cognitive-kernel] Cognitive load management completed { totalLoad: '0.20', overloaded: false, durationMs: '0.02' }
[cognitive-kernel] Managing cognitive load { optimization: 'maximize_germane', threshold: 0.8 }
[cognitive-kernel] Cognitive load management completed { totalLoad: '0.20', overloaded: false, durationMs: '0.01' }
[cognitive-kernel] Managing cognitive load { optimization: 'balanced', threshold: 0.8 }
[cognitive-kernel] Cognitive load management completed { totalLoad: '0.20', overloaded: false, durationMs: '0.01' }

 ❯ v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts  (32 tests | 2 failed) 19ms
   ❯ v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/working-memory handler > should handle allocate action
     → expected true to be undefined
   ❯ v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/working-memory handler > should handle update action
     → expected true to be undefined
stdout | v3/plugins/cognitive-kernel/tests/mcp-tools.test.ts > cognition/cognitive-load handler > should provide recommendations
[cognitive-kernel] Managing cognitive load { optimization: 'balanced', threshold: 0.8 }
[cognitive-kernel] Cognitive load management completed { totalLoad: '0.65', overloaded: false, durationMs: '0.02' }

 ❯ archive/v2/tests/production/integration-validation.test.ts  (0 test)
 ✓ v3/__tests__/features/feature-gaps.test.ts  (30 tests) 5ms
 ✓ v3/@claude-flow/cli/__tests__/ruvector/agent-wasm.test.ts  (29 tests) 26ms
TAP version 13
 ❯ tests/rvf-integration.test.ts  (0 test)
 ❯ archive/v2/tests/performance/init-performance.test.js  (0 test)
 ❯ archive/v2/examples/05-swarm-apps/rest-api-advanced/tests/unit/auth.service.test.js  (0 test)
 ✓ v3/plugins/test-intelligence/tests/bridges.test.ts  (28 tests) 26ms
stdout | v3/@claude-flow/guidance/tests/wasm-kernel.test.ts > WASM Kernel: 10k Event Acceptance > processes 10,000 synthetic events with identical proof root hash

--- 10k Event Proof Chain ---
JS:   57.8ms (172951 chains/sec)
WASM: 54.5ms (183397 chains/sec)
Ratio: 1.06x
Root hash: 401145a23c07a921...

stdout | v3/@claude-flow/guidance/tests/wasm-kernel.test.ts > WASM Kernel: 10k Event Acceptance > batch processes 10,000 SHA-256 hashes

--- 10k SHA-256 Hash Throughput ---
Individual: 10.7ms (937976 ops/sec)
Batch:      18.5ms (540913 ops/sec)
Batch speedup: 0.58x

stdout | v3/@claude-flow/guidance/tests/wasm-kernel.test.ts > WASM Kernel: 10k Event Acceptance > secret scanning throughput on 10,000 inputs

--- 10k Secret Scanning ---
Clean: 15.2ms (658597 scans/sec)
Dirty: 22.8ms (437818 scans/sec)

 ✓ v3/@claude-flow/guidance/tests/wasm-kernel.test.ts  (15 tests) 239ms
 ❯ archive/v2/tests/unit/cli/commands/init/batch-init.test.js  (0 test)
 ❯ v3/__tests__/integration/memory-integration.test.ts  (15 tests | 1 failed) 17ms
   ❯ v3/__tests__/integration/memory-integration.test.ts > Memory Integration Tests > should persist memory across backend reinitialization
     → expected undefined not to be undefined
stdout | v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts > Provider Integration Tests > RuVector Provider (ruvllm) > should complete request with CPU-friendly Qwen model
[INFO] Initializing ruvector provider { model: 'qwen2.5:0.5b', temperature: undefined, maxTokens: 100 }

stdout | v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts > Provider Integration Tests > RuVector Provider (ruvllm) > should complete request with CPU-friendly Qwen model
[INFO] RuVector ruvLLM native module loaded

stdout | v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts > Provider Integration Tests > RuVector Provider (ruvllm) > should complete request with CPU-friendly Qwen model
[INFO] Using Ollama as fallback for local model execution

stdout | v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts > Provider Integration Tests > RuVector Provider (ruvllm) > should complete request with CPU-friendly Qwen model
RuVector/Ollama not available, test details: Error: Unhandled error. ({
  provider: 'ruvector',
  error: LLMProviderError: Ollama error: {"error":"model 'qwen2.5:0.5b' not found"}
      at RuVectorProvider.completeWithOllama (/Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/ruvector-provider.ts:295:15)
      at processTicksAndRejections (node:internal/process/task_queues:103:5)
      at /Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/base-provider.ts:216:16
      at CircuitBreaker.execute (/Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/base-provider.ts:58:22)
      at RuVectorProvider.complete (/Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/base-provider.ts:215:24)
      at /Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts:223:26
      at runTest (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:781:11)
      at runSuite (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:909:15)
      at runSuite (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:909:15)
      at runSuite (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:909:15) {
    code: 'OLLAMA_404',
    provider: 'ruvector',
    statusCode: 404,
    retryable: true,
    details: undefined
  },
  request: {
    messages: [ [Object] ],
    model: 'qwen2.5:0.5b',
    maxTokens: 50,
    temperature: 0.1,
    requestId: 'test-1778334888384'
  }
})
    at RuVectorProvider.emit (node:events:508:17)
    at RuVectorProvider.complete (/Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/base-provider.ts:236:12)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts:223:26
    at runTest (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:781:11)
    at runSuite (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:909:15)
    at runSuite (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:909:15)
    at runSuite (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:909:15)
    at runFiles (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:958:5)
    at startTests (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:967:3) {
  code: 'ERR_UNHANDLED_ERROR',
  context: {
    provider: 'ruvector',
    error: LLMProviderError: Ollama error: {"error":"model 'qwen2.5:0.5b' not found"}
        at RuVectorProvider.completeWithOllama (/Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/ruvector-provider.ts:295:15)
        at processTicksAndRejections (node:internal/process/task_queues:103:5)
        at /Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/base-provider.ts:216:16
        at CircuitBreaker.execute (/Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/base-provider.ts:58:22)
        at RuVectorProvider.complete (/Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/base-provider.ts:215:24)
        at /Users/cohen/Projects/ruflo/v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts:223:26
        at runTest (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:781:11)
        at runSuite (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:909:15)
        at runSuite (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:909:15)
        at runSuite (file:///Users/cohen/Projects/ruflo/node_modules/.pnpm/@vitest+runner@1.6.1/node_modules/@vitest/runner/dist/index.js:909:15) {
      code: 'OLLAMA_404',
      provider: 'ruvector',
      statusCode: 404,
      retryable: true,
      details: undefined
    },
    request: {
      messages: [Array],
      model: 'qwen2.5:0.5b',
      maxTokens: 50,
      temperature: 0.1,
      requestId: 'test-1778334888384'
    }
  }
}

stdout | v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts > Provider Integration Tests > RuVector Provider (ruvllm) > should search memory with HNSW
[INFO] Initializing ruvector provider { model: 'qwen2.5:0.5b', temperature: undefined, maxTokens: 100 }

stdout | v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts > Provider Integration Tests > RuVector Provider (ruvllm) > should search memory with HNSW
[INFO] RuVector ruvLLM native module loaded

stdout | v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts > Provider Integration Tests > RuVector Provider (ruvllm) > should search memory with HNSW
[INFO] Using Ollama as fallback for local model execution

 ✓ v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts  (10 tests | 8 skipped) 184ms
stdout | v3/@claude-flow/providers/src/__tests__/provider-integration.test.ts > Provider Integration Tests > RuVector Provider (ruvllm) > should search memory with HNSW
Memory search results: []
[INFO] ruvector provider destroyed

 ✓ v3/@claude-flow/security/__tests__/input-validator.test.ts  (58 tests) 16ms
 ✓ v3/@claude-flow/memory/src/benchmark.test.ts  (16 tests) 419ms
stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > MemoryGraph: build 100 nodes
  Graph build (100):  0.54ms

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > MemoryGraph: build 1000 nodes
  Graph build (1k):   3.04ms  [target: <200ms]

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > MemoryGraph: build 2000 nodes
  Graph build (2k):   5.20ms

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > MemoryGraph: PageRank 1000 nodes
  PageRank (1k):      11.70ms  [target: <100ms]

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > MemoryGraph: PageRank 2000 nodes
  PageRank (2k):      8.79ms

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > MemoryGraph: community detection 1000 nodes
  Communities (1k):   27.40ms  (129 found)

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > MemoryGraph: rankWithGraph 10 results
  rankWithGraph(10):  0.005ms  (avg of 100 runs)

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > MemoryGraph: getTopNodes(20)
  getTopNodes(20):    0.273ms  (avg of 100 runs)

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > MemoryGraph: getNeighbors depth=2
  getNeighbors(d=2):  0.007ms  (avg of 100 runs)

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > LearningBridge: record 1000 insights
  Record 1000:        122.50ms  (0.122ms/each)  [target: <5ms/each]

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > LearningBridge: access 1000 insights
  Access 1000:        3.30ms  (0.003ms/each)

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > LearningBridge: consolidation
  Consolidation:      0.25ms  (100 trajectories)  [target: <500ms]

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > LearningBridge: decay 1000 entries
  Decay 1k entries:   0.24ms  (0 decayed)  [target: <50ms]

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > AgentMemoryScope: resolve 10k paths
  Resolve 10k paths:  32.73ms  (3.3us/each)

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > AgentMemoryScope: transfer knowledge
  Transfer knowledge: 1.09ms  (20 transferred)  [target: <100ms]

stdout | v3/@claude-flow/memory/src/benchmark.test.ts > ADR-049 Performance Benchmarks > SUMMARY: all targets met

=== ADR-049 Performance Summary ===

  PASS  Graph build (1k nodes)           3.04 ms        target: <200ms  (65.8x headroom)
  PASS  PageRank (1k nodes)             11.70 ms        target: <100ms  (8.5x headroom)
  PASS  Insight recording                0.12 ms/each   target: <5ms/each  (40.8x headroom)
  PASS  Consolidation                    0.25 ms        target: <500ms  (1990.4x headroom)
  PASS  Confidence decay (1k)            0.24 ms        target: <50ms  (209.4x headroom)
  PASS  Knowledge transfer               1.09 ms        target: <100ms  (91.8x headroom)

 ✓ v3/plugins/perf-optimizer/tests/types.test.ts  (35 tests) 10ms
 ❯ v3/__tests__/integration/swarm-integration.test.ts  (15 tests | 2 failed) 155ms
   ❯ v3/__tests__/integration/swarm-integration.test.ts > Swarm Integration Tests > should handle agent failures gracefully
     → Agent crashed
   ❯ v3/__tests__/integration/swarm-integration.test.ts > Swarm Integration Tests > should handle dynamic agent scaling
     → expected 6 to be 2 // Object.is equality
 ✓ v3/__tests__/integration/mcp-integration.test.ts  (16 tests) 10ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/firmware-orchestration-service.test.ts  (24 tests) 13ms
 ❯ archive/v2/tests/mcp/mcp-2025-core.test.ts  (0 test)
 ❯ archive/v2/src/utils/__tests__/github-cli-safety-wrapper.test.js  (0 test)
 ✓ v3/@claude-flow/shared/__tests__/hooks/session-hooks.test.ts  (18 tests) 34ms
 ✓ v3/plugins/neural-coordination/tests/bridges.test.ts  (34 tests) 202ms
 ✓ v3/plugins/perf-optimizer/tests/mcp-tools.test.ts  (29 tests) 17ms
stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/bottleneck-detect handler > should handle valid input
[perf-optimizer] Detecting bottlenecks { spanCount: 2, scope: [ 'cpu', 'memory', 'database' ] }
[perf-optimizer] Bottleneck detection completed { bottlenecksFound: 1, overallScore: '0.75', durationMs: '1.54' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/bottleneck-detect handler > should handle empty spans
[perf-optimizer] Detecting bottlenecks { spanCount: 0, scope: [ 'all' ] }
[perf-optimizer] Bottleneck detection completed { bottlenecksFound: 0, overallScore: '1.00', durationMs: '0.41' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/bottleneck-detect handler > should detect slow spans as bottlenecks
[perf-optimizer] Detecting bottlenecks { spanCount: 1, scope: [ 'all' ] }
[perf-optimizer] Bottleneck detection completed { bottlenecksFound: 1, overallScore: '0.50', durationMs: '0.65' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/memory-analyze handler > should handle valid input
[perf-optimizer] Analyzing memory { hasSnapshot: false, timelinePoints: undefined }
[perf-optimizer] Memory analysis completed { leaksFound: 1, gcPressure: '0.15', durationMs: '0.26' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/memory-analyze handler > should handle empty input
[perf-optimizer] Analyzing memory { hasSnapshot: false, timelinePoints: undefined }
[perf-optimizer] Memory analysis completed { leaksFound: 1, gcPressure: '0.15', durationMs: '0.51' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/memory-analyze handler > should detect potential leaks
[perf-optimizer] Analyzing memory { hasSnapshot: false, timelinePoints: 5 }
[perf-optimizer] Memory analysis completed { leaksFound: 1, gcPressure: '0.00', durationMs: '0.08' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/query-optimize handler > should handle valid input
[perf-optimizer] Optimizing queries { queryCount: 2 }
[perf-optimizer] Query optimization completed { patternsFound: 0, indexSuggestions: 0, durationMs: '0.66' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/query-optimize handler > should detect N+1 patterns
[perf-optimizer] Optimizing queries { queryCount: 5 }
[perf-optimizer] Query optimization completed { patternsFound: 0, indexSuggestions: 0, durationMs: '0.53' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/query-optimize handler > should suggest indexes for slow queries
[perf-optimizer] Optimizing queries { queryCount: 1 }
[perf-optimizer] Query optimization completed { patternsFound: 1, indexSuggestions: 1, durationMs: '0.34' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/bundle-optimize handler > should handle valid input
[perf-optimizer] Optimizing bundle {
  statsPath: '/path/to/stats.json',
  analysis: [ 'tree_shaking', 'code_splitting' ]
}
[perf-optimizer] Bundle optimization completed {
  optimizationsFound: 2,
  potentialSavingsKb: '180',
  durationMs: '0.15'
}

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/bundle-optimize handler > should calculate potential savings
[perf-optimizer] Optimizing bundle {
  statsPath: '/path/to/bundle.json',
  analysis: [ 'duplicate_deps', 'large_modules' ]
}
[perf-optimizer] Bundle optimization completed {
  optimizationsFound: 2,
  potentialSavingsKb: '300',
  durationMs: '0.06'
}

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/config-optimize handler > should handle valid input
[perf-optimizer] Optimizing configuration { workloadType: 'api', objective: 'latency' }
[perf-optimizer] Configuration optimization completed { recommendations: 2, durationMs: '0.33' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/config-optimize handler > should handle all objective types
[perf-optimizer] Optimizing configuration { workloadType: 'web', objective: 'latency' }
[perf-optimizer] Configuration optimization completed { recommendations: 1, durationMs: '0.09' }
[perf-optimizer] Optimizing configuration { workloadType: 'web', objective: 'throughput' }
[perf-optimizer] Configuration optimization completed { recommendations: 1, durationMs: '0.11' }
[perf-optimizer] Optimizing configuration { workloadType: 'web', objective: 'cost' }
[perf-optimizer] Configuration optimization completed { recommendations: 1, durationMs: '0.05' }
[perf-optimizer] Optimizing configuration { workloadType: 'web', objective: 'balanced' }
[perf-optimizer] Configuration optimization completed { recommendations: 1, durationMs: '0.47' }

stdout | v3/plugins/perf-optimizer/tests/mcp-tools.test.ts > perf/config-optimize handler > should provide optimization recommendations
[perf-optimizer] Optimizing configuration { workloadType: 'batch', objective: 'throughput' }
[perf-optimizer] Configuration optimization completed { recommendations: 2, durationMs: '0.16' }

 ❯ archive/v2/tests/sdk/verification.test.ts  (0 test)
stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_annealing_solve handler > should handle valid QUBO input
[quantum-optimizer] Annealing solve { variables: 5, type: 'qubo' }
[quantum-optimizer] Annealing completed { energy: -3, samples: 100, durationMs: '38.71' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_annealing_solve handler > should handle all problem types
[quantum-optimizer] Annealing solve { variables: 3, type: 'qubo' }
[quantum-optimizer] Annealing completed { energy: 0, samples: 100, durationMs: '176.33' }
[quantum-optimizer] Annealing solve { variables: 3, type: 'ising' }
[quantum-optimizer] Annealing completed { energy: 0, samples: 100, durationMs: '173.60' }
[quantum-optimizer] Annealing solve { variables: 3, type: 'sat' }
[quantum-optimizer] Annealing completed { energy: 0, samples: 100, durationMs: '201.42' }
[quantum-optimizer] Annealing solve { variables: 3, type: 'max_cut' }
[quantum-optimizer] Annealing completed { energy: 0, samples: 100, durationMs: '222.90' }
[quantum-optimizer] Annealing solve { variables: 3, type: 'tsp' }
[quantum-optimizer] Annealing completed { energy: 0, samples: 100, durationMs: '320.79' }
[quantum-optimizer] Annealing solve { variables: 3, type: 'dependency' }
[quantum-optimizer] Annealing completed { energy: 0, samples: 100, durationMs: '202.79' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_annealing_solve handler > should handle temperature schedules
[quantum-optimizer] Annealing solve { variables: 5, type: 'qubo' }
[quantum-optimizer] Annealing completed { energy: 0, samples: 100, durationMs: '330.75' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_qaoa_optimize handler > should handle valid QAOA input
[quantum-optimizer] QAOA optimize { nodes: 4, depth: 2 }
[quantum-optimizer] QAOA completed {
  energy: -2.0703125,
  approximationRatio: 0.5894967255125285,
  durationMs: '202.17'
}

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_qaoa_optimize handler > should handle all problem types
[quantum-optimizer] QAOA optimize { nodes: 3, depth: undefined }
[quantum-optimizer] QAOA completed {
  energy: -1.0595703125,
  approximationRatio: 0.6033999501708428,
  durationMs: '227.08'
}
[quantum-optimizer] QAOA optimize { nodes: 3, depth: undefined }
[quantum-optimizer] QAOA completed {
  energy: -1.044921875,
  approximationRatio: 0.5950580153758542,
  durationMs: '210.84'
}
[quantum-optimizer] QAOA optimize { nodes: 3, depth: undefined }
[quantum-optimizer] QAOA completed {
  energy: -1.060546875,
  approximationRatio: 0.6039560791571754,
  durationMs: '215.90'
}
[quantum-optimizer] QAOA optimize { nodes: 3, depth: undefined }
[quantum-optimizer] QAOA completed {
  energy: -1.0458984375,
  approximationRatio: 0.5956141443621867,
  durationMs: '211.21'
}

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_qaoa_optimize handler > should handle all optimizers
[quantum-optimizer] QAOA optimize { nodes: 3, depth: 3 }
[quantum-optimizer] QAOA completed {
  energy: -0.529296875,
  approximationRatio: 0.6028438211845103,
  durationMs: '194.72'
}
[quantum-optimizer] QAOA optimize { nodes: 3, depth: 3 }
[quantum-optimizer] QAOA completed {
  energy: -0.5224609375,
  approximationRatio: 0.5950580153758542,
  durationMs: '195.24'
}
[quantum-optimizer] QAOA optimize { nodes: 3, depth: 3 }
[quantum-optimizer] QAOA completed {
  energy: -0.537109375,
  approximationRatio: 0.6117418849658315,
  durationMs: '236.23'
}
[quantum-optimizer] QAOA optimize { nodes: 3, depth: 3 }
[quantum-optimizer] QAOA completed {
  energy: -0.5205078125,
  approximationRatio: 0.5928334994305239,
  durationMs: '189.85'
}

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_qaoa_optimize handler > should return approximation ratio
[quantum-optimizer] QAOA optimize { nodes: 4, depth: 3 }
[quantum-optimizer] QAOA completed {
  energy: -1.572265625,
  approximationRatio: 0.5969117786636294,
  durationMs: '278.04'
}

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_grover_search handler > should handle valid search input
[quantum-optimizer] Grover search { size: 1000, structure: 'unstructured' }
[quantum-optimizer] Grover search completed { found: 10, queries: 18, durationMs: '2.76' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_grover_search handler > should handle all structure types
[quantum-optimizer] Grover search { size: 100, structure: 'unstructured' }
[quantum-optimizer] Grover search completed { found: 7, queries: 14, durationMs: '0.31' }
[quantum-optimizer] Grover search { size: 100, structure: 'database' }
[quantum-optimizer] Grover search completed { found: 3, queries: 14, durationMs: '0.22' }
[quantum-optimizer] Grover search { size: 100, structure: 'tree' }
[quantum-optimizer] Grover search completed { found: 7, queries: 14, durationMs: '0.14' }
[quantum-optimizer] Grover search { size: 100, structure: 'graph' }
[quantum-optimizer] Grover search completed { found: 8, queries: 14, durationMs: '0.53' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_grover_search handler > should handle all amplification methods
[quantum-optimizer] Grover search { size: 100, structure: 'unstructured' }
[quantum-optimizer] Grover search completed { found: 6, queries: 14, durationMs: '0.19' }
[quantum-optimizer] Grover search { size: 100, structure: 'unstructured' }
[quantum-optimizer] Grover search completed { found: 4, queries: 14, durationMs: '0.10' }
[quantum-optimizer] Grover search { size: 100, structure: 'unstructured' }
[quantum-optimizer] Grover search completed { found: 9, queries: 14, durationMs: '0.14' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_grover_search handler > should return query count
[quantum-optimizer] Grover search { size: 10000, structure: 'unstructured' }
[quantum-optimizer] Grover search completed { found: 10, queries: 24, durationMs: '10.04' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_dependency_resolve handler > should handle valid dependency input
[quantum-optimizer] Dependency resolve { packages: 3, solver: 'hybrid' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_dependency_resolve handler > should handle valid dependency input
[quantum-optimizer] Dependency resolution completed { resolved: 3, conflicts: 0, durationMs: '2.26' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_dependency_resolve handler > should handle all minimize objectives
[quantum-optimizer] Dependency resolve { packages: 1, solver: 'hybrid' }
[quantum-optimizer] Dependency resolution completed { resolved: 1, conflicts: 0, durationMs: '0.17' }
[quantum-optimizer] Dependency resolve { packages: 1, solver: 'hybrid' }
[quantum-optimizer] Dependency resolution completed { resolved: 1, conflicts: 0, durationMs: '0.08' }
[quantum-optimizer] Dependency resolve { packages: 1, solver: 'hybrid' }
[quantum-optimizer] Dependency resolution completed { resolved: 1, conflicts: 0, durationMs: '0.06' }
[quantum-optimizer] Dependency resolve { packages: 1, solver: 'hybrid' }
[quantum-optimizer] Dependency resolution completed { resolved: 1, conflicts: 0, durationMs: '0.43' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_dependency_resolve handler > should handle all solver types
[quantum-optimizer] Dependency resolve { packages: 1, solver: 'quantum_annealing' }
[quantum-optimizer] Dependency resolution completed { resolved: 1, conflicts: 0, durationMs: '0.21' }
[quantum-optimizer] Dependency resolve { packages: 1, solver: 'qaoa' }
[quantum-optimizer] Dependency resolution completed { resolved: 1, conflicts: 0, durationMs: '0.12' }
[quantum-optimizer] Dependency resolve { packages: 1, solver: 'hybrid' }
[quantum-optimizer] Dependency resolution completed { resolved: 1, conflicts: 0, durationMs: '0.04' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_dependency_resolve handler > should return resolution order
[quantum-optimizer] Dependency resolve { packages: 3, solver: 'hybrid' }
[quantum-optimizer] Dependency resolution completed { resolved: 3, conflicts: 0, durationMs: '0.12' }

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_schedule_optimize handler > should handle valid schedule input
[quantum-optimizer] Schedule optimize { tasks: 3, resources: 2 }
[quantum-optimizer] Schedule optimization completed {
  makespan: 30,
  cost: 37.5,
  score: 0.03225806451612903,
  durationMs: '0.52'
}

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_schedule_optimize handler > should handle all objectives
[quantum-optimizer] Schedule optimize { tasks: 1, resources: 1 }
[quantum-optimizer] Schedule optimization completed {
  makespan: 10,
  cost: 0,
  score: 0.09090909090909091,
  durationMs: '0.08'
}
[quantum-optimizer] Schedule optimize { tasks: 1, resources: 1 }
[quantum-optimizer] Schedule optimization completed { makespan: 10, cost: 0, score: 1, durationMs: '0.05' }
[quantum-optimizer] Schedule optimize { tasks: 1, resources: 1 }
[quantum-optimizer] Schedule optimization completed { makespan: 10, cost: 0, score: 0, durationMs: '0.19' }
[quantum-optimizer] Schedule optimize { tasks: 1, resources: 1 }
[quantum-optimizer] Schedule optimization completed {
  makespan: 10,
  cost: 0,
  score: 0.33636363636363636,
  durationMs: '0.24'
}

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_schedule_optimize handler > should compute schedule metrics
[quantum-optimizer] Schedule optimize { tasks: 2, resources: 1 }
[quantum-optimizer] Schedule optimization completed {
  makespan: 30,
  cost: 0,
  score: 0.03225806451612903,
  durationMs: '0.09'
}

stdout | v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_schedule_optimize handler > should identify critical path
[quantum-optimizer] Schedule optimize { tasks: 3, resources: 1 }
[quantum-optimizer] Schedule optimization completed {
  makespan: 40,
  cost: 0,
  score: 0.024390243902439025,
  durationMs: '0.09'
}

 ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts  (32 tests | 10 failed) 3876ms
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_annealing_solve handler > should handle valid QUBO input
     → expected { solution: { …(5) }, …(3) } to have property "details"
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_qaoa_optimize handler > should handle valid QAOA input
     → expected { solution: { …(4) }, …(3) } to have property "details"
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_qaoa_optimize handler > should return approximation ratio
     → Cannot convert undefined or null to object
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_grover_search handler > should handle valid search input
     → expected { solutions: [ …(10) ], …(4) } to have property "details"
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_grover_search handler > should return query count
     → Cannot convert undefined or null to object
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_dependency_resolve handler > should handle valid dependency input
     → expected { resolved: { …(3) }, …(4) } to have property "details"
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_dependency_resolve handler > should return resolution order
     → Cannot convert undefined or null to object
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_schedule_optimize handler > should handle valid schedule input
     → expected { schedule: [ { …(4) }, …(2) ], …(5) } to have property "details"
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_schedule_optimize handler > should compute schedule metrics
     → Cannot convert undefined or null to object
   ❯ v3/plugins/quantum-optimizer/tests/mcp-tools.test.ts > quantum_schedule_optimize handler > should identify critical path
     → Cannot convert undefined or null to object
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/discovery-service.test.ts  (26 tests) 143ms
 ❯ archive/v2/tests/mcp/progressive-disclosure.test.ts  (0 test)
 ✓ v3/@claude-flow/shared/__tests__/hooks/git-commit.test.ts  (39 tests) 11ms
 ❯ archive/v2/bin/__tests__/swarm.test.js  (0 test)
 ❯ archive/v2/src/cli/simple-commands/__tests__/swarm.test.js  (0 test)
 ✓ v3/@claude-flow/security/__tests__/unit/token-generator.test.ts  (33 tests) 32ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/health-probe-worker.test.ts  (13 tests) 11ms
 ✓ v3/plugins/quantum-optimizer/tests/bridges.test.ts  (17 tests) 8ms
 ✓ v3/@claude-flow/memory/src/hybrid-backend.test.ts  (18 tests) 53ms
 ❯ archive/v2/src/swarm/__tests__/prompt-copier.test.ts  (0 test)
 ✓ v3/@claude-flow/plugins/__tests__/collection-manager.test.ts  (20 tests) 12ms
stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > loadCollection > should load a collection
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > loadCollection > should register enabled plugins
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > unloadCollection > should unload a collection and its plugins
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin unregistered: plugin-a { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > enablePlugin > should enable a disabled plugin
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > disablePlugin > should disable an enabled plugin
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin unregistered: plugin-a { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > togglePlugin > should toggle plugin state
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin unregistered: plugin-a { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > bulk operations > should enable all plugins
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-b v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > bulk operations > should disable all plugins
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-b v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin unregistered: plugin-b { component: 'EnhancedPluginRegistry' }
[INFO] Plugin unregistered: plugin-a { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > filtering > should get plugins by category
[INFO] Plugin registered: tool-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: agent-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: tool-2 v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > filtering > should get plugins by tag
[INFO] Plugin registered: plugin-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-2 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: plugin-3 v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > filtering > should search plugins by name
[INFO] Plugin registered: auth-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: cache-plugin v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: auth-helper v1.0.0 { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > state persistence > should export state
[INFO] Plugin registered: plugin-a v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin unregistered: plugin-a { component: 'EnhancedPluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/collection-manager.test.ts > PluginCollectionManager > statistics > should return correct stats
[INFO] Plugin registered: tool-1 v1.0.0 { component: 'EnhancedPluginRegistry' }
[INFO] Plugin registered: hook-1 v1.0.0 { component: 'EnhancedPluginRegistry' }

 ❯ archive/v2/tests/unit/components.test.ts  (0 test)
 ✓ v3/@claude-flow/plugins/__tests__/security.test.ts  (40 tests) 111ms
 ❯ archive/v2/tests/unit/cli/start/process-manager.test.ts  (0 test)
 ❯ archive/v2/tests/unit/mcp/recovery.test.ts  (0 test)
stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareHNSWBridge > Vector Operations > should add vector
[hnsw-bridge] Added vector { id: 'patient-1', index: 0 }

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareHNSWBridge > Vector Operations > should add patient with features
[hnsw-bridge] Added vector { id: 'P12345', index: 0 }

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareHNSWBridge > Vector Operations > should search for similar vectors
[hnsw-bridge] Added vector { id: 'p1', index: 0 }
[hnsw-bridge] Added vector { id: 'p2', index: 1 }
[hnsw-bridge] Added vector { id: 'p3', index: 2 }
[hnsw-bridge] Search completed { topK: 2, resultCount: 2, searchTimeMs: 0.459458999997878 }

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareHNSWBridge > Vector Operations > should search by patient features
[hnsw-bridge] Added vector { id: 'P001', index: 0 }
[hnsw-bridge] Added vector { id: 'P002', index: 1 }
[hnsw-bridge] Search completed { topK: 5, resultCount: 2, searchTimeMs: 0.1799170000012964 }

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareHNSWBridge > Vector Operations > should delete vector
[hnsw-bridge] Added vector { id: 'to-delete', index: 0 }

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareHNSWBridge > Vector Operations > should return count
[hnsw-bridge] Added vector { id: 'v1', index: 0 }
[hnsw-bridge] Added vector { id: 'v2', index: 1 }

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareHNSWBridge > JavaScript Fallback > should work without WASM
[hnsw-bridge] Added vector { id: 'test', index: 0 }
[hnsw-bridge] Search completed { topK: 1, resultCount: 1, searchTimeMs: 0.1124580000032438 }

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareGNNBridge > Graph Operations > should load drug interaction graph
[gnn-bridge] Graph loaded { nodes: 2, edges: 1 }

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareGNNBridge > Graph Operations > should predict clinical pathway
[gnn-bridge] Graph loaded { nodes: 3, edges: 2 }
[gnn-bridge] Pathway predicted {
  startNode: 'diagnosis',
  endNode: 'step2',
  pathLength: 3,
  durationMs: 0.07904100000087055
}

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareGNNBridge > JavaScript Fallback > should work without WASM
[gnn-bridge] Graph loaded { nodes: 1, edges: 0 }

stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareGNNBridge > Memory Management > should release resources on destroy
[gnn-bridge] Graph loaded { nodes: 100, edges: 200 }

 ✓ v3/plugins/healthcare-clinical/tests/bridges.test.ts  (32 tests) 26ms
stdout | v3/plugins/healthcare-clinical/tests/bridges.test.ts > HealthcareGNNBridge > Memory Management > should handle multiple init/destroy cycles
[gnn-bridge] Graph loaded { nodes: 1, edges: 0 }
[gnn-bridge] Graph loaded { nodes: 1, edges: 0 }
[gnn-bridge] Graph loaded { nodes: 1, edges: 0 }

 ❯ archive/v2/tests/unit/cli/start/system-monitor.test.ts  (0 test)
 ✓ v3/@claude-flow/memory/src/database-provider.test.ts  (14 tests) 81ms
 ✓ v3/plugins/perf-optimizer/tests/bridges.test.ts  (29 tests) 30ms
 ❯ archive/v2/tests/integration/init-workflow.test.js  (0 test)
 ❯ archive/v2/src/__tests__/sdk-integration.test.ts  (0 test)
stdout | v3/@claude-flow/plugins/examples/plugin-creator/plugin-creator.test.ts > Plugin Creator Plugin > generateHookCode > should create working handler
Hook triggered: hook:post-task-complete { taskId: '123' }

 ✓ v3/@claude-flow/plugins/examples/plugin-creator/plugin-creator.test.ts  (27 tests) 10ms
 ✓ v3/@claude-flow/cli/__tests__/config-adapter.test.ts  (5 tests) 4ms
 ✓ v3/@claude-flow/security/__tests__/token-generator.test.ts  (45 tests) 2217ms
 ✓ v3/@claude-flow/security/__tests__/credential-generator.test.ts  (32 tests) 82ms
 ✓ v3/@claude-flow/cli/__tests__/suggest.test.ts  (43 tests) 15ms
stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > register > should register a plugin
[INFO] Plugin registered: test-plugin v1.0.0 { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > register > should reject duplicate plugin names
[INFO] Plugin registered: test-plugin v1.0.0 { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > register > should respect max plugins limit
[INFO] Plugin registered: p1 v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin registered: p2 v1.0.0 { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > register > should accept plugin factory functions
[INFO] Plugin registered: factory-plugin v1.0.0 { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > unregister > should unregister a plugin
[INFO] Plugin registered: test-plugin v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin initialized: test-plugin { component: 'PluginRegistry' }
[INFO] Registry initialized with 1 plugins { component: 'PluginRegistry' }
[INFO] Plugin unregistered: test-plugin { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > initialize > should initialize all plugins
[INFO] Plugin registered: p1 v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin registered: p2 v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin initialized: p1 { component: 'PluginRegistry' }
[INFO] Plugin initialized: p2 { component: 'PluginRegistry' }
[INFO] Registry initialized with 2 plugins { component: 'PluginRegistry' }
[INFO] Plugin shutdown: p2 { component: 'PluginRegistry' }
[INFO] Plugin shutdown: p1 { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > initialize > should throw if already initialized
[INFO] Registry initialized with 0 plugins { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > initialize > should skip disabled plugins
[INFO] Plugin registered: disabled v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin disabled is disabled, skipping initialization { component: 'PluginRegistry' }
[INFO] Registry initialized with 1 plugins { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > initialize > should respect dependency order
[INFO] Plugin registered: child v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin registered: parent v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin initialized: parent { component: 'PluginRegistry' }
[DEBUG] Dependency validated: parent { component: 'PluginRegistry', plugin: 'child' }
[INFO] Plugin initialized: child { component: 'PluginRegistry' }
[INFO] Registry initialized with 2 plugins { component: 'PluginRegistry' }
[INFO] Plugin shutdown: parent { component: 'PluginRegistry' }
[INFO] Plugin shutdown: child { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > initialize > should detect circular dependencies
[INFO] Plugin registered: a v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin registered: b v1.0.0 { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > shutdown > should shutdown all plugins in reverse order
[INFO] Plugin registered: first v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin registered: second v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin initialized: first { component: 'PluginRegistry' }
[INFO] Plugin initialized: second { component: 'PluginRegistry' }
[INFO] Registry initialized with 2 plugins { component: 'PluginRegistry' }
[INFO] Plugin shutdown: second { component: 'PluginRegistry' }
[INFO] Plugin shutdown: first { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > extension points > should collect MCP tools from plugins
[INFO] Plugin registered: tool-plugin v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin initialized: tool-plugin { component: 'PluginRegistry' }
[INFO] Registry initialized with 1 plugins { component: 'PluginRegistry' }
[INFO] Plugin shutdown: tool-plugin { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > health check > should return health status for all plugins
[INFO] Plugin registered: test v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin initialized: test { component: 'PluginRegistry' }
[INFO] Registry initialized with 1 plugins { component: 'PluginRegistry' }
[INFO] Plugin shutdown: test { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > health check > should report unhealthy for uninitialized plugins
[INFO] Plugin registered: test v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin test is disabled, skipping initialization { component: 'PluginRegistry' }
[INFO] Registry initialized with 1 plugins { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > PluginRegistry > stats > should return accurate statistics
[INFO] Plugin registered: p1 v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin registered: p2 v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin initialized: p1 { component: 'PluginRegistry' }
[INFO] Plugin initialized: p2 { component: 'PluginRegistry' }
[INFO] Registry initialized with 2 plugins { component: 'PluginRegistry' }
[INFO] Plugin shutdown: p2 { component: 'PluginRegistry' }
[INFO] Plugin shutdown: p1 { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > BasePlugin > should properly manage lifecycle state
[INFO] Plugin registered: lifecycle-test v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin initialized: lifecycle-test { component: 'PluginRegistry' }
[INFO] Registry initialized with 1 plugins { component: 'PluginRegistry' }
[INFO] Plugin shutdown: lifecycle-test { component: 'PluginRegistry' }

stdout | v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts > BasePlugin > should provide accurate health checks
[INFO] Plugin registered: health-test v1.0.0 { component: 'PluginRegistry' }
[INFO] Plugin initialized: health-test { component: 'PluginRegistry' }
[INFO] Registry initialized with 1 plugins { component: 'PluginRegistry' }

 ✓ v3/@claude-flow/plugins/__tests__/plugin-registry.test.ts  (22 tests) 15ms
 ❯ archive/v2/tests/unit/api/claude-client-errors.test.ts  (0 test)
 ❯ archive/v2/src/swarm/optimizations/__tests__/optimization.test.ts  (0 test)
 ✓ v3/@claude-flow/security/__tests__/path-validator.test.ts  (38 tests) 34ms
 ✓ v3/@claude-flow/shared/__tests__/hooks/file-organization.test.ts  (43 tests) 11ms
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/plugin.test.ts  (57 tests) 27ms
 ❯ v3/@claude-flow/security/__tests__/unit/password-hasher.test.ts  (20 tests | 1 failed) 20ms
   ❯ v3/@claude-flow/security/__tests__/unit/password-hasher.test.ts > PasswordHasher > hash > should generate salt before hashing
     → Invalid Chai property: toHaveBeenCalledBefore
 ❯ archive/v2/tests/unit/mcp/tools.test.ts  (0 test)
 ❯ archive/v2/tests/integration/hive-mind-schema.test.js  (0 test)
 ✓ v3/@claude-flow/plugins/__tests__/sdk.test.ts  (18 tests) 8ms
 ✓ v3/@claude-flow/security/__tests__/safe-executor.test.ts  (40 tests) 224ms
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/federation-budget.test.ts  (41 tests) 12ms
 ✓ v3/@claude-flow/shared/__tests__/hooks/bash-safety.test.ts  (34 tests) 15ms
 ❯ archive/v2/tests/unit/performance.test.js  (0 test)
 ❯ archive/v2/tests/unit/cli/commands/init/init-core.test.js  (0 test)
 ✓ v3/@claude-flow/embeddings/__tests__/embeddings.test.ts  (33 tests) 12ms
 ✓ v3/@claude-flow/guidance/tests/ledger.test.ts  (22 tests) 11ms
 ❯ archive/v2/tests/integration/agent-booster.test.js  (0 test)
 ❯ archive/v2/tests/integration/real-metrics.test.js  (0 test)
TAP version 13
 ❯ tests/rvf-migration.test.ts  (0 test)
# Subtest: RvfMigrator
    # Subtest: detectFormat
        # Subtest: detects RVF format by magic bytes
        ok 1 - detects RVF format by magic bytes
          ---
          duration_ms: 9.104125
          type: 'test'
          ...
        # Subtest: detects JSON format
        ok 2 - detects JSON format
          ---
          duration_ms: 2.84675
          type: 'test'
          ...
 ✓ v3/@claude-flow/browser/tests/agent-browser-adapter.test.ts  (27 tests) 10ms
 ✓ v3/@claude-flow/guidance/tests/integration.test.ts  (14 tests) 49ms
 ❯ archive/v2/tests/unit/cli/start/process-ui.test.ts  (0 test)
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/federation-envelope.test.ts  (24 tests) 9ms
 ❯ archive/v2/tests/integration/json-output.test.ts  (0 test)
 ✓ v3/plugins/legal-contracts/tests/bridges.test.ts  (13 tests) 9ms
 ✓ v3/@claude-flow/memory/src/agentdb-backend.test.ts  (21 tests) 42ms
 ✓ v3/@claude-flow/claims/tests/domain.test.ts  (19 tests) 7ms
 ❯ archive/v2/tests/integration/cross-platform-portability.test.js  (0 test)
 ✓ v3/@claude-flow/neural/__tests__/persistence.test.ts  (17 tests) 26ms
 ❯ archive/v2/bin/__tests__/agent.test.js  (0 test)
 ❯ archive/v2/tests/integration/system-integration.test.ts  (0 test)
 ❯ archive/v2/src/cli/simple-commands/__tests__/agent.test.js  (0 test)
TAP version 13
 ❯ v3/@claude-flow/embeddings/__tests__/simple.test.mjs  (0 test)
stdout | v3/@claude-flow/embeddings/__tests__/simple.test.mjs:267:9
All tests completed!

# Subtest: Document Chunking
    # Subtest: chunks text into multiple parts
    ok 1 - chunks text into multiple parts
      ---
      duration_ms: 2.382542
      type: 'test'
      ...
    # Subtest: respects max chunk size
    ok 2 - respects max chunk size
      ---
      duration_ms: 0.43675
      type: 'test'
      ...
    # Subtest: estimates tokens correctly
    ok 3 - estimates tokens correctly
      ---
      duration_ms: 0.117709
      type: 'test'
      ...
    # Subtest: returns original text for short input
    ok 4 - returns original text for short input
      ---
      duration_ms: 0.097833
      type: 'test'
      ...
    1..4
ok 1 - Document Chunking
  ---
  duration_ms: 3.753583
  type: 'suite'
  ...
# Subtest: Normalization
    # Subtest: L2 normalize creates unit vector
    ok 1 - L2 normalize creates unit vector
      ---
      duration_ms: 0.294709
      type: 'test'
      ...
    # Subtest: L2 normalize: [3,4,0] -> [0.6, 0.8, 0]
    ok 2 - L2 normalize: [3,4,0] -> [0.6, 0.8, 0]
      ---
      duration_ms: 0.081417
      type: 'test'
      ...
    # Subtest: L1 normalize: sum of absolute values = 1
    ok 3 - L1 normalize: sum of absolute values = 1
      ---
      duration_ms: 0.1915
      type: 'test'
      ...
    # Subtest: minMax normalize: values in [0, 1]
    ok 4 - minMax normalize: values in [0, 1]
      ---
      duration_ms: 0.359333
      type: 'test'
      ...
    # Subtest: zScore normalize: mean ≈ 0
    ok 5 - zScore normalize: mean ≈ 0
      ---
      duration_ms: 0.241833
      type: 'test'
      ...
    # Subtest: isNormalized detects normalized vectors
    ok 6 - isNormalized detects normalized vectors
      ---
      duration_ms: 0.264083
      type: 'test'
      ...
    1..6
ok 2 - Normalization
  ---
  duration_ms: 1.726375
  type: 'suite'
  ...
# Subtest: Hyperbolic Embeddings
    # Subtest: euclideanToPoincare: origin maps to origin
    ok 1 - euclideanToPoincare: origin maps to origin
      ---
      duration_ms: 0.212625
      type: 'test'
      ...
    # Subtest: euclideanToPoincare: result stays in ball
    ok 2 - euclideanToPoincare: result stays in ball
      ---
      duration_ms: 0.10825
      type: 'test'
      ...
    # Subtest: poincareToEuclidean: round trip
    ok 3 - poincareToEuclidean: round trip
      ---
      duration_ms: 0.110875
      type: 'test'
      ...
    # Subtest: hyperbolicDistance: self = 0
    ok 4 - hyperbolicDistance: self = 0
      ---
      duration_ms: 0.118208
      type: 'test'
      ...
    # Subtest: hyperbolicDistance: symmetry
    ok 5 - hyperbolicDistance: symmetry
      ---
      duration_ms: 0.080541
      type: 'test'
      ...
    # Subtest: mobiusAdd: identity element
    ok 6 - mobiusAdd: identity element
      ---
      duration_ms: 0.125958
      type: 'test'
      ...
    # Subtest: isInPoincareBall: points inside/outside
    ok 7 - isInPoincareBall: points inside/outside
      ---
      duration_ms: 0.062375
      type: 'test'
      ...
    # Subtest: batchEuclideanToPoincare: converts multiple
    ok 8 - batchEuclideanToPoincare: converts multiple
      ---
      duration_ms: 0.15475
      type: 'test'
      ...
    1..8
ok 3 - Hyperbolic Embeddings
  ---
  duration_ms: 1.127708
  type: 'suite'
  ...
# Subtest: Similarity Functions
    # Subtest: cosine similarity: identical vectors = 1
    ok 1 - cosine similarity: identical vectors = 1
      ---
      duration_ms: 0.148083
      type: 'test'
      ...
    # Subtest: cosine similarity: orthogonal vectors = 0
    ok 2 - cosine similarity: orthogonal vectors = 0
      ---
      duration_ms: 0.055208
      type: 'test'
      ...
    # Subtest: euclidean distance: same vectors = 0
    ok 3 - euclidean distance: same vectors = 0
      ---
      duration_ms: 0.075208
      type: 'test'
      ...
    # Subtest: euclidean distance: orthogonal unit vectors
    ok 4 - euclidean distance: orthogonal unit vectors
      ---
      duration_ms: 0.058041
      type: 'test'
      ...
    # Subtest: dot product: orthogonal = 0
    ok 5 - dot product: orthogonal = 0
      ---
      duration_ms: 0.069834
      type: 'test'
      ...
    # Subtest: dot product: same unit vector = 1
    ok 6 - dot product: same unit vector = 1
      ---
      duration_ms: 0.053291
      type: 'test'
      ...
    1..6
ok 4 - Similarity Functions
  ---
  duration_ms: 0.567167
  type: 'suite'
  ...
# Subtest: MockEmbeddingService
    # Subtest: generates embeddings with correct dimensions
    ok 1 - generates embeddings with correct dimensions
      ---
      duration_ms: 0.619583
      type: 'test'
      ...
    # Subtest: generates deterministic embeddings for same text
    ok 2 - generates deterministic embeddings for same text
      ---
      duration_ms: 0.928375
      type: 'test'
      ...
    # Subtest: generates different embeddings for different text
    ok 3 - generates different embeddings for different text
      ---
      duration_ms: 0.432834
      type: 'test'
      ...
    # Subtest: caches results
    ok 4 - caches results
      ---
      duration_ms: 0.232584
      type: 'test'
      ...
    # Subtest: batch embedding works correctly
    ok 5 - batch embedding works correctly
      ---
      duration_ms: 0.583834
      type: 'test'
      ...
    1..5
ok 5 - MockEmbeddingService
  ---
  duration_ms: 2.902916
  type: 'suite'
  ...
 ✓ v3/plugins/financial-risk/tests/bridges.test.ts  (28 tests) 32ms
 ✓ v3/@claude-flow/claims/tests/federated-event-store.test.ts  (10 tests) 8ms
 ❯ archive/v2/tests/integration/ui-display-fixes.test.ts  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/encryption-vault.test.ts  (45 tests) 14ms
 ✓ v3/@claude-flow/browser/tests/memory-integration.test.ts  (16 tests) 11ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/mesh-service.test.ts  (13 tests) 8ms
 ✓ v3/@claude-flow/cli/__tests__/memory-db-encryption.test.ts  (9 tests) 19ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/telemetry-service.test.ts  (13 tests) 11ms
 ❯ archive/v2/src/swarm/__tests__/integration.test.ts  (0 test)
 ❯ archive/v2/tests/integration/sdk-integration.test.ts  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/server/api/__tests__/conversations-id.spec.ts  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/utils/messageUpdates.spec.ts  (0 test)
 ✓ v3/@claude-flow/memory/src/smart-retrieval.test.ts  (11 tests) 6ms
 ✓ v3/@claude-flow/guidance/tests/gates.test.ts  (32 tests) 9ms
 ✓ v3/plugins/code-intelligence/tests/bridges.test.ts  (19 tests) 18ms
 ✓ v3/@claude-flow/claims/tests/hlc.test.ts  (16 tests) 7ms
 ❯ archive/v2/tests/unit/cli/commands/init/templates.test.ts  (0 test)
 ❯ v3/@claude-flow/cli/__tests__/pq-validation.test.ts  (0 test)
 ✓ v3/@claude-flow/browser/tests/workflow-templates.test.ts  (25 tests) 15ms
 ❯ archive/v2/src/cli/__tests__/utils.test.js  (0 test)
 ✓ v3/@claude-flow/browser/tests/reasoningbank-adapter.test.ts  (12 tests) 6ms
stdout | v3/@claude-flow/browser/tests/reasoningbank-adapter.test.ts > ReasoningBankAdapter > verdict recording > should record verdict for trajectory
[ReasoningBank] Verdict for traj-3: SUCCESS - Works great

 ❯ archive/v2/tests/integration/reasoningbank-integration.test.js  (0 test)
 ✓ v3/@claude-flow/integration/src/__tests__/agent-adapter.test.ts  (15 tests) 570ms
 ❯ archive/v2/tests/integration/error-handling-patterns.test.js  (0 test)
 ✓ v3/@claude-flow/guidance/tests/optimizer.test.ts  (9 tests) 12ms
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/trust-level.test.ts  (31 tests) 8ms
 ✓ v3/@claude-flow/cli/__tests__/session-encryption.test.ts  (7 tests) 16ms
stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > storePattern > should update existing pattern if duplicate detected
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

 ✓ v3/@claude-flow/cli/__tests__/ruvllm-tools.test.ts  (12 tests) 32ms
 ✓ v3/@claude-flow/browser/tests/security-integration.test.ts  (30 tests) 14ms
 ↓ v3/@claude-flow/plugin-iot-cognitum/__tests__/integration/seed-client-raw.test.ts  (12 tests | 12 skipped)
 ❯ v3/@claude-flow/cli/__tests__/router-bandit.test.ts  (6 tests | 6 failed) 8ms
   ❯ v3/@claude-flow/cli/__tests__/router-bandit.test.ts > ModelRouter — Thompson sampling bandit (#1772) > starts with uniform Beta(1,1) priors on every model
     → process.chdir() is not supported in workers
     → process.chdir() is not supported in workers
   ❯ v3/@claude-flow/cli/__tests__/router-bandit.test.ts > ModelRouter — Thompson sampling bandit (#1772) > updates priors via cost-adjusted Bernoulli on recordOutcome
     → process.chdir() is not supported in workers
     → process.chdir() is not supported in workers
   ❯ v3/@claude-flow/cli/__tests__/router-bandit.test.ts > ModelRouter — Thompson sampling bandit (#1772) > escalation gives partial credit to Sonnet, zero to Haiku/Opus
     → process.chdir() is not supported in workers
     → process.chdir() is not supported in workers
   ❯ v3/@claude-flow/cli/__tests__/router-bandit.test.ts > ModelRouter — Thompson sampling bandit (#1772) > persists and reloads priors across router instances
     → process.chdir() is not supported in workers
     → process.chdir() is not supported in workers
   ❯ v3/@claude-flow/cli/__tests__/router-bandit.test.ts > ModelRouter — Thompson sampling bandit (#1772) > converges toward Haiku on a low-complexity workload (~50 trials)
     → process.chdir() is not supported in workers
     → process.chdir() is not supported in workers
   ❯ v3/@claude-flow/cli/__tests__/router-bandit.test.ts > ModelRouter — Thompson sampling bandit (#1772) > does not lock in early — bandit explores enough to recover from a bad initial draw
     → process.chdir() is not supported in workers
     → process.chdir() is not supported in workers
 ✓ v3/@claude-flow/cli/__tests__/terminal-encryption.test.ts  (7 tests) 19ms
 ❯ ruflo/src/ruvocal/src/lib/server/api/__tests__/conversations.spec.ts  (0 test)
 ↓ v3/@claude-flow/cli/__tests__/ruvllm-integration.test.ts  (11 tests | 11 skipped)
 ✓ v3/@claude-flow/security/__tests__/unit/credential-generator.test.ts  (23 tests) 11ms
 ✓ v3/@claude-flow/shared/__tests__/hooks/task-hooks.test.ts  (16 tests) 6ms
 ❯ archive/v2/src/cli/__tests__/command-registry.test.js  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/server/api/__tests__/user.spec.ts  (0 test)
 ✓ v3/@claude-flow/embeddings/__tests__/utils.test.ts  (21 tests) 9ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/witness-verification-service.test.ts  (11 tests) 8ms
 ✓ v3/@claude-flow/guidance/tests/compiler.test.ts  (11 tests) 13ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/anomaly-detection-service.test.ts  (14 tests) 7ms
 ❯ archive/v2/tests/unit/cli/commands/task-parsing.test.js  (0 test)
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/fleet-topology-service.test.ts  (16 tests) 9ms
 ✓ v3/@claude-flow/integration/src/__tests__/token-optimizer.test.ts  (16 tests) 279ms
 ❯ archive/v2/src/cli/__tests__/simple-cli.test.js  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.spec.ts  (0 test)
 ✓ ruflo/src/ruvocal/src/lib/server/mcp/clientPool.spec.ts  (8 tests) 7ms
 ❯ v3/@claude-flow/performance/__tests__/benchmarks.test.ts  (52 tests | 1 failed) 24409ms
   ❯ v3/@claude-flow/performance/__tests__/benchmarks.test.ts > quickValidation() > should return true if meets targets
     → expected true to be false // Object.is equality
stdout | v3/@claude-flow/performance/__tests__/benchmarks.test.ts > quickValidation() > should run quick validation
V3 Performance Target Validation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target Range:    2.49x - 7.47x
Actual Speedup:  0.98x
Meets Minimum:   NO ✗
Within Range:    YES ✓

stdout | v3/@claude-flow/performance/__tests__/benchmarks.test.ts > quickValidation() > should return true if meets targets
V3 Performance Target Validation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Target Range:    2.49x - 7.47x
Actual Speedup:  2.92x
Meets Minimum:   YES ✓
Within Range:    YES ✓

 ❯ ruflo/src/ruvocal/src/lib/server/api/__tests__/conversations-message.spec.ts  (0 test)
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/sona-integration-service.test.ts  (12 tests) 9ms
 ❯ archive/v2/examples/05-swarm-apps/swarm-sample/notes.test.js  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/wasm-agent-tools.test.ts  (13 tests) 9ms
 ✓ v3/@claude-flow/guidance/tests/retriever.test.ts  (17 tests) 36ms
TAP version 13
 ❯ v3/__tests__/appliance/rvfa-builder.test.ts  (0 test)
# Subtest: RvfaBuilder
    # Subtest: creates a valid RVFA for cloud profile
    ok 1 - creates a valid RVFA for cloud profile
      ---
      duration_ms: 652.587042
      type: 'test'
      ...
    # Subtest: creates a valid RVFA for hybrid profile
    ok 2 - creates a valid RVFA for hybrid profile
      ---
      duration_ms: 413.786209
      type: 'test'
      ...
    # Subtest: creates a valid RVFA for offline profile
    ok 3 - creates a valid RVFA for offline profile
      ---
      duration_ms: 535.527709
      type: 'test'
      ...
    # Subtest: output file is readable by RvfaReader
    ok 4 - output file is readable by RvfaReader
      ---
      duration_ms: 573.929333
      type: 'test'
      ...
    # Subtest: all expected sections present in result
    ok 5 - all expected sections present in result
      ---
      duration_ms: 489.169834
      type: 'test'
      ...
    # Subtest: section checksums validate
    ok 6 - section checksums validate
      ---
      duration_ms: 470.218
      type: 'test'
      ...
    # Subtest: duration is tracked
    ok 7 - duration is tracked
      ---
      duration_ms: 495.2475
      type: 'test'
      ...
    # Subtest: each section has originalSize > 0
    ok 8 - each section has originalSize > 0
      ---
      duration_ms: 624.454083
      type: 'test'
      ...
    1..8
ok 1 - RvfaBuilder
  ---
  duration_ms: 4255.993375
  type: 'suite'
  ...
# Subtest: encryptApiKeys / decryptApiKeys
    # Subtest: round-trips correctly
    ok 1 - round-trips correctly
      ---
      duration_ms: 95.1175
      type: 'test'
      ...
    # Subtest: decryption fails with wrong passphrase
    ok 2 - decryption fails with wrong passphrase
      ---
      duration_ms: 91.354042
      type: 'test'
      ...
    # Subtest: handles empty .env
    ok 3 - handles empty .env
      ---
      duration_ms: 90.952167
      type: 'test'
      ...
    # Subtest: handles multiline .env with comments and quoted values
    ok 4 - handles multiline .env with comments and quoted values
      ---
      duration_ms: 123.391875
      type: 'test'
      ...
    # Subtest: produces different ciphertext for same input (random salt/IV)
    ok 5 - produces different ciphertext for same input (random salt/IV)
      ---
      duration_ms: 109.269458
      type: 'test'
      ...
    # Subtest: rejects truncated encrypted payload
    ok 6 - rejects truncated encrypted payload
      ---
      duration_ms: 49.7045
      type: 'test'
      ...
    # Subtest: skips comment lines and empty lines
    ok 7 - skips comment lines and empty lines
      ---
      duration_ms: 91.559875
      type: 'test'
      ...
    1..7
ok 2 - encryptApiKeys / decryptApiKeys
  ---
  duration_ms: 651.914292
  type: 'suite'
  ...
 ❯ archive/v2/examples/05-swarm-apps/rest-api/tests/products.test.js  (0 test)
 ❯ archive/v2/tests/unit/ui/csv-export.test.ts  (0 test)
 ✓ v3/@claude-flow/aidefence/__tests__/threat-detection.test.ts  (16 tests) 9ms
 ❯ archive/v2/tests/unit/core/event-bus.test.ts  (0 test)
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/agentdb-telemetry-repository.test.ts  (9 tests) 11ms
 ❯ archive/v2/tests/integration/portability-fixes.test.js  (0 test)
 ✓ v3/@claude-flow/security/__tests__/password-hasher.test.ts  (32 tests) 7828ms
 ❯ archive/v2/tests/unit/mcp/server.test.ts  (0 test)
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/anomaly-injection.test.ts  (10 tests) 9ms

RuFlo Doctor
System diagnostics and health check
──────────────────────────────────────────────────


... Running health checks in parallel...
                                              
⚠ Encryption at Rest: Off — session/terminal/memory stores are plaintext (mode 0600 only)

──────────────────────────────────────────────────

Summary: 0 passed, 1 warnings

Run with --fix to see 1 suggested command (does not auto-apply)

All checks passed with some warnings.

RuFlo Doctor
System diagnostics and health check
──────────────────────────────────────────────────


... Running health checks in parallel...
                                              
✓ Encryption at Rest: On — key fp:010fff62bd2fdc79… (sessions/=∅ terminals=∅ memory.db=∅)

──────────────────────────────────────────────────

Summary: 1 passed

All checks passed! System is healthy.

RuFlo Doctor
System diagnostics and health check
──────────────────────────────────────────────────


... Running health checks in parallel...
                                              
✗ Encryption at Rest: Gate is on but CLAUDE_FLOW_ENCRYPTION_KEY is unset (fail-closed)

──────────────────────────────────────────────────

Summary: 0 passed, 1 failed

Run with --fix to see 1 suggested command (does not auto-apply)

Some checks failed. Please address the issues above.

RuFlo Doctor
System diagnostics and health check
──────────────────────────────────────────────────


... Running health checks in parallel...
                                              
✗ Encryption at Rest: CLAUDE_FLOW_ENCRYPTION_KEY invalid: Invalid CLAUDE_FLOW_ENCRYPTION_KEY: expected 32-byte key as 64-char hex or 44-char base64

──────────────────────────────────────────────────

Summary: 0 passed, 1 failed

Run with --fix to see 1 suggested command (does not auto-apply)

Some checks failed. Please address the issues above.

RuFlo Doctor
System diagnostics and health check
──────────────────────────────────────────────────


... Running health checks in parallel...
                                              
✓ Encryption at Rest: On — key fp:838ed3c8b6d113d9… (sessions/=∅ terminals=enc memory.db=∅)

──────────────────────────────────────────────────

Summary: 1 passed

All checks passed! System is healthy.
 ✓ v3/@claude-flow/cli/__tests__/doctor-encryption.test.ts  (5 tests) 12ms
 ❯ v3/@claude-flow/cli/__tests__/sona-embeddings-validation.test.ts  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/github-tools-injection.test.ts  (15 tests) 5ms
 ❯ archive/v2/tests/hive-mind-sigint.test.js  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/agentdb-delete-tools.test.ts  (12 tests) 155ms
 ✓ v3/@claude-flow/claims/tests/vector-clock.test.ts  (16 tests) 7ms
 ↓ v3/@claude-flow/browser/tests/e2e/browser-e2e.test.ts  (12 tests | 12 skipped)
 ❯ archive/v2/examples/05-swarm-apps/rest-api/tests/users.test.js  (0 test)
 ↓ v3/@claude-flow/plugin-iot-cognitum/__tests__/integration/sdk-client.test.ts  (12 tests | 12 skipped)
 ❯ archive/v2/tests/integration/functional-portability.test.js  (0 test)
 ✓ v3/@claude-flow/integration/src/__tests__/agentic-flow-agent.test.ts  (11 tests) 236ms
 ❯ archive/v2/tests/cli/init-settings-local.test.js  (0 test)
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/witness-audit-worker.test.ts  (8 tests) 15ms
 ❯ ruflo/src/ruvocal/src/routes/login/callback/updateUser.spec.ts  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/graph-backend.test.ts  (9 tests) 16ms
 ✓ v3/@claude-flow/browser/tests/browser-service.test.ts  (18 tests) 13ms
 ❯ ruflo/src/ruvocal/src/lib/utils/tree/treeHelpers.spec.ts  (0 test)
 ❯ archive/v2/tests/unit/utils/npx-isolated-cache.test.js  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/utils/tree/addChildren.spec.ts  (0 test)
 ✓ v3/@claude-flow/neural/__tests__/self-consistency.test.ts  (9 tests) 7ms
 ✓ v3/@claude-flow/embeddings/src/__tests__/embedding-service.test.ts  (16 tests) 9ms
 ✓ v3/@claude-flow/shared/src/hooks/verify-exports.test.ts  (6 tests) 331ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/firmware-watch-worker.test.ts  (6 tests) 20ms
 ❯ ruflo/src/ruvocal/src/lib/utils/tree/buildSubtree.spec.ts  (0 test)
 ✓ v3/@claude-flow/plugin-agent-federation/__tests__/unit/federation-envelope-claims.test.ts  (7 tests) 3ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/telemetry-ingestion-service.test.ts  (6 tests) 6ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/anomaly-scan-worker.test.ts  (7 tests) 12ms
 ✓ v3/@claude-flow/cli/__tests__/validate-input-env.test.ts  (19 tests) 6ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/mesh-sync-worker.test.ts  (7 tests) 16ms
 ❯ archive/v2/tests/unit/cli/commands/init/npx-isolation.test.js  (0 test)
 ✓ ruflo/src/ruvocal/src/lib/utils/marked.spec.ts  (13 tests) 32ms
 ✓ v3/@claude-flow/cli/__tests__/fs-secure.test.ts  (8 tests) 157ms
 ✓ v3/@claude-flow/cli/__tests__/neural-package-bridge.test.ts  (6 tests) 115ms
stdout | archive/v2/tests/unit/utils/error-recovery.test.ts > Error Recovery > cleanNpmCache > should return success result
🧹 Cleaning npm cache...
✅ npm cache cleaned

stdout | archive/v2/tests/unit/utils/error-recovery.test.ts > Error Recovery > cleanNpmCache > should return success result
🗑️  Removing npx cache: /Users/cohen/.npm/_npx

 ✓ v3/@claude-flow/hooks/__tests__/statusline/statusline-collision.test.ts  (4 tests) 3763ms
 ❯ archive/v2/tests/unit/cli/swarm-ui-display.test.ts  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/utils/tree/addSibling.spec.ts  (0 test)
stdout | archive/v2/tests/unit/utils/error-recovery.test.ts > Error Recovery > recoverInitErrors > should handle npm cache errors

🚨 Error detected during initialization
   Error: ENOTEMPTY: directory not empty, rmdir '/home/user/.npm/_npx/xxx/node_modules/better-sqlite3'

🔧 Detected npm cache error, attempting recovery...
🧹 Cleaning npm cache...

stdout | archive/v2/tests/unit/utils/error-recovery.test.ts > Error Recovery > recoverInitErrors > should handle npm cache errors
🗑️  Removing npx cache: /Users/cohen/.npm/_npx

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > storePattern > should store multiple different patterns
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

 ❯ ruflo/src/ruvocal/src/lib/server/__tests__/conversation-stop-generating.spec.ts  (0 test)
 ❯ archive/v2/tests/unit/utils/error-recovery.test.ts  (10 tests | 2 failed) 11892ms
   ❯ archive/v2/tests/unit/utils/error-recovery.test.ts > Error Recovery > cleanNpmCache > should return success result
     → Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
   ❯ archive/v2/tests/unit/utils/error-recovery.test.ts > Error Recovery > recoverInitErrors > should handle npm cache errors
     → Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
stdout | archive/v2/tests/unit/utils/error-recovery.test.ts > Error Recovery > recoverInitErrors > should handle non-recoverable errors

🚨 Error detected during initialization
   Error: Unrelated error

 ❯ archive/v2/tests/unit/cli/simple-commands/monitor.test.js  (0 test)
stdout | file:/Users/cohen/Projects/ruflo/archive/v2/benchmark/archive/old-files/hello_world.js:11:9
Hello, World!

stdout | file:/Users/cohen/Projects/ruflo/archive/v2/benchmark/archive/old-files/hello_world.js:12:9
Hello, Claude!

stdout | archive/v2/benchmark/archive/old-files/hello_world.test.js:24:9
Testing helloWorld function:

stdout | test (/Users/cohen/Projects/ruflo/archive/v2/benchmark/archive/old-files/hello_world.test.js:11:17)
✅ Should return "Hello, World!" with no parameters
✅ Should greet by name when provided
✅ Should convert numbers to strings
✅ Should convert boolean to string
✅ Should handle null as string
✅ Should handle undefined as default

stdout | archive/v2/benchmark/archive/old-files/hello_world.test.js:63:9

Testing helloWorldAdvanced function:

stdout | archive/v2/benchmark/archive/old-files/hello_world.test.js:98:9

✨ Test suite completed!

 ❯ archive/v2/benchmark/archive/old-files/hello_world.test.js  (0 test)
 ✓ v3/@claude-flow/cli/__tests__/update-executor-injection.test.ts  (28 tests) 7ms
 ✓ v3/@claude-flow/plugin-iot-cognitum/__tests__/unit/telemetry-ingest-worker.test.ts  (6 tests) 9ms
 ❯ archive/v2/tests/integration/start-command.test.ts  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/utils/template.spec.ts  (0 test)
 ❯ archive/v2/tests/unit/fix-typos-syntax.test.js  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte.test.ts  (0 test)
 ❯ archive/v2/tests/integration/start-compatibility.test.ts  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/migrations/migrations.spec.ts  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/server/api/__tests__/user-reports.spec.ts  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/server/api/__tests__/misc.spec.ts  (0 test)
 ❯ v3/@claude-flow/cli/__tests__/config-loading.test.ts  (0 test)
 ❯ archive/v2/src/tests/validation-consistency.test.ts  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/utils/generationState.spec.ts  (0 test)
 ✓ v3/@claude-flow/embeddings/__tests__/core.test.ts  (7 tests) 5ms
 ✓ v3/@claude-flow/deployment/src/__tests__/release-manager.test.ts  (8 tests) 5ms
 ✓ v3/@claude-flow/cli/__tests__/validate-input-agent-spawn.test.ts  (4 tests) 5ms
 ❯ archive/v2/tests/integration/hook-basic.test.js  (0 test)
 ❯ archive/v2/examples/05-swarm-apps/rest-api/tests/server.test.js  (0 test)
TAP version 13
 ❯ v3/@claude-flow/embeddings/__tests__/minimal.test.mjs  (0 test)
stdout | v3/@claude-flow/embeddings/__tests__/minimal.test.mjs:58:9
Minimal tests completed!

# Subtest: Chunking
    # Subtest: chunks text
    ok 1 - chunks text
      ---
      duration_ms: 2.35325
      type: 'test'
      ...
    # Subtest: estimates tokens
    ok 2 - estimates tokens
      ---
      duration_ms: 0.130125
      type: 'test'
      ...
    1..2
ok 1 - Chunking
  ---
  duration_ms: 3.248416
  type: 'suite'
  ...
# Subtest: Normalization
    # Subtest: L2 normalize
    ok 1 - L2 normalize
      ---
      duration_ms: 0.167708
      type: 'test'
      ...
    # Subtest: isNormalized
    ok 2 - isNormalized
      ---
      duration_ms: 0.181875
      type: 'test'
      ...
    1..2
ok 2 - Normalization
  ---
  duration_ms: 0.455625
  type: 'suite'
  ...
# Subtest: Hyperbolic
    # Subtest: euclideanToPoincare stays in ball
    ok 1 - euclideanToPoincare stays in ball
      ---
      duration_ms: 0.178
      type: 'test'
      ...
    1..1
ok 3 - Hyperbolic
  ---
  duration_ms: 0.24
  type: 'suite'
  ...
 ❯ archive/v2/examples/05-swarm-apps/swarm-created-app/task-manager.test.js  (0 test)
 ❯ archive/v2/examples/user-api/server.test.js  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/utils/toolProgress.spec.ts  (0 test)
 ❯ ruflo/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.spec.ts  (0 test)
 ✓ ruflo/src/ruvocal/src/lib/server/isURLLocal.spec.ts  (8 tests) 237ms
 ✓ v3/@claude-flow/performance/__tests__/benchmark.test.ts  (1 test) 3ms
 ❯ archive/v2/tests/integration/cli-simple.test.js  (0 test)
 ✓ v3/@claude-flow/hooks/__tests__/hooks.test.ts  (3 tests) 3ms
 ✓ v3/@claude-flow/testing/__tests__/framework.test.ts  (3 tests) 3ms
 ❯ archive/v2/tests/cli/environment-handling.test.ts  (0 test)
 ❯ archive/v2/tests/unit/incremental-updates.test.ts  (0 test)
 ✓ ruflo/src/ruvocal/src/lib/utils/tree/isMessageId.spec.ts  (3 tests) 4ms
 ❯ archive/v2/src/migration/tests/migration-system.test.ts  (0 test)
 ❯ archive/v2/bin/__tests__/memory.test.js  (0 test)
 ❯ archive/v2/src/cli/simple-commands/__tests__/memory.test.js  (0 test)
 ❯ archive/v2/bin/__tests__/task.test.js  (0 test)
 ❯ archive/v2/src/cli/simple-commands/__tests__/task.test.js  (0 test)
 ❯ archive/v2/tests/unit/simple-example.test.ts  (0 test)
 ❯ archive/v2/tests/unit/ui/console/analysis-tools.test.js  (0 test)
 ❯ archive/v2/tests/unit/example.test.ts  (0 test)
 ❯ archive/v2/examples/data-pipeline/__tests__/test_main.test.js  (0 test)
 ❯ archive/v2/examples/data-pipeline/__tests__/test_main.test.ts  (0 test)
 ❯ archive/v2/examples/flask-api-sparc/__tests__/test_main.test.ts  (0 test)
stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > storePattern > should store patterns with metadata
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePromptContext > should detect security domain
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePromptContext > should detect testing domain
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > searchPatterns > should return patterns sorted by similarity
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePromptContext > should include relevant learned patterns
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > security checks > should block .env files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > security checks > should block .pem files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > security checks > should block credentials files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > security checks > should block secret files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > security checks > should block password files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > warning checks > should warn about production files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > warning checks > should warn about prod files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > warning checks > should warn about live files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > file type guidance > should provide testing guidance for test files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > searchPatterns > should limit results to k
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > file type guidance > should provide security guidance for auth files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > file type guidance > should provide memory guidance for cache files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > file type guidance > should provide swarm guidance for coordinator files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > searchPatterns > should accept Float32Array as query
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > file type guidance > should provide TypeScript guidance for .ts files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreEditGuidance > should allow normal files without specific guidance
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePostEditFeedback > should detect console.log in non-test files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePostEditFeedback > should not flag console.log in test files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > searchPatterns > should update metrics on search
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePostEditFeedback > should detect TODO/FIXME comments
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePostEditFeedback > should detect any type in TypeScript
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePostEditFeedback > should warn about large files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > generateGuidance > should generate guidance with domain detection
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePostEditFeedback > should detect hardcoded secrets
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePostEditFeedback > should allow clean files
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > dangerous commands > should block rm -rf
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > dangerous commands > should block DROP DATABASE
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > dangerous commands > should block git reset --hard
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > dangerous commands > should block force push
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > risky commands > should warn about npm publish
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > risky commands > should warn about git push
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > risky commands > should warn about kubectl apply
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > helpful commands > should provide guidance for test commands
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > helpful commands > should provide guidance for vitest
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > helpful commands > should provide guidance for build commands
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > helpful commands > should provide guidance for tsc
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generatePreCommandGuidance > should allow safe commands
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateRoutingGuidance > should recommend security-architect for security tasks
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > generateGuidance > should detect security domain
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateRoutingGuidance > should recommend test-architect for testing tasks
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateRoutingGuidance > should include alternatives
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateRoutingGuidance > should include usage instructions
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateStopCheck > should allow stopping when patterns are consolidated
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > generateGuidance > should detect testing domain
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > generateGuidance > should include agent suggestion
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > routeTask > should route security tasks to security-architect
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > routeTask > should route testing tasks to test-architect
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > routeTask > should route performance tasks to performance-engineer
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > routeTask > should provide alternatives
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > routeTask > should default to coder for general tasks
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > recordOutcome > should update pattern quality on success
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > recordOutcome > should update pattern quality on failure
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > recordOutcome > should handle non-existent pattern gracefully
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider > generateStopCheck > should block stopping when too many unconsolidated patterns
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts > GuidanceProvider with default ReasoningBank > should create provider without explicit ReasoningBank
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

 ✓ v3/@claude-flow/hooks/src/__tests__/guidance-provider.test.ts  (47 tests) 119366ms
stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > consolidate > should prune old low-quality patterns
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > consolidate > should return consolidation stats
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > exportPatterns / importPatterns > should export all patterns
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > exportPatterns / importPatterns > should import patterns
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > exportPatterns / importPatterns > should not import duplicate patterns
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > getStats > should return accurate statistics
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > events > should emit pattern:stored event
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > events > should emit outcome:recorded event
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

stdout | v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts > ReasoningBank > events > should emit consolidated event
[ReasoningBank] Initialized with AgentDB + HNSW (M=16, efConstruction=200)

 ✓ v3/@claude-flow/hooks/src/__tests__/reasoningbank.test.ts  (31 tests) 130904ms

 Test Files  174 failed | 237 passed | 4 skipped (415)
      Tests  179 failed | 8974 passed | 118 skipped (9271)
   Start at  09:54:27
   Duration  147.29s (transform 30.81s, setup 20ms, collect 24.67s, tests 362.84s, environment 60ms, prepare 25.95s)

 FAIL  Tests failed. Watching for file changes...
       press h to show help, press q to quit
 ELIFECYCLE  Test failed. See above for more details. against unbuilt sources, so dynamic imports of sibling
   workspace packages couldn't resolve to dist/. Add a recursive build
   step before tests in the v3-ci.yml test job — same pattern the
   witness-verify job already uses.

3. guidance-provider + reasoningbank (12 fails) — Test timed out in
   15000ms / Hook timed out in 10000ms. CI cold-loads HuggingFace
   models and ONNX runtimes that take 5-20s on first call. Bump
   testTimeout + hookTimeout from 10s → 30s in v3 vitest.config.ts;
   local cached runs still finish sub-second.

Total: ~19 of remaining ~61 failing tests addressed.

Still open (real test-vs-impl drift, not environmental — separate
investigation):
  - memory-integration: persistence assertion (expected undefined to be defined)
  - swarm-integration: 6 vs 2 agent count, agent-crash recovery
  - workflow-integration: 'completed' vs 'paused' state, composition

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-09 09:58:27 -04:00
..