claude-flow-novice 2.19.0 → 2.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/AGENT_LIFECYCLE.md +1 -1
- package/.claude/agents/SHARED_PROTOCOL.md +8 -4
- package/.claude/agents/cfn-dev-team/analysts/analyst.md +4 -4
- package/.claude/agents/cfn-dev-team/analysts/root-cause-analyst.md +4 -4
- package/.claude/agents/cfn-dev-team/architecture/api-designer-persona.md +4 -4
- package/.claude/agents/cfn-dev-team/architecture/base-template-generator.md +4 -4
- package/.claude/agents/cfn-dev-team/architecture/goal-planner.md +4 -4
- package/.claude/agents/cfn-dev-team/architecture/system-architect.md +4 -4
- package/.claude/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +4 -4
- package/.claude/agents/cfn-dev-team/coordinators/handoff-coordinator.md +4 -4
- package/.claude/agents/cfn-dev-team/dev-ops/devops-engineer.md +4 -4
- package/.claude/agents/cfn-dev-team/dev-ops/docker-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/dev-ops/fly-io-specialist.md +2 -2
- package/.claude/agents/cfn-dev-team/dev-ops/github-commit-agent.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/api-gateway-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/backend-developer.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/data/data-engineer.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/database/database-architect.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/database/mem0-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/database/memgraph-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/database/supabase-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/frontend/mobile-dev.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/frontend/ui-designer.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/graphql-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/developers/rust-developer.md +4 -4
- package/.claude/agents/cfn-dev-team/documentation/agent-type-guidelines.md +4 -4
- package/.claude/agents/cfn-dev-team/documentation/api-documentation.md +4 -4
- package/.claude/agents/cfn-dev-team/documentation/pseudocode.md +4 -4
- package/.claude/agents/cfn-dev-team/documentation/specification-agent.md +4 -4
- package/.claude/agents/cfn-dev-team/product-owners/accessibility-advocate-persona.md +4 -4
- package/.claude/agents/cfn-dev-team/product-owners/cto-agent.md +4 -4
- package/.claude/agents/cfn-dev-team/product-owners/power-user-persona.md +4 -4
- package/.claude/agents/cfn-dev-team/product-owners/product-owner.md +4 -4
- package/.claude/agents/cfn-dev-team/reviewers/code-reviewer.md +4 -4
- package/.claude/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +4 -4
- package/.claude/agents/cfn-dev-team/reviewers/quality/cyclomatic-complexity-reducer.md +4 -4
- package/.claude/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +4 -4
- package/.claude/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +4 -4
- package/.claude/agents/cfn-dev-team/reviewers/quality/quality-metrics.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/api-testing-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/contract-tester.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/e2e/playwright-tester.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/integration-tester.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/interaction-tester.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/load-testing-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/mutation-testing-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/playwright-tester.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/test-validation-agent.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/tester.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/unit/tdd-london-unit-swarm.md +4 -4
- package/.claude/agents/cfn-dev-team/testers/validation/validation-production-validator.md +4 -4
- package/.claude/agents/cfn-dev-team/utility/agent-builder.md +7 -7
- package/.claude/agents/cfn-dev-team/utility/memory-leak-specialist.md +4 -4
- package/.claude/agents/cfn-dev-team/utility/researcher.md +4 -4
- package/.claude/agents/cfn-dev-team/utility/z-ai-specialist.md +4 -4
- package/.claude/agents/custom/claude-code-expert.md +1 -1
- package/.claude/agents/project-only-agents/npm-package-specialist.md +1 -1
- package/.claude/cfn-extras/agents/context-curator.md +4 -4
- package/.claude/cfn-extras/agents/custom-agents/cfn-docker-expert.md +4 -4
- package/.claude/cfn-extras/agents/custom-agents/cfn-redis-operations.md +1 -1
- package/.claude/cfn-extras/agents/custom-agents/cfn-system-expert.md +4 -4
- package/.claude/cfn-extras/agents/custom-agents/trigger-dev-expert.md +4 -4
- package/.claude/cfn-extras/agents/deprecated-coordinators/consensus-builder.md +4 -4
- package/.claude/cfn-extras/agents/deprecated-coordinators/multi-sprint-coordinator.md +4 -4
- package/.claude/cfn-extras/agents/docker-team/docker-coordinators/cfn-docker-v3-coordinator.md +1 -1
- package/.claude/cfn-extras/agents/kubernetes-specialist.md +4 -4
- package/.claude/cfn-extras/agents/planner.md +4 -4
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/QUICKSTART.md +1 -1
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/README.md +19 -19
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/SKILL.md +7 -7
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/TDD_COORDINATOR_OVERVIEW.md +3 -3
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/TEST_RESULTS.md +3 -3
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/coordinate-generation.sh +19 -19
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/example-fix-scenario.md +4 -4
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/example-usage.sh +1 -1
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/feedback-logger.sh +5 -5
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/fix-existing-code-v2.sh +2 -2
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/fix-existing-code.sh +10 -10
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/pattern-examples.md +3 -3
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/query-patterns.sh +9 -9
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/tdd-coordinator.sh +8 -8
- package/.claude/cfn-extras/skills/cfn-cerebras-coordinator/test-tdd-coordinator.sh +1 -1
- package/.claude/commands/README.md +1 -1
- package/.claude/commands/cfn-codesearch/cfn-codebase-reindex.md +4 -4
- package/.claude/commands/cfn-codesearch/cfn-codebase-search.md +3 -3
- package/.claude/commands/cfn-codesearch-search.md +3 -3
- package/.claude/commands/cfn-update-search-index.md +2 -2
- package/.claude/hooks/cfn-SessionStart-cfn-build-codesearch.sh +24 -0
- package/.claude/hooks/cfn-bash-search-hook.sh +6 -6
- package/.claude/hooks/cfn-smart-search-hook.sh +15 -15
- package/.claude/hooks/cfn-subagent-stop.sh +9 -9
- package/.claude/hooks/post-commit-codebase-index +14 -14
- package/.claude/skills/bulk-add-codesearch-instructions.sh +2 -2
- package/.claude/skills/cfn-codesearch/AGENT_LIFECYCLE_INTEGRATION.md +1 -1
- package/.claude/skills/cfn-codesearch/SECURITY_FINDINGS_SUMMARY.txt +1 -1
- package/.claude/skills/cfn-codesearch/SECURITY_TESTING_COMPLETION.md +1 -1
- package/.claude/skills/cfn-codesearch/SKILL.md +3 -3
- package/.claude/skills/cfn-codesearch/cfn-integration.sh +2 -2
- package/.claude/skills/cfn-codesearch/docs/EXECUTIVE_SUMMARY.txt +1 -1
- package/.claude/skills/cfn-codesearch/docs/PHASE_4_QUERY_API.md +24 -24
- package/.claude/skills/cfn-codesearch/docs/RUST_AST_EXTRACTOR_IMPLEMENTATION.md +7 -7
- package/.claude/skills/cfn-codesearch/docs/TRANSACTION_MANAGEMENT.md +1 -1
- package/.claude/skills/cfn-codesearch/docs/VALIDATION_FINDINGS.txt +1 -1
- package/.claude/skills/cfn-codesearch/epic-ast-indexer.json +8 -8
- package/.claude/skills/cfn-codesearch/src/cli/cleanup.rs +1 -1
- package/.claude/skills/cfn-codesearch/src/cli/index.rs +5 -5
- package/.claude/skills/cfn-codesearch/src/cli/index_ast.rs +3 -3
- package/.claude/skills/cfn-codesearch/src/cli/init.rs +4 -4
- package/.claude/skills/cfn-codesearch/src/cli/migration.rs +5 -5
- package/.claude/skills/cfn-codesearch/src/cli/reset.rs +5 -5
- package/.claude/skills/cfn-codesearch/src/main.rs +3 -3
- package/.claude/skills/cfn-codesearch/src/migration_v2.rs +1 -1
- package/.claude/skills/cfn-codesearch/src/paths.rs +1 -1
- package/.claude/skills/cfn-codesearch/src/search_engine.rs +3 -3
- package/.claude/skills/cfn-knowledge-base/lib/playbook/SKILL.md +1 -1
- package/.claude/skills/cfn-mdap-context-injection/inject.sh +2 -2
- package/CLAUDE.md +3 -3
- package/package.json +1 -1
- package/readme/feature-status.md +12 -6
- package/.claude/hooks/cfn-SessionStart-cfn-build-ruvector.sh +0 -24
- package/.claude/skills/cfn-codesearch/.claude/hooks/SessionStart-cfn-build-ruvector.sh +0 -13
|
@@ -4,7 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
# Default configuration
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
DB_PATH="${COORDINATION_DB_PATH:-$SCRIPT_DIR/generations.db}"
|
|
7
|
-
|
|
7
|
+
CODESEARCH_INDEX="${CODESEARCH_INDEX_PATH:-./.claude/skills/cfn-codesearch/data}"
|
|
8
8
|
MAX_ATTEMPTS="${MAX_GENERATION_ATTEMPTS:-3}"
|
|
9
9
|
TEST_TIMEOUT="${DEFAULT_TEST_TIMEOUT:-60}"
|
|
10
10
|
MODEL="${CEREBRAS_MODEL:-qwen2.5-coder-32b}"
|
|
@@ -76,7 +76,7 @@ CREATE TABLE IF NOT EXISTS generations (
|
|
|
76
76
|
error_message TEXT,
|
|
77
77
|
attempts INTEGER,
|
|
78
78
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
79
|
-
|
|
79
|
+
codesearch_id TEXT,
|
|
80
80
|
confidence_score REAL,
|
|
81
81
|
performance_ms REAL
|
|
82
82
|
);
|
|
@@ -87,29 +87,29 @@ CREATE INDEX IF NOT EXISTS idx_success ON generations(success);
|
|
|
87
87
|
CREATE INDEX IF NOT EXISTS idx_created_at ON generations(created_at);
|
|
88
88
|
EOF
|
|
89
89
|
|
|
90
|
-
# Function to query successful patterns from
|
|
91
|
-
|
|
90
|
+
# Function to query successful patterns from CodeSearch
|
|
91
|
+
query_codesearch_patterns() {
|
|
92
92
|
local file_ext="${FILE_PATH##*.}"
|
|
93
93
|
local prompt_keywords=$(echo "$PROMPT" | tr '[:upper:]' '[:lower:]' | grep -o '[a-z]\{3,\}' | tr '\n' ' ' | head -c 200)
|
|
94
94
|
|
|
95
|
-
log "Querying
|
|
95
|
+
log "Querying CodeSearch for patterns: file_type=$file_ext, keywords=$prompt_keywords"
|
|
96
96
|
|
|
97
|
-
# Use
|
|
98
|
-
if [[ -f "$
|
|
99
|
-
"$
|
|
97
|
+
# Use CodeSearch search to find similar successful patterns
|
|
98
|
+
if [[ -f "$CODESEARCH_INDEX/search.sh" ]]; then
|
|
99
|
+
"$CODESEARCH_INDEX/search.sh" "$file_ext $prompt_keywords" --top 5 2>/dev/null | \
|
|
100
100
|
jq -r '.[] | select(.success == true) | .prompt' 2>/dev/null | \
|
|
101
101
|
head -3 | \
|
|
102
102
|
sed 's/"/\\"/g' | \
|
|
103
103
|
awk '{printf "\"%s\"\\n", $0}' || \
|
|
104
104
|
echo ""
|
|
105
105
|
else
|
|
106
|
-
log "
|
|
106
|
+
log "CodeSearch not found at $CODESEARCH_INDEX, skipping pattern lookup"
|
|
107
107
|
echo ""
|
|
108
108
|
fi
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
# Function to store generation in
|
|
112
|
-
|
|
111
|
+
# Function to store generation in CodeSearch
|
|
112
|
+
store_in_codesearch() {
|
|
113
113
|
local success="$1"
|
|
114
114
|
local prompt="$2"
|
|
115
115
|
local generated_code="$3"
|
|
@@ -129,10 +129,10 @@ store_in_ruvector() {
|
|
|
129
129
|
EOF
|
|
130
130
|
)
|
|
131
131
|
|
|
132
|
-
# Use
|
|
133
|
-
if [[ -f "$
|
|
132
|
+
# Use CodeSearch to store the pattern
|
|
133
|
+
if [[ -f "$CODESEARCH_INDEX/store.sh" ]]; then
|
|
134
134
|
echo "$prompt" | \
|
|
135
|
-
"$
|
|
135
|
+
"$CODESEARCH_INDEX/store.sh" --metadata "$metadata" --type "prompt_pattern" 2>/dev/null || true
|
|
136
136
|
fi
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -240,8 +240,8 @@ log "File type: ${FILE_PATH##*.}"
|
|
|
240
240
|
# Extract file type
|
|
241
241
|
FILE_TYPE="${FILE_PATH##*.}"
|
|
242
242
|
|
|
243
|
-
# Query
|
|
244
|
-
PATTERNS=$(
|
|
243
|
+
# Query CodeSearch for successful patterns
|
|
244
|
+
PATTERNS=$(query_codesearch_patterns)
|
|
245
245
|
log "Found ${#PATTERNS} pattern examples"
|
|
246
246
|
|
|
247
247
|
# Build enhanced prompt with patterns
|
|
@@ -362,8 +362,8 @@ INSERT INTO generations (
|
|
|
362
362
|
);
|
|
363
363
|
EOF
|
|
364
364
|
|
|
365
|
-
# Store in
|
|
366
|
-
|
|
365
|
+
# Store in CodeSearch for future learning
|
|
366
|
+
store_in_codesearch "$FINAL_SUCCESS" "$PROMPT" "$FINAL_CODE" "$FILE_TYPE"
|
|
367
367
|
|
|
368
368
|
# Final result
|
|
369
369
|
if [[ "$FINAL_SUCCESS" == "true" ]]; then
|
|
@@ -371,7 +371,7 @@ if [[ "$FINAL_SUCCESS" == "true" ]]; then
|
|
|
371
371
|
echo "📁 File: $FILE_PATH"
|
|
372
372
|
echo "🔧 Attempts: $((ATTEMPT - 1))/$MAX_ATTEMPTS"
|
|
373
373
|
echo "📊 Confidence: $(printf '%.1f%%' $(echo "$CONFIDENCE * 100" | bc -l))"
|
|
374
|
-
echo "💾 Pattern stored in
|
|
374
|
+
echo "💾 Pattern stored in CodeSearch"
|
|
375
375
|
else
|
|
376
376
|
echo "❌ Code generation failed after $MAX_ATTEMPTS attempts"
|
|
377
377
|
echo "📁 File: $FILE_PATH"
|
|
@@ -42,7 +42,7 @@ error[E0596]: cannot borrow `self.users` as mutable more than once at a time
|
|
|
42
42
|
```
|
|
43
43
|
🔍 Querying fix patterns for: rs errors - borrow checker
|
|
44
44
|
|
|
45
|
-
📚 Fix patterns from
|
|
45
|
+
📚 Fix patterns from CodeSearch:
|
|
46
46
|
|
|
47
47
|
Pattern 1 (95% success rate):
|
|
48
48
|
// Rust Borrow Checker Fix:
|
|
@@ -165,10 +165,10 @@ test result: ok. 3 passed; 0 failed
|
|
|
165
165
|
--agent-id "$AGENT_ID" \
|
|
166
166
|
--file-path "src/services/user_service.rs" \
|
|
167
167
|
--success true \
|
|
168
|
-
--learnings "Fixed borrow checker using HashMap entry() API pattern from
|
|
168
|
+
--learnings "Fixed borrow checker using HashMap entry() API pattern from CodeSearch. Pattern had 95% success rate."
|
|
169
169
|
```
|
|
170
170
|
|
|
171
|
-
**Stored in
|
|
171
|
+
**Stored in CodeSearch for future:**
|
|
172
172
|
```json
|
|
173
173
|
{
|
|
174
174
|
"type": "code_fix",
|
|
@@ -251,4 +251,4 @@ The system would:
|
|
|
251
251
|
4. Apply fix with proper error handling
|
|
252
252
|
5. Validate with concurrent tests
|
|
253
253
|
|
|
254
|
-
This shows how the Cerebras backend developer can efficiently fix errors by learning from past successful fixes stored in
|
|
254
|
+
This shows how the Cerebras backend developer can efficiently fix errors by learning from past successful fixes stored in CodeSearch, while maintaining TDD discipline.
|
|
@@ -202,5 +202,5 @@ echo "Next steps:"
|
|
|
202
202
|
echo " 1. Review generated tests and implementation"
|
|
203
203
|
echo " 2. Run full test suite"
|
|
204
204
|
echo " 3. Check conversation file in conversations/"
|
|
205
|
-
echo " 4. Query
|
|
205
|
+
echo " 4. Query CodeSearch for learned patterns"
|
|
206
206
|
echo
|
|
@@ -4,7 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
# Feedback logger for learning from generation results
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
DB_PATH="${COORDINATION_DB_PATH:-$SCRIPT_DIR/generations.db}"
|
|
7
|
-
|
|
7
|
+
CODESEARCH_INDEX="${CODESEARCH_INDEX_PATH:-./.claude/skills/cfn-codesearch/data}"
|
|
8
8
|
|
|
9
9
|
# Parse arguments
|
|
10
10
|
GENERATION_ID=""
|
|
@@ -110,7 +110,7 @@ INSERT INTO feedback (
|
|
|
110
110
|
);
|
|
111
111
|
EOF
|
|
112
112
|
|
|
113
|
-
# Extract learnings for
|
|
113
|
+
# Extract learnings for CodeSearch
|
|
114
114
|
extract_learnings() {
|
|
115
115
|
local pattern_type=""
|
|
116
116
|
local tags=""
|
|
@@ -146,8 +146,8 @@ extract_learnings() {
|
|
|
146
146
|
learning_content="Failed generation: $ERROR_MESSAGE"
|
|
147
147
|
fi
|
|
148
148
|
|
|
149
|
-
# Store in
|
|
150
|
-
if [[ -f "$
|
|
149
|
+
# Store in CodeSearch if available
|
|
150
|
+
if [[ -f "$CODESEARCH_INDEX/store.sh" ]]; then
|
|
151
151
|
local metadata=$(cat <<EOF
|
|
152
152
|
{
|
|
153
153
|
"type": "$pattern_type",
|
|
@@ -162,7 +162,7 @@ EOF
|
|
|
162
162
|
)
|
|
163
163
|
|
|
164
164
|
echo "$learning_content" | \
|
|
165
|
-
"$
|
|
165
|
+
"$CODESEARCH_INDEX/store.sh" \
|
|
166
166
|
--metadata "$metadata" \
|
|
167
167
|
--type "$pattern_type" \
|
|
168
168
|
--tags "$tags" \
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Fix existing code with errors using TDD and
|
|
2
|
+
# Fix existing code with errors using TDD and CodeSearch patterns - Version 2
|
|
3
3
|
# Compatible with bash/shell environments
|
|
4
4
|
|
|
5
5
|
# Configuration
|
|
6
6
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
7
7
|
DB_PATH="${COORDINATION_DB_PATH:-$SCRIPT_DIR/generations.db}"
|
|
8
|
-
|
|
8
|
+
CODESEARCH_INDEX="${CODESEARCH_INDEX_PATH:-./.claude/skills/cfn-codesearch/data}"
|
|
9
9
|
|
|
10
10
|
# Parse arguments
|
|
11
11
|
AGENT_ID=""
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
|
-
# Fix existing code with errors using TDD and
|
|
4
|
+
# Fix existing code with errors using TDD and CodeSearch patterns
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
DB_PATH="${COORDINATION_DB_PATH:-$SCRIPT_DIR/generations.db}"
|
|
7
|
-
|
|
7
|
+
CODESEARCH_INDEX="${CODESEARCH_INDEX_PATH:-./.claude/skills/cfn-codesearch/data}"
|
|
8
8
|
|
|
9
9
|
# Parse arguments
|
|
10
10
|
AGENT_ID=""
|
|
@@ -79,16 +79,16 @@ analyze_errors() {
|
|
|
79
79
|
echo "$file_errors"
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
# Step 2: Query fix patterns from
|
|
82
|
+
# Step 2: Query fix patterns from CodeSearch
|
|
83
83
|
query_fix_patterns() {
|
|
84
84
|
local error_pattern="$1"
|
|
85
85
|
local file_type="${FILE_PATH##*.}"
|
|
86
86
|
|
|
87
87
|
log "Querying fix patterns for: $file_type errors - $error_pattern"
|
|
88
88
|
|
|
89
|
-
if [[ -f "$
|
|
89
|
+
if [[ -f "$CODESEARCH_INDEX/search.sh" ]]; then
|
|
90
90
|
# Search for similar fix patterns
|
|
91
|
-
"$
|
|
91
|
+
"$CODESEARCH_INDEX/search.sh" "fix $file_type $error_pattern" --top 5 2>/dev/null | \
|
|
92
92
|
jq -r '.[] | select(.success == true) | .prompt' 2>/dev/null || \
|
|
93
93
|
get_builtin_fix_patterns "$file_type" "$error_pattern"
|
|
94
94
|
else
|
|
@@ -96,7 +96,7 @@ query_fix_patterns() {
|
|
|
96
96
|
fi
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
# Built-in fix patterns when
|
|
99
|
+
# Built-in fix patterns when CodeSearch not available
|
|
100
100
|
get_builtin_fix_patterns() {
|
|
101
101
|
local file_type="$1"
|
|
102
102
|
local error_pattern="$2"
|
|
@@ -439,8 +439,8 @@ INSERT INTO code_fixes (
|
|
|
439
439
|
);
|
|
440
440
|
EOF
|
|
441
441
|
|
|
442
|
-
# Store pattern in
|
|
443
|
-
if [[ -f "$
|
|
442
|
+
# Store pattern in CodeSearch
|
|
443
|
+
if [[ -f "$CODESEARCH_INDEX/store.sh" ]]; then
|
|
444
444
|
local metadata=$(cat <<EOF
|
|
445
445
|
{
|
|
446
446
|
"type": "code_fix",
|
|
@@ -453,7 +453,7 @@ EOF
|
|
|
453
453
|
)
|
|
454
454
|
|
|
455
455
|
echo "$fix_applied" | \
|
|
456
|
-
"$
|
|
456
|
+
"$CODESEARCH_INDEX/store.sh" \
|
|
457
457
|
--metadata "$metadata" \
|
|
458
458
|
--type "code_fix" \
|
|
459
459
|
--tags "fix,${FILE_PATH##*.}" \
|
|
@@ -464,7 +464,7 @@ EOF
|
|
|
464
464
|
}
|
|
465
465
|
|
|
466
466
|
# Main execution
|
|
467
|
-
echo "🔧 Code Fix with Cerebras +
|
|
467
|
+
echo "🔧 Code Fix with Cerebras + CodeSearch"
|
|
468
468
|
echo "==================================="
|
|
469
469
|
echo "File: $FILE_PATH"
|
|
470
470
|
echo "Agent: $AGENT_ID"
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# TDD Pattern Examples - What "Patterns" Means in Practice
|
|
2
2
|
|
|
3
|
-
These are actual examples of patterns that get stored in
|
|
3
|
+
These are actual examples of patterns that get stored in CodeSearch and reused. They're not just code snippets - they're successful approaches with context.
|
|
4
4
|
|
|
5
5
|
## Example 1: Rust API Handler Pattern
|
|
6
6
|
|
|
7
|
-
**Stored in
|
|
7
|
+
**Stored in CodeSearch after successful generation:**
|
|
8
8
|
|
|
9
9
|
```json
|
|
10
10
|
{
|
|
@@ -200,7 +200,7 @@ describe('UserProfile', () => {
|
|
|
200
200
|
|
|
201
201
|
## Example 3: Python Service Layer Pattern
|
|
202
202
|
|
|
203
|
-
**Pattern tracked in
|
|
203
|
+
**Pattern tracked in CodeSearch:**
|
|
204
204
|
```python
|
|
205
205
|
# Successful Pattern: Service Layer with Business Logic
|
|
206
206
|
# Key elements that made this successful:
|
|
@@ -4,7 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
# Configuration
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
DB_PATH="${COORDINATION_DB_PATH:-$SCRIPT_DIR/generations.db}"
|
|
7
|
-
|
|
7
|
+
CODESEARCH_INDEX="${CODESEARCH_INDEX_PATH:-./.claude/skills/cfn-codesearch/data}"
|
|
8
8
|
|
|
9
9
|
# Parse arguments
|
|
10
10
|
FILE_TYPE=""
|
|
@@ -49,24 +49,24 @@ LIMIT $LIMIT;
|
|
|
49
49
|
EOF
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
# Query patterns from
|
|
53
|
-
|
|
52
|
+
# Query patterns from CodeSearch
|
|
53
|
+
query_codesearch_patterns() {
|
|
54
54
|
local query=""
|
|
55
55
|
|
|
56
56
|
[[ -n "$FILE_TYPE" ]] && query="$query $FILE_TYPE"
|
|
57
57
|
[[ -n "$PATTERN" ]] && query="$query $PATTERN"
|
|
58
58
|
|
|
59
59
|
if [[ -z "$query" ]]; then
|
|
60
|
-
echo "No query specified for
|
|
60
|
+
echo "No query specified for CodeSearch search"
|
|
61
61
|
return 1
|
|
62
62
|
fi
|
|
63
63
|
|
|
64
|
-
if [[ -f "$
|
|
65
|
-
echo "Querying
|
|
66
|
-
"$
|
|
67
|
-
echo "
|
|
64
|
+
if [[ -f "$CODESEARCH_INDEX/search.sh" ]]; then
|
|
65
|
+
echo "Querying CodeSearch for: $query"
|
|
66
|
+
"$CODESEARCH_INDEX/search.sh" "$query" --top "$LIMIT" 2>/dev/null || \
|
|
67
|
+
echo "CodeSearch search failed"
|
|
68
68
|
else
|
|
69
|
-
echo "
|
|
69
|
+
echo "CodeSearch not found at $CODESEARCH_INDEX"
|
|
70
70
|
fi
|
|
71
71
|
}
|
|
72
72
|
|
|
@@ -4,7 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
# TDD-driven Cerebras coordinator - Tests first, then implementation
|
|
5
5
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
6
|
DB_PATH="${COORDINATION_DB_PATH:-$SCRIPT_DIR/generations.db}"
|
|
7
|
-
|
|
7
|
+
CODESEARCH_INDEX="${CODESEARCH_INDEX_PATH:-./.claude/skills/cfn-codesearch/data}"
|
|
8
8
|
|
|
9
9
|
# Parse arguments
|
|
10
10
|
AGENT_ID=""
|
|
@@ -87,7 +87,7 @@ detect_test_framework() {
|
|
|
87
87
|
esac
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
# Query TDD patterns from
|
|
90
|
+
# Query TDD patterns from CodeSearch
|
|
91
91
|
query_tdd_patterns() {
|
|
92
92
|
local file_ext="${FILE_PATH##*.}"
|
|
93
93
|
local framework=$(detect_test_framework)
|
|
@@ -95,17 +95,17 @@ query_tdd_patterns() {
|
|
|
95
95
|
log "Querying TDD patterns for: $file_ext with $framework framework"
|
|
96
96
|
|
|
97
97
|
# Search for TDD patterns
|
|
98
|
-
if [[ -f "$
|
|
99
|
-
"$
|
|
98
|
+
if [[ -f "$CODESEARCH_INDEX/search.sh" ]]; then
|
|
99
|
+
"$CODESEARCH_INDEX/search.sh" "TDD test-first $file_ext $framework" --top 3 2>/dev/null | \
|
|
100
100
|
jq -r '.[] | select(.success == true) | .prompt' 2>/dev/null || \
|
|
101
101
|
echo "No TDD patterns found"
|
|
102
102
|
else
|
|
103
|
-
log "
|
|
103
|
+
log "CodeSearch not found, using built-in TDD patterns"
|
|
104
104
|
get_builtin_tdd_patterns "$file_ext" "$framework"
|
|
105
105
|
fi
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
# Built-in TDD patterns when
|
|
108
|
+
# Built-in TDD patterns when CodeSearch is not available
|
|
109
109
|
get_builtin_tdd_patterns() {
|
|
110
110
|
local file_type="$1"
|
|
111
111
|
local framework="$2"
|
|
@@ -609,7 +609,7 @@ refactor_implementation
|
|
|
609
609
|
# Step 7: Store TDD pattern
|
|
610
610
|
echo
|
|
611
611
|
echo "Step 7: Storing TDD pattern for future learning..."
|
|
612
|
-
if [[ -f "$
|
|
612
|
+
if [[ -f "$CODESEARCH_INDEX/store.sh" ]]; then
|
|
613
613
|
metadata=$(cat <<EOF
|
|
614
614
|
{
|
|
615
615
|
"type": "tdd_pattern",
|
|
@@ -622,7 +622,7 @@ if [[ -f "$RUVECTOR_INDEX/store.sh" ]]; then
|
|
|
622
622
|
EOF
|
|
623
623
|
)
|
|
624
624
|
|
|
625
|
-
cat <<EOF | "$
|
|
625
|
+
cat <<EOF | "$CODESEARCH_INDEX/store.sh" --metadata "$metadata" --type "tdd_pattern" 2>/dev/null || true
|
|
626
626
|
TDD Pattern for $FEATURE:
|
|
627
627
|
|
|
628
628
|
Tests written first for $FILE_PATH
|
|
@@ -196,7 +196,7 @@ test_integration_mock() {
|
|
|
196
196
|
log_info "Full integration test requires:"
|
|
197
197
|
log_info " - Valid ZAI_API_KEY"
|
|
198
198
|
log_info " - Test project with runnable tests"
|
|
199
|
-
log_info " -
|
|
199
|
+
log_info " - CodeSearch index (optional)"
|
|
200
200
|
log_info ""
|
|
201
201
|
log_info "Example usage:"
|
|
202
202
|
log_info " $COORDINATOR \\"
|
|
@@ -152,7 +152,7 @@ Need to automate something?
|
|
|
152
152
|
- `/launch-web-dashboard` - Start web portal (http://localhost:3000)
|
|
153
153
|
- `/list-agents-rebuild` - Regenerate agent list from discovery
|
|
154
154
|
|
|
155
|
-
###
|
|
155
|
+
### CodeSearch Integration
|
|
156
156
|
- `/codebase-search` - Semantic search through codebase
|
|
157
157
|
- `/detect-stale-docs` - Find outdated documentation
|
|
158
158
|
- `/codebase-reindex` - Update codebase vector index
|
|
@@ -40,16 +40,16 @@ fi
|
|
|
40
40
|
echo "✅ OpenAI key: ${OPENAI_API_KEY:0:12}..."
|
|
41
41
|
|
|
42
42
|
# --- Setup ---
|
|
43
|
-
|
|
44
|
-
[ ! -f "$
|
|
43
|
+
CODESEARCH_BIN="${HOME}/.local/bin/local-codesearch"
|
|
44
|
+
[ ! -f "$CODESEARCH_BIN" ] && CODESEARCH_BIN="./.claude/skills/cfn-codesearch/target/release/local-codesearch"
|
|
45
45
|
LOG_FILE="/tmp/codesearch-index.log"
|
|
46
46
|
|
|
47
47
|
echo "📝 Logging to: $LOG_FILE"
|
|
48
48
|
echo " Monitor with: tail -f $LOG_FILE"
|
|
49
49
|
|
|
50
50
|
# Incremental (default - only changed files)
|
|
51
|
-
"$
|
|
51
|
+
"$CODESEARCH_BIN" index --path . --types rs,ts,js,py,sh,md 2>&1 | tee "$LOG_FILE"
|
|
52
52
|
|
|
53
53
|
# Full rebuild (when needed)
|
|
54
|
-
# "$
|
|
54
|
+
# "$CODESEARCH_BIN" index --path . --types rs,ts,js,py,sh,md --force 2>&1 | tee "$LOG_FILE"
|
|
55
55
|
```
|
|
@@ -33,9 +33,9 @@ if [[ ! "$OPENAI_API_KEY" =~ ^sk- ]] && [[ -f ".env" ]]; then
|
|
|
33
33
|
fi
|
|
34
34
|
[[ ! "$OPENAI_API_KEY" =~ ^sk- ]] && { echo "❌ OPENAI_API_KEY invalid. Add to .env" >&2; exit 1; }
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
[ ! -f "$
|
|
36
|
+
CODESEARCH_BIN="${HOME}/.local/bin/local-codesearch"
|
|
37
|
+
[ ! -f "$CODESEARCH_BIN" ] && CODESEARCH_BIN="./.claude/skills/cfn-codesearch/target/release/local-codesearch"
|
|
38
38
|
|
|
39
39
|
# Use threshold 0.1 for better results (default 0.3 is too strict)
|
|
40
|
-
"$
|
|
40
|
+
"$CODESEARCH_BIN" query "{{query}}" --max-results {{#if top}}{{top}}{{else}}10{{/if}} --threshold 0.1
|
|
41
41
|
```
|
|
@@ -30,7 +30,7 @@ Quick semantic search through your indexed codebase.
|
|
|
30
30
|
Execute search:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
|
|
34
|
-
[ ! -f "$
|
|
35
|
-
"$
|
|
33
|
+
CODESEARCH_BIN="${HOME}/.local/bin/local-codesearch"
|
|
34
|
+
[ ! -f "$CODESEARCH_BIN" ] && CODESEARCH_BIN="./.claude/skills/cfn-codesearch/target/release/local-codesearch"
|
|
35
|
+
"$CODESEARCH_BIN" query "$ARGUMENTS" --max-results 10
|
|
36
36
|
```
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Update
|
|
2
|
+
description: "Update CodeSearch search index automatically"
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# /update-search-index - Refresh Search Index
|
|
6
6
|
|
|
7
|
-
Updates the
|
|
7
|
+
Updates the CodeSearch semantic search index with recent code changes.
|
|
8
8
|
|
|
9
9
|
## What it does
|
|
10
10
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# SessionStart hook: Ensure CodeSearch binary is available (global or local)
|
|
3
|
+
GLOBAL_BINARY="$HOME/.local/bin/local-codesearch"
|
|
4
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
6
|
+
CODESEARCH_DIR="$PROJECT_ROOT/.claude/skills/cfn-local-codesearch-accelerator"
|
|
7
|
+
LOCAL_BINARY="$CODESEARCH_DIR/target/release/local-codesearch"
|
|
8
|
+
|
|
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 "$CODESEARCH_DIR" ]; then
|
|
21
|
+
echo "[cfn-build-codesearch] Building CodeSearch..."
|
|
22
|
+
cd "$CODESEARCH_DIR" && cargo build --release --quiet 2>/dev/null
|
|
23
|
+
[ -f "$LOCAL_BINARY" ] && echo "[cfn-build-codesearch] Built locally" || echo "[cfn-build-codesearch] Build skipped"
|
|
24
|
+
fi
|
|
@@ -4,7 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
INPUT=$(timeout 1 cat || echo "{}")
|
|
5
5
|
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
|
|
6
6
|
|
|
7
|
-
log() { echo "[$(date '+%H:%M:%S')] $*" >> /tmp/
|
|
7
|
+
log() { echo "[$(date '+%H:%M:%S')] $*" >> /tmp/codesearch-bash-hook.log; }
|
|
8
8
|
|
|
9
9
|
# Load API key from .env if not set
|
|
10
10
|
load_api_key() {
|
|
@@ -49,7 +49,7 @@ if [ -z "$PATTERN" ] || [ ${#PATTERN} -lt 3 ] || [[ "$PATTERN" == -* ]]; then
|
|
|
49
49
|
exit 0
|
|
50
50
|
fi
|
|
51
51
|
|
|
52
|
-
DB_PATH="$HOME/.local/share/
|
|
52
|
+
DB_PATH="$HOME/.local/share/codesearch/index_v2.db"
|
|
53
53
|
PROJECT_ROOT="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
54
54
|
|
|
55
55
|
CONTEXT=""
|
|
@@ -63,18 +63,18 @@ if [ -f "$DB_PATH" ]; then
|
|
|
63
63
|
"SELECT REPLACE(file_path, '$SAFE_ROOT/', ''), line_number, name FROM entities WHERE project_root = '$SAFE_ROOT' AND (name LIKE '%${SAFE_PATTERN}%' OR file_path LIKE '%${SAFE_PATTERN}%') LIMIT 6" 2>/dev/null || true)
|
|
64
64
|
|
|
65
65
|
if [ -n "$RESULTS" ]; then
|
|
66
|
-
CONTEXT="
|
|
66
|
+
CONTEXT="CodeSearch indexed matches for '$PATTERN':\n$RESULTS"
|
|
67
67
|
log "SQL context injected for: $PATTERN"
|
|
68
68
|
fi
|
|
69
69
|
fi
|
|
70
70
|
|
|
71
71
|
# Fallback to semantic search if SQL found nothing
|
|
72
|
-
if [ -z "$CONTEXT" ] && command -v local-
|
|
72
|
+
if [ -z "$CONTEXT" ] && command -v local-codesearch >/dev/null 2>&1; then
|
|
73
73
|
if load_api_key; then
|
|
74
74
|
log "SQL returned nothing, trying semantic search for: $PATTERN"
|
|
75
|
-
SEMANTIC=$(timeout 5 local-
|
|
75
|
+
SEMANTIC=$(timeout 5 local-codesearch query "$PATTERN" --max-results 5 --threshold 0.3 2>/dev/null | sed 's/\x1b\[[0-9;]*m//g' | grep -v "^$" | grep -v "INFO\|ERROR\|WARN" | head -6 || true)
|
|
76
76
|
if [ -n "$SEMANTIC" ]; then
|
|
77
|
-
CONTEXT="
|
|
77
|
+
CONTEXT="CodeSearch semantic matches for '$PATTERN':\n$SEMANTIC"
|
|
78
78
|
log "Semantic context injected for: $PATTERN"
|
|
79
79
|
fi
|
|
80
80
|
fi
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
set -euo pipefail
|
|
3
|
-
exec 2>/tmp/
|
|
3
|
+
exec 2>/tmp/codesearch-search-hook.log
|
|
4
4
|
|
|
5
5
|
INPUT=$(timeout 1 cat || echo "{}")
|
|
6
6
|
TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // empty')
|
|
7
7
|
PATTERN=$(echo "$INPUT" | jq -r '.tool_input.pattern // empty')
|
|
8
8
|
|
|
9
9
|
log() {
|
|
10
|
-
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" >> /tmp/
|
|
10
|
+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" >> /tmp/codesearch-search-hook.log
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
# Load API key from .env if not set
|
|
@@ -68,37 +68,37 @@ $UNCOMMITTED
|
|
|
68
68
|
fi
|
|
69
69
|
fi
|
|
70
70
|
|
|
71
|
-
# Query
|
|
72
|
-
|
|
73
|
-
DB_PATH="$HOME/.local/share/
|
|
71
|
+
# Query CodeSearch V2 SQL first (no API key needed)
|
|
72
|
+
CODESEARCH_RESULTS=""
|
|
73
|
+
DB_PATH="$HOME/.local/share/codesearch/index_v2.db"
|
|
74
74
|
PROJECT_ROOT="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
75
75
|
if [[ -f "$DB_PATH" ]]; then
|
|
76
|
-
log "Querying
|
|
76
|
+
log "Querying CodeSearch SQL for: $PATTERN (project: $PROJECT_ROOT)"
|
|
77
77
|
# Escape pattern for SQL LIKE
|
|
78
78
|
SAFE_PATTERN=$(echo "$PATTERN" | sed "s/'/''/g")
|
|
79
79
|
SAFE_ROOT=$(echo "$PROJECT_ROOT" | sed "s/'/''/g")
|
|
80
|
-
|
|
80
|
+
CODESEARCH_RESULTS=$(timeout 3 sqlite3 -separator ':' "$DB_PATH" \
|
|
81
81
|
"SELECT REPLACE(file_path, '$SAFE_ROOT/', ''), line_number, name FROM entities WHERE project_root = '$SAFE_ROOT' AND (name LIKE '%${SAFE_PATTERN}%' OR file_path LIKE '%${SAFE_PATTERN}%') LIMIT 8" 2>/dev/null | head -10 || true)
|
|
82
|
-
if [[ -n "$
|
|
83
|
-
log "
|
|
84
|
-
CONTEXT="${CONTEXT}
|
|
85
|
-
$
|
|
82
|
+
if [[ -n "$CODESEARCH_RESULTS" ]]; then
|
|
83
|
+
log "CodeSearch SQL returned results"
|
|
84
|
+
CONTEXT="${CONTEXT}CodeSearch indexed matches for '$PATTERN':
|
|
85
|
+
$CODESEARCH_RESULTS
|
|
86
86
|
|
|
87
87
|
"
|
|
88
88
|
fi
|
|
89
89
|
else
|
|
90
|
-
log "
|
|
90
|
+
log "CodeSearch index not found at $DB_PATH"
|
|
91
91
|
fi
|
|
92
92
|
|
|
93
93
|
# Fallback to semantic search if SQL found nothing and API key available
|
|
94
|
-
if [[ -z "$
|
|
94
|
+
if [[ -z "$CODESEARCH_RESULTS" ]] && command -v local-codesearch >/dev/null 2>&1; then
|
|
95
95
|
if load_api_key; then
|
|
96
96
|
log "SQL returned nothing, trying semantic search for: $PATTERN"
|
|
97
97
|
# Strip ANSI codes from output
|
|
98
|
-
SEMANTIC_RESULTS=$(timeout 5 local-
|
|
98
|
+
SEMANTIC_RESULTS=$(timeout 5 local-codesearch query "$PATTERN" --max-results 5 --threshold 0.3 2>/dev/null | sed 's/\x1b\[[0-9;]*m//g' | grep -v "^$" | grep -v "INFO\|ERROR\|WARN" | head -8 || true)
|
|
99
99
|
if [[ -n "$SEMANTIC_RESULTS" ]]; then
|
|
100
100
|
log "Semantic search returned results"
|
|
101
|
-
CONTEXT="${CONTEXT}
|
|
101
|
+
CONTEXT="${CONTEXT}CodeSearch semantic matches for '$PATTERN':
|
|
102
102
|
$SEMANTIC_RESULTS
|
|
103
103
|
|
|
104
104
|
"
|
|
@@ -82,10 +82,10 @@ WHERE id = '$AGENT_ID';
|
|
|
82
82
|
EOF
|
|
83
83
|
|
|
84
84
|
# ========================================================================
|
|
85
|
-
# Feature 3:
|
|
85
|
+
# Feature 3: CodeSearch Transcript Ingestion
|
|
86
86
|
# ========================================================================
|
|
87
87
|
|
|
88
|
-
# Ingest transcript data into
|
|
88
|
+
# Ingest transcript data into CodeSearch for semantic search
|
|
89
89
|
# Determine success flag from agent status/confidence
|
|
90
90
|
AGENT_SUCCESS="true"
|
|
91
91
|
AGENT_CONFIDENCE=$(sqlite3 "$DB_PATH" "SELECT confidence FROM agents WHERE id = '$AGENT_ID';" || echo "0")
|
|
@@ -100,21 +100,21 @@ EOF
|
|
|
100
100
|
AGENT_SUCCESS="false"
|
|
101
101
|
fi
|
|
102
102
|
|
|
103
|
-
# Call
|
|
104
|
-
|
|
105
|
-
if [ -f "$
|
|
106
|
-
"$
|
|
103
|
+
# Call CodeSearch ingestion script (non-blocking, logs errors)
|
|
104
|
+
CODESEARCH_SCRIPT="${PROJECT_ROOT}/.claude/skills/cfn-codesearch/ingest-agent-transcript.sh"
|
|
105
|
+
if [ -f "$CODESEARCH_SCRIPT" ]; then
|
|
106
|
+
"$CODESEARCH_SCRIPT" \
|
|
107
107
|
--transcript "$TRANSCRIPT_ARCHIVE" \
|
|
108
108
|
--agent-id "$AGENT_ID" \
|
|
109
109
|
--agent-type "$AGENT_TYPE" \
|
|
110
110
|
--task-id "$TASK_ID" \
|
|
111
111
|
--success "$AGENT_SUCCESS" \
|
|
112
112
|
>> "$LOG_PATH" 2>&1 || {
|
|
113
|
-
echo "[SubagentStop] Warning:
|
|
113
|
+
echo "[SubagentStop] Warning: CodeSearch ingestion failed for $AGENT_ID" | tee -a "$LOG_PATH"
|
|
114
114
|
}
|
|
115
|
-
echo "[SubagentStop]
|
|
115
|
+
echo "[SubagentStop] CodeSearch ingestion triggered for $AGENT_ID" | tee -a "$LOG_PATH"
|
|
116
116
|
else
|
|
117
|
-
echo "[SubagentStop]
|
|
117
|
+
echo "[SubagentStop] CodeSearch ingestion script not found, skipping" | tee -a "$LOG_PATH"
|
|
118
118
|
fi
|
|
119
119
|
|
|
120
120
|
else
|