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>
79 lines
1.7 KiB
JSON
79 lines
1.7 KiB
JSON
{
|
||
"name": "safe-regex2",
|
||
"version": "5.1.0",
|
||
"description": "detect possibly catastrophic, exponential-time regular expressions",
|
||
"main": "index.js",
|
||
"type": "commonjs",
|
||
"types": "types/index.d.ts",
|
||
"bin": {
|
||
"safe-regex2": "bin/safe-regex2.js"
|
||
},
|
||
"dependencies": {
|
||
"ret": "~0.5.0"
|
||
},
|
||
"devDependencies": {
|
||
"c8": "^11.0.0",
|
||
"eslint": "^9.17.0",
|
||
"neostandard": "^0.12.0",
|
||
"tsd": "^0.33.0"
|
||
},
|
||
"scripts": {
|
||
"lint": "eslint",
|
||
"lint:fix": "eslint --fix",
|
||
"test": "npm run test:unit && npm run test:typescript",
|
||
"test:typescript": "tsd",
|
||
"test:unit": "c8 --100 node --test"
|
||
},
|
||
"repository": {
|
||
"type": "git",
|
||
"url": "git://github.com/fastify/safe-regex2.git"
|
||
},
|
||
"bugs": {
|
||
"url": "https://github.com/fastify/safe-regex2/issues"
|
||
},
|
||
"homepage": "https://github.com/fastify/safe-regex2",
|
||
"funding": [
|
||
{
|
||
"type": "github",
|
||
"url": "https://github.com/sponsors/fastify"
|
||
},
|
||
{
|
||
"type": "opencollective",
|
||
"url": "https://opencollective.com/fastify"
|
||
}
|
||
],
|
||
"keywords": [
|
||
"catastrophic",
|
||
"exponential",
|
||
"regex",
|
||
"safe",
|
||
"sandbox"
|
||
],
|
||
"author": {
|
||
"name": "James Halliday",
|
||
"email": "mail@substack.net",
|
||
"url": "http://substack.net"
|
||
},
|
||
"contributors": [
|
||
{
|
||
"name": "Matteo Collina",
|
||
"email": "hello@matteocollina.com"
|
||
},
|
||
{
|
||
"name": "Gürgün Dayıoğlu",
|
||
"email": "hey@gurgun.day",
|
||
"url": "https://heyhey.to/G"
|
||
},
|
||
{
|
||
"name": "James Sumners",
|
||
"url": "https://james.sumners.info"
|
||
},
|
||
{
|
||
"name": "Frazer Smith",
|
||
"email": "frazer.dev@icloud.com",
|
||
"url": "https://github.com/fdawgs"
|
||
}
|
||
],
|
||
"license": "MIT"
|
||
}
|