v1.10.0 -> v1.11.0: terminal command RAG hook (Roadmap I)
- POST /api/ingest with Bearer token auth, chunk_text, embed, Qdrant upsert - docs/jc-ingest.sh — shell script for PROMPT_COMMAND hook on jarvis - /api/ingest exempted from session middleware (self-authenticating) - 5 tests: missing/wrong key, empty/missing content, success path
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
# jc-ingest.sh — pipe terminal commands into jarvisChat RAG
|
||||
# Deploy to /home/gramps/bin/jc-ingest.sh on jarvis (192.168.50.210)
|
||||
#
|
||||
# Usage:
|
||||
# 1. chmod +x /home/gramps/bin/jc-ingest.sh
|
||||
# 2. Add to ~/.bashrc:
|
||||
# export JARVISCHAT_COMPLETIONS_API_KEY="$(cat /opt/jarvischat/.completions_key)"
|
||||
# export PROMPT_COMMAND="jc_capture"
|
||||
# source /home/gramps/bin/jc-ingest.sh
|
||||
#
|
||||
# The PROMPT_COMMAND hook runs jc_capture() after each command.
|
||||
# Only commands matching the filter pattern are ingested.
|
||||
#
|
||||
# Filter: currently captures git, pip, systemctl, sudo, vi/vim, curl,
|
||||
# wget, apt, python, pytest commands. Edit the grep pattern to adjust.
|
||||
|
||||
JC_URL="http://192.168.50.210:8080/api/ingest"
|
||||
JC_TOKEN="${JARVISCHAT_COMPLETIONS_API_KEY}"
|
||||
|
||||
jc_capture() {
|
||||
local cmd
|
||||
cmd=$(history 1 | sed 's/^[ ]*[0-9]*[ ]*//')
|
||||
if echo "$cmd" | grep -qE '^(git|pip|systemctl|sudo|vi|vim|curl|wget|apt|python|pytest)'; then
|
||||
curl -s -X POST "$JC_URL" \
|
||||
-H "Authorization: Bearer $JC_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"content\": $(echo "$cmd" | python3 -c 'import json,sys; print(json.dumps(sys.stdin.read().strip()))'), \"source\": \"terminal\"}" \
|
||||
> /dev/null 2>&1 &
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user