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>
80 lines
1.5 KiB
JavaScript
80 lines
1.5 KiB
JavaScript
"use strict";
|
|
// autogenerated - 2025-06-25
|
|
// https://www.w3.org/Style/CSS/all-properties.en.html
|
|
|
|
module.exports = new Set([
|
|
"background",
|
|
"background-attachment",
|
|
"background-color",
|
|
"background-image",
|
|
"background-position",
|
|
"background-repeat",
|
|
"border",
|
|
"border-bottom",
|
|
"border-bottom-color",
|
|
"border-bottom-style",
|
|
"border-bottom-width",
|
|
"border-collapse",
|
|
"border-color",
|
|
"border-left",
|
|
"border-left-color",
|
|
"border-left-style",
|
|
"border-left-width",
|
|
"border-right",
|
|
"border-right-color",
|
|
"border-right-style",
|
|
"border-right-width",
|
|
"border-spacing",
|
|
"border-style",
|
|
"border-top",
|
|
"border-top-color",
|
|
"border-top-style",
|
|
"border-top-width",
|
|
"border-width",
|
|
"bottom",
|
|
"clear",
|
|
"clip",
|
|
"color",
|
|
"flex",
|
|
"flex-basis",
|
|
"flex-grow",
|
|
"flex-shrink",
|
|
"float",
|
|
"flood-color",
|
|
"font",
|
|
"font-family",
|
|
"font-size",
|
|
"font-style",
|
|
"font-variant",
|
|
"font-weight",
|
|
"height",
|
|
"left",
|
|
"lighting-color",
|
|
"line-height",
|
|
"margin",
|
|
"margin-bottom",
|
|
"margin-left",
|
|
"margin-right",
|
|
"margin-top",
|
|
"opacity",
|
|
"outline-color",
|
|
"padding",
|
|
"padding-bottom",
|
|
"padding-left",
|
|
"padding-right",
|
|
"padding-top",
|
|
"right",
|
|
"stop-color",
|
|
"top",
|
|
"-webkit-border-after-color",
|
|
"-webkit-border-before-color",
|
|
"-webkit-border-end-color",
|
|
"-webkit-border-start-color",
|
|
"-webkit-column-rule-color",
|
|
"-webkit-tap-highlight-color",
|
|
"-webkit-text-emphasis-color",
|
|
"-webkit-text-fill-color",
|
|
"-webkit-text-stroke-color",
|
|
"width"
|
|
]);
|