eharris128_Obsidian-LLM-Plugin/package.json
Evan Harris edd21015c2 Add local E2E suite driving real sandboxed Obsidian (wdio-obsidian-service)
npm run test:e2e builds the plugin, type-checks the specs, stages a clean
copy into test/plugin-dist/, and runs 13 Mocha specs against a real,
sandboxed Obsidian instance (downloaded to .obsidian-cache/ on first run;
~6s wall-clock after that). No API keys or network providers needed.

Coverage: plugin load + command registration + built-in skill seeding,
widget open/focus-or-open/new-chat-always-fresh/per-tab input isolation,
slash menu open/Escape/filtering, chat modal, chats panel, chat details
panel, and the header settings toggle.

Design notes (details in test/README.md):
- The service copies data.json from the plugin dir into test vaults, so
  plugins: ["."] would leak the developer's real API keys. The staging
  script writes a deterministic test data.json instead (rootVaultFolder
  "AI" so built-in skills seed; nothing else).
- Specs read the plugin id from the staged manifest at runtime rather
  than hardcoding it.
- Specs live under test/ with their own tsconfig (root tsconfig now
  excludes test/); OBSIDIAN_APP_VERSION / OBSIDIAN_INSTALLER_VERSION pin
  the Obsidian version under test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 14:16:18 -05:00

43 lines
1.2 KiB
JSON

{
"name": "large-language-models",
"version": "0.23.0",
"description": "Enables access to LLMs via remote providers (OpenAI, Claude, Gemini) and local LLMs via GPT4ALL",
"main": "main.js",
"scripts": {
"dev": "node esbuild.config.mjs",
"build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
"version": "node version-bump.mjs && git add manifest.json versions.json",
"test:e2e": "npm run build && tsc -noEmit -p test && node scripts/stage-plugin.mjs && wdio run ./wdio.conf.mts"
},
"keywords": [],
"author": "Evan Harris, Ryan Mahoney",
"license": "MIT",
"engines": {
"node": ">=24.0.0"
},
"devDependencies": {
"@eslint/js": "10.0.1",
"@types/mocha": "10.0.10",
"@types/node": "25.9.1",
"@wdio/cli": "9.27.2",
"@wdio/local-runner": "9.27.2",
"@wdio/mocha-framework": "9.27.2",
"esbuild": "0.28.0",
"eslint": "10.4.1",
"globals": "17.6.0",
"mocha": "11.7.6",
"obsidian": "1.13.0",
"tslib": "2.8.1",
"tsx": "4.22.4",
"typescript": "6.0.3",
"typescript-eslint": "8.60.1",
"wdio-obsidian-reporter": "3.0.4",
"wdio-obsidian-service": "3.0.4"
},
"dependencies": {
"@anthropic-ai/claude-agent-sdk": "0.3.165",
"@anthropic-ai/sdk": "0.101.0",
"@google/genai": "2.8.0",
"openai": "6.42.0"
}
}