claude-flow-novice 2.18.20 → 2.18.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,9 +25,12 @@ Add `--force` flag for complete reindex:
25
25
  Execute reindex:
26
26
 
27
27
  ```bash
28
+ RUVECTOR_BIN="${HOME}/.local/bin/local-ruvector"
29
+ [ ! -f "$RUVECTOR_BIN" ] && RUVECTOR_BIN="./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector"
30
+
28
31
  # Incremental (default - only changed files)
29
- ./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector index --path . --types rs,ts,js,py,sh,md
32
+ "$RUVECTOR_BIN" index --path . --types rs,ts,js,py,sh,md
30
33
 
31
34
  # Full rebuild (when needed)
32
- # ./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector index --path . --types rs,ts,js,py,sh,md --force
35
+ # "$RUVECTOR_BIN" index --path . --types rs,ts,js,py,sh,md --force
33
36
  ```
@@ -27,5 +27,7 @@ Search your indexed codebase using RuVector. Uses SQLite index for fast lookups.
27
27
  Execute the search:
28
28
 
29
29
  ```bash
30
- ./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector query "{{query}}" --max-results {{#if top}}{{top}}{{else}}10{{/if}}
30
+ RUVECTOR_BIN="${HOME}/.local/bin/local-ruvector"
31
+ [ ! -f "$RUVECTOR_BIN" ] && RUVECTOR_BIN="./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector"
32
+ "$RUVECTOR_BIN" query "{{query}}" --max-results {{#if top}}{{top}}{{else}}10{{/if}}
31
33
  ```
@@ -30,5 +30,7 @@ Quick semantic search through your indexed codebase.
30
30
  Execute search:
31
31
 
32
32
  ```bash
33
- ./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector query "$ARGUMENTS" --max-results 10
33
+ RUVECTOR_BIN="${HOME}/.local/bin/local-ruvector"
34
+ [ ! -f "$RUVECTOR_BIN" ] && RUVECTOR_BIN="./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector"
35
+ "$RUVECTOR_BIN" query "$ARGUMENTS" --max-results 10
34
36
  ```
@@ -1,12 +1,24 @@
1
1
  #!/bin/bash
2
- # SessionStart hook: Build RuVector Rust binary if missing
2
+ # SessionStart hook: Ensure RuVector binary is available (global or local)
3
+ GLOBAL_BINARY="$HOME/.local/bin/local-ruvector"
3
4
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
4
5
  PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
5
6
  RUVECTOR_DIR="$PROJECT_ROOT/.claude/skills/cfn-local-ruvector-accelerator"
6
- BINARY="$RUVECTOR_DIR/target/release/local-ruvector"
7
+ LOCAL_BINARY="$RUVECTOR_DIR/target/release/local-ruvector"
7
8
 
8
- if [ ! -f "$BINARY" ]; then
9
+ # Check global first (preferred)
10
+ if [ -f "$GLOBAL_BINARY" ]; then
11
+ exit 0
12
+ fi
13
+
14
+ # Fall back to local binary
15
+ if [ -f "$LOCAL_BINARY" ]; then
16
+ exit 0
17
+ fi
18
+
19
+ # Build locally if cargo available
20
+ if command -v cargo &>/dev/null && [ -d "$RUVECTOR_DIR" ]; then
9
21
  echo "[cfn-build-ruvector] Building RuVector..."
10
- command -v cargo &>/dev/null && cd "$RUVECTOR_DIR" && cargo build --release --quiet 2>/dev/null
11
- [ -f "$BINARY" ] && echo "[cfn-build-ruvector] Built" || echo "[cfn-build-ruvector] Build skipped"
22
+ cd "$RUVECTOR_DIR" && cargo build --release --quiet 2>/dev/null
23
+ [ -f "$LOCAL_BINARY" ] && echo "[cfn-build-ruvector] Built locally" || echo "[cfn-build-ruvector] Build skipped"
12
24
  fi
@@ -29,8 +29,8 @@ sqlite3 ~/.local/share/ruvector/index_v2.db "SELECT file_path, line_number FROM
29
29
  /codebase-search "authentication middleware pattern"
30
30
  /cfn-ruvector-search "error handling in API routes"
31
31
 
32
- # CLI direct (note: query text is positional, use --max-results not --limit)
33
- ./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector query "user login flow" --max-results 5
32
+ # CLI direct (global install preferred)
33
+ local-ruvector query "user login flow" --max-results 5
34
34
  ```
35
35
 
36
36
  ### Structural Search (V2 - SQL on AST)
@@ -48,6 +48,19 @@ sqlite3 ~/.local/share/ruvector/index_v2.db \
48
48
  "SELECT COUNT(*) FROM entities WHERE project_root = '/path/to/project';"
49
49
  ```
50
50
 
51
+ ## Installation
52
+
53
+ **Global install (recommended for multi-project use):**
54
+ ```bash
55
+ # From claude-flow-novice project
56
+ ./scripts/install-ruvector-global.sh
57
+
58
+ # Verify
59
+ local-ruvector --version
60
+ ```
61
+
62
+ This installs to `~/.local/bin/local-ruvector` for access from any project.
63
+
51
64
  ## Prerequisites
52
65
 
53
66
  **OPENAI_API_KEY is REQUIRED for indexing.** Indexing will fail without a valid key.
@@ -73,7 +86,7 @@ echo $OPENAI_API_KEY # Should show your key (not empty)
73
86
 
74
87
  ```bash
75
88
  # Index a project (first time or full rebuild)
76
- ./target/release/local-ruvector index --path /path/to/project --types rs,ts,py
89
+ local-ruvector index --path /path/to/project --types rs,ts,py
77
90
 
78
91
  # Incremental update (after code changes)
79
92
  /codebase-reindex
@@ -102,7 +115,7 @@ Before implementing changes, ALWAYS query RuVector first:
102
115
  # Find similar patterns (slash command uses --top, CLI uses --max-results)
103
116
  /codebase-search "relevant search terms" --top 5
104
117
  # Or via CLI:
105
- ./local-ruvector query "relevant search terms" --max-results 5
118
+ local-ruvector query "relevant search terms" --max-results 5
106
119
 
107
120
  # Query past errors
108
121
  ./.claude/skills/cfn-ruvector-codebase-index/query-error-patterns.sh --task-description "description"
@@ -15,7 +15,7 @@
15
15
  //! - rs, ts, js, json, md, sh, yaml, yml, txt, config
16
16
  //! - Use --types to specify custom extensions
17
17
  //!
18
- //! ## Excluded Directories (see EXCLUDED_DIRS constant - 52 patterns):
18
+ //! ## Excluded Directories (see EXCLUDED_DIRS constant - 54 patterns):
19
19
  //! - Dependencies: node_modules, vendor, .pnpm, .yarn
20
20
  //! - Build artifacts: target, dist, build, out, .next, .nuxt, .output, .turbo, .parcel-cache
21
21
  //! - VCS: .git, .svn, .hg
@@ -23,7 +23,7 @@
23
23
  //! - Cache: .cache, __pycache__, .pytest_cache, .mypy_cache, .ruff_cache, coverage, .nyc_output
24
24
  //! - Virtual envs: .venv, venv, env
25
25
  //! - IaC: .terraform, .serverless, .aws-sam
26
- //! - Project-specific: .artifacts, .ruvector, .archive, archive
26
+ //! - Project-specific: .artifacts, .ruvector, .archive, archive, .archived, archived
27
27
  //! - Backups/temp: backups, .backups, backup, tmp, .tmp, temp, logs
28
28
  //! - Test artifacts: __snapshots__, __mocks__, playwright-report, test-results
29
29
  //! - Doc builds: _site, .docusaurus, site
@@ -122,6 +122,8 @@ const EXCLUDED_DIRS: &[&str] = &[
122
122
  ".ruvector", // RuVector local index (avoid self-indexing)
123
123
  ".archive", // Archived/deprecated code
124
124
  "archive", // Archive directories
125
+ ".archived", // Archived code (alternate naming)
126
+ "archived", // Archived directories
125
127
 
126
128
  // Backups & generated
127
129
  "backups", // Backup directories
package/CLAUDE.md CHANGED
@@ -54,7 +54,7 @@ Always provide `context_files` when code needs imports from existing files.
54
54
  ```bash
55
55
  # Semantic search
56
56
  /codebase-search "authentication middleware pattern"
57
- ./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector query --pattern "auth"
57
+ local-ruvector query --pattern "auth"
58
58
 
59
59
  # Structural SQL query
60
60
  sqlite3 ~/.local/share/ruvector/index_v2.db "SELECT * FROM refs WHERE target_name = 'MyFunction';"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-flow-novice",
3
- "version": "2.18.20",
3
+ "version": "2.18.22",
4
4
  "description": "Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture\n\nIncludes Local RuVector Accelerator and all CFN skills for complete functionality.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -0,0 +1,48 @@
1
+ #!/bin/bash
2
+ # Install RuVector binary to ~/.local/bin for global access
3
+ # Usage: ./scripts/install-ruvector-global.sh
4
+
5
+ set -euo pipefail
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
9
+ RUVECTOR_DIR="$PROJECT_ROOT/.claude/skills/cfn-local-ruvector-accelerator"
10
+ TARGET_BIN="$HOME/.local/bin/local-ruvector"
11
+
12
+ echo "[ruvector-install] Installing RuVector to ~/.local/bin/"
13
+
14
+ # Ensure ~/.local/bin exists
15
+ mkdir -p "$HOME/.local/bin"
16
+
17
+ # Check if we need to build
18
+ SOURCE_BINARY="$RUVECTOR_DIR/target/release/local-ruvector"
19
+ if [ ! -f "$SOURCE_BINARY" ]; then
20
+ echo "[ruvector-install] Building RuVector from source..."
21
+ if ! command -v cargo &>/dev/null; then
22
+ echo "[ruvector-install] ERROR: cargo not found. Install Rust: https://rustup.rs"
23
+ exit 1
24
+ fi
25
+ cd "$RUVECTOR_DIR"
26
+ cargo build --release
27
+ fi
28
+
29
+ # Copy binary
30
+ if [ -f "$SOURCE_BINARY" ]; then
31
+ cp "$SOURCE_BINARY" "$TARGET_BIN"
32
+ chmod +x "$TARGET_BIN"
33
+ echo "[ruvector-install] Installed: $TARGET_BIN"
34
+ echo "[ruvector-install] Version: $($TARGET_BIN --version 2>/dev/null || echo 'unknown')"
35
+ else
36
+ echo "[ruvector-install] ERROR: Build failed - binary not found"
37
+ exit 1
38
+ fi
39
+
40
+ # Verify PATH
41
+ if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then
42
+ echo ""
43
+ echo "[ruvector-install] WARNING: ~/.local/bin not in PATH"
44
+ echo "Add to your shell profile:"
45
+ echo ' export PATH="$HOME/.local/bin:$PATH"'
46
+ fi
47
+
48
+ echo "[ruvector-install] Done. Run 'local-ruvector --help' to verify."