This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AgrarianGameArchive/Scripts/linaai_refresh_knowledge.sh
T
2026-05-24 07:54:37 +00:00

97 lines
2.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
cd "$ROOT"
CACHE_DIR="${LINAAI_KNOWLEDGE_DIR:-Saved/LinaAIKnowledge}"
RAW_DIR="${CACHE_DIR}/vendor/raw"
INTERNAL_DIR="${CACHE_DIR}/internal"
INDEX="${CACHE_DIR}/INDEX.md"
mkdir -p "$RAW_DIR" "$INTERNAL_DIR"
write_line() {
printf '%s\n' "$1" >> "$INDEX"
}
: > "$INDEX"
write_line "# LinaAI Knowledge Cache"
write_line ""
write_line "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
write_line ""
write_line "This directory is ignored by Git. It is a local retrieval/cache area for LinaAI."
write_line "Do not place raw credentials here."
write_line ""
write_line "## Tracked Project Memory"
write_line ""
project_docs=(
"Docs/AI/LinaAIOperatingManual.md"
"Docs/AI/LocalAgentGuardrails.md"
"Docs/AI/LinaAISecretsPolicy.md"
"Docs/AI/LinaAIKnowledgeMap.md"
"Docs/Ops/HANDOFF.md"
"AGRARIAN_DEVELOPMENT_ROADMAP.md"
"Docs/CoreDesignDocument.md"
"Docs/TechnicalDesignDocument.md"
"Docs/SixMonthMvpDefinition.md"
"Docs/MvpSurvivalReadinessCriteria.md"
"Docs/Investor/InvestorDemoAcceptanceGate.md"
"Docs/Art/AgrarianAssetPipeline.md"
"Docs/Terrain/GroundZeroTile.md"
"Docs/World/BiomeAndNaturalResourceGenerationPlan.md"
"Docs/EconomyAndAgrDesignDocument.md"
"Docs/MultiplayerNetworkingDesign.md"
"Docs/PersistenceDesignDocument.md"
)
for doc in "${project_docs[@]}"; do
if [[ -f "$doc" ]]; then
safe_name="$(printf '%s' "$doc" | tr '/ ' '__')"
{
printf '# %s\n\n' "$doc"
grep -E '^(#|##|###) ' "$doc" 2>/dev/null || true
} > "${INTERNAL_DIR}/${safe_name}.headings.md"
write_line "- ${doc} -> ${INTERNAL_DIR}/${safe_name}.headings.md"
else
write_line "- missing: ${doc}"
fi
done
write_line ""
write_line "## Official Vendor Docs"
write_line ""
fetch_doc() {
local name="$1"
local url="$2"
local out="${RAW_DIR}/${name}.html"
if curl -L --fail --retry 2 --connect-timeout 10 --max-time 45 -o "$out" "$url"; then
write_line "- ${name}: ${url} -> ${out}"
else
write_line "- ${name}: ${url} -> fetch failed"
rm -f "$out"
fi
}
fetch_doc "unraid" "https://docs.unraid.net/"
fetch_doc "unreal-engine-5-7" "https://dev.epicgames.com/documentation/en-us/unreal-engine"
fetch_doc "laravel-12" "https://laravel.com/docs/12.x"
fetch_doc "mysql-8-4" "https://dev.mysql.com/doc/refman/8.4/en/"
fetch_doc "gitea" "https://docs.gitea.com/"
fetch_doc "ollama" "https://docs.ollama.com/"
fetch_doc "open-webui" "https://docs.openwebui.com/"
fetch_doc "aider" "https://aider.chat/docs/"
write_line ""
write_line "## Usage"
write_line ""
write_line "- Use this index as evidence that project/vendor docs were refreshed."
write_line "- Use tracked docs as the source of truth for project policy."
write_line "- Treat fetched vendor docs as reference material; verify details before risky edits."
printf 'LinaAI knowledge cache refreshed: %s\n' "$INDEX"