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>
111 lines
3.6 KiB
TypeScript
111 lines
3.6 KiB
TypeScript
import { S as SnapshotStateOptions, a as SnapshotMatchOptions, b as SnapshotResult, R as RawSnapshotInfo } from './rawSnapshot-CPNkto81.js';
|
|
export { c as SnapshotData, d as SnapshotSerializer, e as SnapshotSummary, f as SnapshotUpdateState, U as UncheckedSnapshot } from './rawSnapshot-CPNkto81.js';
|
|
import { S as SnapshotEnvironment } from './environment-Ddx0EDtY.js';
|
|
import { Plugin, Plugins } from '@vitest/pretty-format';
|
|
|
|
interface ParsedStack {
|
|
method: string;
|
|
file: string;
|
|
line: number;
|
|
column: number;
|
|
}
|
|
|
|
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
interface SnapshotReturnOptions {
|
|
actual: string;
|
|
count: number;
|
|
expected?: string;
|
|
key: string;
|
|
pass: boolean;
|
|
}
|
|
interface SaveStatus {
|
|
deleted: boolean;
|
|
saved: boolean;
|
|
}
|
|
declare class SnapshotState {
|
|
testFilePath: string;
|
|
snapshotPath: string;
|
|
private _counters;
|
|
private _dirty;
|
|
private _updateSnapshot;
|
|
private _snapshotData;
|
|
private _initialData;
|
|
private _inlineSnapshots;
|
|
private _inlineSnapshotStacks;
|
|
private _rawSnapshots;
|
|
private _uncheckedKeys;
|
|
private _snapshotFormat;
|
|
private _environment;
|
|
private _fileExists;
|
|
added: number;
|
|
expand: boolean;
|
|
matched: number;
|
|
unmatched: number;
|
|
updated: number;
|
|
private constructor();
|
|
static create(testFilePath: string, options: SnapshotStateOptions): Promise<SnapshotState>;
|
|
get environment(): SnapshotEnvironment;
|
|
markSnapshotsAsCheckedForTest(testName: string): void;
|
|
protected _inferInlineSnapshotStack(stacks: ParsedStack[]): ParsedStack | null;
|
|
private _addSnapshot;
|
|
clear(): void;
|
|
save(): Promise<SaveStatus>;
|
|
getUncheckedCount(): number;
|
|
getUncheckedKeys(): Array<string>;
|
|
removeUncheckedKeys(): void;
|
|
match({ testName, received, key, inlineSnapshot, isInline, error, rawSnapshot, }: SnapshotMatchOptions): SnapshotReturnOptions;
|
|
pack(): Promise<SnapshotResult>;
|
|
}
|
|
|
|
interface AssertOptions {
|
|
received: unknown;
|
|
filepath?: string;
|
|
name?: string;
|
|
message?: string;
|
|
isInline?: boolean;
|
|
properties?: object;
|
|
inlineSnapshot?: string;
|
|
error?: Error;
|
|
errorMessage?: string;
|
|
rawSnapshot?: RawSnapshotInfo;
|
|
}
|
|
interface SnapshotClientOptions {
|
|
isEqual?: (received: unknown, expected: unknown) => boolean;
|
|
}
|
|
declare class SnapshotClient {
|
|
private options;
|
|
filepath?: string;
|
|
name?: string;
|
|
snapshotState: SnapshotState | undefined;
|
|
snapshotStateMap: Map<string, SnapshotState>;
|
|
constructor(options?: SnapshotClientOptions);
|
|
startCurrentRun(filepath: string, name: string, options: SnapshotStateOptions): Promise<void>;
|
|
getSnapshotState(filepath: string): SnapshotState;
|
|
clearTest(): void;
|
|
skipTestSnapshots(name: string): void;
|
|
assert(options: AssertOptions): void;
|
|
assertRaw(options: AssertOptions): Promise<void>;
|
|
finishCurrentRun(): Promise<SnapshotResult | null>;
|
|
clear(): void;
|
|
}
|
|
|
|
declare function stripSnapshotIndentation(inlineSnapshot: string): string;
|
|
|
|
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
declare function addSerializer(plugin: Plugin): void;
|
|
declare function getSerializers(): Plugins;
|
|
|
|
export { SnapshotClient, SnapshotMatchOptions, SnapshotResult, SnapshotState, SnapshotStateOptions, addSerializer, getSerializers, stripSnapshotIndentation };
|