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>
110 lines
2.1 KiB
JavaScript
110 lines
2.1 KiB
JavaScript
/**
|
||
* This module is compiled away!
|
||
*
|
||
* While micromark works based on character codes, this module includes the
|
||
* string versions of ’em.
|
||
* The C0 block, except for LF, CR, HT, and w/ the replacement character added,
|
||
* are available here.
|
||
*/
|
||
export const values = /** @type {const} */ ({
|
||
ht: '\t',
|
||
lf: '\n',
|
||
cr: '\r',
|
||
space: ' ',
|
||
exclamationMark: '!',
|
||
quotationMark: '"',
|
||
numberSign: '#',
|
||
dollarSign: '$',
|
||
percentSign: '%',
|
||
ampersand: '&',
|
||
apostrophe: "'",
|
||
leftParenthesis: '(',
|
||
rightParenthesis: ')',
|
||
asterisk: '*',
|
||
plusSign: '+',
|
||
comma: ',',
|
||
dash: '-',
|
||
dot: '.',
|
||
slash: '/',
|
||
digit0: '0',
|
||
digit1: '1',
|
||
digit2: '2',
|
||
digit3: '3',
|
||
digit4: '4',
|
||
digit5: '5',
|
||
digit6: '6',
|
||
digit7: '7',
|
||
digit8: '8',
|
||
digit9: '9',
|
||
colon: ':',
|
||
semicolon: ';',
|
||
lessThan: '<',
|
||
equalsTo: '=',
|
||
greaterThan: '>',
|
||
questionMark: '?',
|
||
atSign: '@',
|
||
uppercaseA: 'A',
|
||
uppercaseB: 'B',
|
||
uppercaseC: 'C',
|
||
uppercaseD: 'D',
|
||
uppercaseE: 'E',
|
||
uppercaseF: 'F',
|
||
uppercaseG: 'G',
|
||
uppercaseH: 'H',
|
||
uppercaseI: 'I',
|
||
uppercaseJ: 'J',
|
||
uppercaseK: 'K',
|
||
uppercaseL: 'L',
|
||
uppercaseM: 'M',
|
||
uppercaseN: 'N',
|
||
uppercaseO: 'O',
|
||
uppercaseP: 'P',
|
||
uppercaseQ: 'Q',
|
||
uppercaseR: 'R',
|
||
uppercaseS: 'S',
|
||
uppercaseT: 'T',
|
||
uppercaseU: 'U',
|
||
uppercaseV: 'V',
|
||
uppercaseW: 'W',
|
||
uppercaseX: 'X',
|
||
uppercaseY: 'Y',
|
||
uppercaseZ: 'Z',
|
||
leftSquareBracket: '[',
|
||
backslash: '\\',
|
||
rightSquareBracket: ']',
|
||
caret: '^',
|
||
underscore: '_',
|
||
graveAccent: '`',
|
||
lowercaseA: 'a',
|
||
lowercaseB: 'b',
|
||
lowercaseC: 'c',
|
||
lowercaseD: 'd',
|
||
lowercaseE: 'e',
|
||
lowercaseF: 'f',
|
||
lowercaseG: 'g',
|
||
lowercaseH: 'h',
|
||
lowercaseI: 'i',
|
||
lowercaseJ: 'j',
|
||
lowercaseK: 'k',
|
||
lowercaseL: 'l',
|
||
lowercaseM: 'm',
|
||
lowercaseN: 'n',
|
||
lowercaseO: 'o',
|
||
lowercaseP: 'p',
|
||
lowercaseQ: 'q',
|
||
lowercaseR: 'r',
|
||
lowercaseS: 's',
|
||
lowercaseT: 't',
|
||
lowercaseU: 'u',
|
||
lowercaseV: 'v',
|
||
lowercaseW: 'w',
|
||
lowercaseX: 'x',
|
||
lowercaseY: 'y',
|
||
lowercaseZ: 'z',
|
||
leftCurlyBrace: '{',
|
||
verticalBar: '|',
|
||
rightCurlyBrace: '}',
|
||
tilde: '~',
|
||
replacementCharacter: '<27>'
|
||
})
|