From 52cdfe47b801ba238a18b8992fb15c668c5b6567 Mon Sep 17 00:00:00 2001 From: marvinpoo Date: Sun, 10 May 2026 21:57:55 +0200 Subject: [PATCH] ai fix-03 --- Dockerfile | 1 + SKILL.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/app.js | 1 + 3 files changed, 64 insertions(+) create mode 100644 SKILL.md diff --git a/Dockerfile b/Dockerfile index 155365b..1eb81e2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,7 @@ WORKDIR /app ENV NODE_ENV=production COPY --from=dependencies /app/node_modules ./node_modules +COPY SKILL.md ./SKILL.md COPY .idea/SKILL.md ./.idea/SKILL.md COPY public ./public COPY src ./src diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..a033fb2 --- /dev/null +++ b/SKILL.md @@ -0,0 +1,62 @@ +# Dune API Skill For OpenClaw Agents + +Use `https://dune.api.coppnic.cc` as the API base URL. + +Prefer detailed singular datasets for OpenClaw because they contain complete Questlog single-record payloads in `raw`: + +```text +GET /api/item/{id} +GET /api/skill/{id} +GET /api/recipe/{id} +GET /api/placeable/{id} +GET /api/npc/{id} +``` + +Examples: + +```text +GET /api/item/LongRifle_Unique_Poison_03?language=en +GET /api/item/Bloodsack_02?language=en +GET /api/skill/skills_ability_poisonmine?language=en +GET /api/recipe/Bloodsack_2_Recipe?language=en +GET /api/placeable/Atre_Banner_Placeable?language=en +GET /api/npc/bs43q?language=en +GET /api/search?q=poison&datasets=item,skill,recipe&language=en +``` + +Supported languages are `en` and `de`. + +Detailed public datasets: + +```text +item, skill, recipe, placeable, npc +``` + +Plural summary datasets: + +```text +items, skills, recipes, placeables, npcs +``` + +Use singular datasets for complete stats and relationships. Use plural datasets only when a compact Questlog page-summary record is enough. + +Repository guide: + +```text +src/datasets.js Dataset keys, collections, Questlog methods, API allowlists. +src/importer/questlogClient.js Questlog URL building and TRPC response extraction. +src/importer/importer.js Import orchestration, detail fetches, Mongo upserts. +src/db/indexes.js Mongo indexes for summary and singular collections. +src/routes/api.js REST API routes, search, dataset lookup behavior. +src/swagger/openapi.js OpenAPI/Swagger documentation. +src/app.js Express middleware and public top-level routes. +scripts/import.js CLI import entry point. +``` + +Useful checks: + +```text +GET /health +GET /api/datasets +GET /SKILL.md +``` diff --git a/src/app.js b/src/app.js index 2e92bbf..9f8a579 100644 --- a/src/app.js +++ b/src/app.js @@ -10,6 +10,7 @@ const { openApiDocument } = require("./swagger/openapi"); const publicDir = path.join(__dirname, "..", "public"); const skillFilePaths = [ + path.join(__dirname, "..", "SKILL.md"), path.join(publicDir, "SKILL.md"), path.join(__dirname, "SKILL.md"), path.join(__dirname, "..", ".idea", "SKILL.md"),