Aventuras/package.json
Tony Frazier 99258dee6a Add docs-check, the decision-record generator and validator
scripts/docs-check.ts generates docs/README.md and the cross-cutting block in
AGENTS.md from ADR frontmatter, and fails when either is stale. It validates ADR
filenames, frontmatter, MADR headings and the Bad-because line, supersession
chains, DECISION(slug) anchors, docs/ paths named in source, relative links and
their fragments in every Markdown file, and evidence that no ADR links to.
--write regenerates; --strict also fails on warnings.

It runs on Node's own type stripping and needs no new dependency: yaml parses
frontmatter, marked's lexer finds links and headings, git ls-files lists files.
npm scripts: docs:gen and docs:check.

docs/adr-template.md and docs/decision-tags.yml are the template and the tag
vocabulary. tsconfig.json now type-checks scripts/**/*.ts, and vitest runs
scripts/**/*.test.ts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VrXVKz8zBJAvnxa6SKhJtB
2026-10-13 06:11:39 -04:00

135 lines
4.4 KiB
JSON

{
"name": "aventura",
"version": "0.7.12",
"description": "AI-powered adventure and creative writing frontend",
"type": "module",
"imports": {
"#lib/*": "./src/lib/*"
},
"scripts": {
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview",
"prepare": "svelte-kit sync",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"tauri": "tauri",
"test": "vitest run",
"test:watch": "vitest",
"release": "node scripts/release.js",
"fake-provider": "node scripts/fake-provider.mjs",
"docs:gen": "node scripts/docs-check.ts --write",
"docs:check": "node scripts/docs-check.ts",
"lint": "node scripts/pm.js run lint:ts && node scripts/pm.js run lint:rust",
"lint:fix": "node scripts/pm.js run lint:ts:fix && node scripts/pm.js run lint:rust:fix",
"lint:ts": "eslint .",
"lint:ts:fix": "eslint . --fix",
"lint:rust": "cargo fmt --manifest-path src-tauri/Cargo.toml --check && cargo +1.99.0 clippy --manifest-path src-tauri/Cargo.toml --all-targets --all-features -- -D warnings",
"lint:rust:fix": "cargo +1.99.0 clippy --manifest-path src-tauri/Cargo.toml --all-targets --all-features --fix --allow-dirty -- -D warnings && cargo fmt --manifest-path src-tauri/Cargo.toml",
"format": "prettier --write \"**/*.{ts,js,svelte,json,css,html}\""
},
"license": "AGPL-3.0",
"dependencies": {
"@ai-sdk/anthropic": "^4.0.78",
"@ai-sdk/deepseek": "^3.0.63",
"@ai-sdk/google": "^4.0.93",
"@ai-sdk/groq": "^4.0.59",
"@ai-sdk/mistral": "^4.0.62",
"@ai-sdk/openai": "^4.0.91",
"@ai-sdk/openai-compatible": "^3.0.67",
"@ai-sdk/xai": "^5.0.20",
"@codemirror/autocomplete": "^6.20.3",
"@codemirror/lang-liquid": "^6.3.3",
"@codemirror/language": "^6.13.1",
"@codemirror/state": "^6.7.6",
"@codemirror/view": "^6.43.14",
"@lezer/highlight": "^1.2.5",
"@lucide/svelte": "^1.55.0",
"@openrouter/ai-sdk-provider": "^3.1.0",
"@saintno/comfyui-sdk": "0.3.1",
"@tauri-apps/api": "^2.12.3",
"@tauri-apps/plugin-dialog": "^2.8.2",
"@tauri-apps/plugin-fs": "^2.7.0",
"@tauri-apps/plugin-http": "^2.8.2",
"@tauri-apps/plugin-notification": "^2.6.0",
"@tauri-apps/plugin-opener": "^2.7.1",
"@tauri-apps/plugin-process": "^2.4.0",
"@tauri-apps/plugin-sql": "^2.5.0",
"@tauri-apps/plugin-updater": "^2.13.3",
"@tauri-apps/plugin-websocket": "^2.5.0",
"@tutorlatin/svelte-tiny-virtual-list": "^3.0.20",
"ai": "^7.0.137",
"ai-sdk-pollinations": "^0.0.2",
"clsx": "^2.1.1",
"codemirror": "^6.0.2",
"gpt-tokenizer": "^4.0.0",
"harper.js": "^2.10.0",
"html5-qrcode": "^2.3.8",
"jsonrepair": "^3.15.0",
"liquidjs": "^10.30.0",
"marked": "^18.1.0",
"svelte-codemirror-editor": "^2.1.0",
"tailwind-merge": "^3.7.0",
"yaml": "^2.9.1",
"zod": "^4.6.6"
},
"devDependencies": {
"@ai-sdk/provider": "^4.0.26",
"@sveltejs/adapter-static": "^4.0.0",
"@sveltejs/kit": "^3.0.1",
"@sveltejs/vite-plugin-svelte": "^7.3.1",
"@tailwindcss/vite": "^4.3.3",
"@tauri-apps/cli": "^2.12.2",
"@types/json-schema": "^7.0.15",
"@types/node": "^24",
"bits-ui": "^2.19.5",
"eslint": "^10.12.0",
"eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-typescript": "^4.4.5",
"eslint-plugin-boundaries": "^7.2.0",
"eslint-plugin-prettier": "^5.5.6",
"eslint-plugin-svelte": "^3.23.1",
"eslint-plugin-unused-imports": "^4.4.1",
"globals": "^17.13.0",
"jsdom": "^30.1.2",
"lefthook": "^2.2.1",
"prettier": "^3.9.10",
"prettier-plugin-svelte": "^4.1.1",
"prettier-plugin-tailwindcss": "^0.8.1",
"svelte": "^5.57.2",
"svelte-check": "^4.7.6",
"tailwind-variants": "^3.3.0",
"tailwindcss": "^4.3.3",
"typescript": "^6.0.3",
"typescript-eslint": "^8.71.1",
"vaul-svelte": "^1.0.0-next.7",
"vite": "^8.3.4",
"vitest": "^5.0.3"
},
"overrides": {
"@saintno/comfyui-sdk": {
"typescript": "$typescript"
},
"runed": {
"@sveltejs/kit": "$@sveltejs/kit"
}
},
"aube": {
"allowBuilds": {
"esbuild": true,
"lefthook": true,
"unrs-resolver": true
}
},
"devEngines": {
"runtime": {
"name": "node",
"version": "^24.15.0",
"onFail": "error"
}
},
"allowScripts": {
"lefthook@2.2.1": true,
"unrs-resolver@1.12.2": true
}
}