Implements Phases 1-8 of the TFTSR implementation plan. Rust backend (Tauri 2.x, src-tauri/): - Multi-provider AI: OpenAI-compatible, Anthropic, Gemini, Mistral, Ollama - PII detection engine: 11 regex patterns with overlap resolution - SQLCipher AES-256 encrypted database with 10 versioned migrations - 28 Tauri IPC commands for triage, analysis, document, and system ops - Ollama: hardware probe, model recommendations, pull/delete with events - RCA and blameless post-mortem Markdown document generators - PDF export via printpdf - Audit log: SHA-256 hash of every external data send - Integration stubs for Confluence, ServiceNow, Azure DevOps (v0.2) Frontend (React 18 + TypeScript + Vite, src/): - 9 pages: full triage workflow NewIssue→LogUpload→Triage→Resolution→RCA→Postmortem→History+Settings - 7 components: ChatWindow, TriageProgress, PiiDiffViewer, DocEditor, HardwareReport, ModelSelector, UI primitives - 3 Zustand stores: session, settings (persisted), history - Type-safe tauriCommands.ts matching Rust backend types exactly - 8 IT domain system prompts (Linux, Windows, Network, K8s, DB, Virt, HW, Obs) DevOps: - .woodpecker/test.yml: rustfmt, clippy, cargo test, tsc, vitest on every push - .woodpecker/release.yml: linux/amd64 + linux/arm64 builds, Gogs release upload Verified: - cargo check: zero errors - tsc --noEmit: zero errors - vitest run: 13/13 unit tests passing Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
74 lines
2.0 KiB
JSON
74 lines
2.0 KiB
JSON
{
|
|
"name": "resq",
|
|
"version": "1.11.0",
|
|
"description": "React Element Selector Query (resq) - Query React components and children by selector (component name)",
|
|
"keywords": [
|
|
"react",
|
|
"selector",
|
|
"resq",
|
|
"rescue",
|
|
"queryselector",
|
|
"query"
|
|
],
|
|
"author": "Baruch Velez <baruchvelez@gmail.com>",
|
|
"license": "MIT",
|
|
"main": "dist/index.js",
|
|
"bugs": {
|
|
"url": "https://github.com/baruchvlz/resq/issues"
|
|
},
|
|
"repository": {
|
|
"url": "https://github.com/baruchvlz/resq"
|
|
},
|
|
"files": [
|
|
"dist/index.js",
|
|
"index.d.ts"
|
|
],
|
|
"devDependencies": {
|
|
"@babel/cli": "7.2.3",
|
|
"@babel/core": "7.4.0",
|
|
"@babel/plugin-transform-runtime": "7.4.0",
|
|
"@babel/preset-env": "7.4.1",
|
|
"@babel/runtime": "^7.4.2",
|
|
"babel-eslint": "10.0.1",
|
|
"babel-jest": "24.5.0",
|
|
"babel-loader": "^8.0.6",
|
|
"codecov": "^3.3.0",
|
|
"eslint": "5.15.3",
|
|
"eslint-plugin-jest": "22.4.1",
|
|
"jest": "24.5.0",
|
|
"npm-run-all": "4.1.5",
|
|
"rimraf": "^2.6.3",
|
|
"webpack": "^4.29.6",
|
|
"webpack-cli": "^3.3.0"
|
|
},
|
|
"scripts": {
|
|
"test": "jest ./tests --verbose --coverage",
|
|
"test:dev": "jest ./tests --coverage --watch",
|
|
"lint": "eslint . --fix",
|
|
"prebuild": "rimraf dist",
|
|
"build": "webpack",
|
|
"prepush": "npm run test --coverage",
|
|
"prepublish": "yarn test && yarn build",
|
|
"commit": "git-cz"
|
|
},
|
|
"jest": {
|
|
"transform": {
|
|
"^.+\\.jsx?$": "babel-jest"
|
|
},
|
|
"testPathIgnorePatterns": [
|
|
"node_modules",
|
|
"dist"
|
|
],
|
|
"coverageThreshold": {
|
|
"global": {
|
|
"branches": 97,
|
|
"functions": 100,
|
|
"lines": 100,
|
|
"statements": 100
|
|
}
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"fast-deep-equal": "^2.0.1"
|
|
}
|
|
} |