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>
50 lines
2.3 KiB
TypeScript
50 lines
2.3 KiB
TypeScript
/// <reference types="node" />
|
|
/// <reference types="node" />
|
|
import { CompileOptions } from 'degenerator';
|
|
/**
|
|
* Built-in PAC functions.
|
|
*/
|
|
import dateRange from './dateRange';
|
|
import dnsDomainIs from './dnsDomainIs';
|
|
import dnsDomainLevels from './dnsDomainLevels';
|
|
import dnsResolve from './dnsResolve';
|
|
import isInNet from './isInNet';
|
|
import isPlainHostName from './isPlainHostName';
|
|
import isResolvable from './isResolvable';
|
|
import localHostOrDomainIs from './localHostOrDomainIs';
|
|
import myIpAddress from './myIpAddress';
|
|
import shExpMatch from './shExpMatch';
|
|
import timeRange from './timeRange';
|
|
import weekdayRange from './weekdayRange';
|
|
import type { QuickJSWASMModule } from '@tootallnate/quickjs-emscripten';
|
|
/**
|
|
* Returns an asynchronous `FindProxyForURL()` function
|
|
* from the given JS string (from a PAC file).
|
|
*/
|
|
export declare function createPacResolver(qjs: QuickJSWASMModule, _str: string | Buffer, _opts?: PacResolverOptions): (url: string | URL, _host?: string) => Promise<string>;
|
|
export type GMT = 'GMT';
|
|
export type Hour = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23;
|
|
export type Day = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31;
|
|
export type Weekday = 'SUN' | 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT';
|
|
export type Month = 'JAN' | 'FEB' | 'MAR' | 'APR' | 'MAY' | 'JUN' | 'JUL' | 'AUG' | 'SEP' | 'OCT' | 'NOV' | 'DEC';
|
|
export type PacResolverOptions = CompileOptions;
|
|
export interface FindProxyForURLCallback {
|
|
(err?: Error | null, result?: string): void;
|
|
}
|
|
export type FindProxyForURL = ReturnType<typeof createPacResolver>;
|
|
export declare const sandbox: Readonly<{
|
|
alert: (message?: string) => void;
|
|
dateRange: typeof dateRange;
|
|
dnsDomainIs: typeof dnsDomainIs;
|
|
dnsDomainLevels: typeof dnsDomainLevels;
|
|
dnsResolve: typeof dnsResolve;
|
|
isInNet: typeof isInNet;
|
|
isPlainHostName: typeof isPlainHostName;
|
|
isResolvable: typeof isResolvable;
|
|
localHostOrDomainIs: typeof localHostOrDomainIs;
|
|
myIpAddress: typeof myIpAddress;
|
|
shExpMatch: typeof shExpMatch;
|
|
timeRange: typeof timeRange;
|
|
weekdayRange: typeof weekdayRange;
|
|
}>;
|
|
//# sourceMappingURL=index.d.ts.map
|