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
3.3 KiB
TypeScript
79 lines
3.3 KiB
TypeScript
import { AnyNode, Element } from "domhandler";
|
|
import type { ElementType } from "domelementtype";
|
|
/**
|
|
* An object with keys to check elements against. If a key is `tag_name`,
|
|
* `tag_type` or `tag_contains`, it will check the value against that specific
|
|
* value. Otherwise, it will check an attribute with the key's name.
|
|
*
|
|
* @category Legacy Query Functions
|
|
*/
|
|
export interface TestElementOpts {
|
|
tag_name?: string | ((name: string) => boolean);
|
|
tag_type?: string | ((name: string) => boolean);
|
|
tag_contains?: string | ((data?: string) => boolean);
|
|
[attributeName: string]: undefined | string | ((attributeValue: string) => boolean);
|
|
}
|
|
/**
|
|
* Checks whether a node matches the description in `options`.
|
|
*
|
|
* @category Legacy Query Functions
|
|
* @param options An object describing nodes to look for.
|
|
* @param node The element to test.
|
|
* @returns Whether the element matches the description in `options`.
|
|
*/
|
|
export declare function testElement(options: TestElementOpts, node: AnyNode): boolean;
|
|
/**
|
|
* Returns all nodes that match `options`.
|
|
*
|
|
* @category Legacy Query Functions
|
|
* @param options An object describing nodes to look for.
|
|
* @param nodes Nodes to search through.
|
|
* @param recurse Also consider child nodes.
|
|
* @param limit Maximum number of nodes to return.
|
|
* @returns All nodes that match `options`.
|
|
*/
|
|
export declare function getElements(options: TestElementOpts, nodes: AnyNode | AnyNode[], recurse: boolean, limit?: number): AnyNode[];
|
|
/**
|
|
* Returns the node with the supplied ID.
|
|
*
|
|
* @category Legacy Query Functions
|
|
* @param id The unique ID attribute value to look for.
|
|
* @param nodes Nodes to search through.
|
|
* @param recurse Also consider child nodes.
|
|
* @returns The node with the supplied ID.
|
|
*/
|
|
export declare function getElementById(id: string | ((id: string) => boolean), nodes: AnyNode | AnyNode[], recurse?: boolean): Element | null;
|
|
/**
|
|
* Returns all nodes with the supplied `tagName`.
|
|
*
|
|
* @category Legacy Query Functions
|
|
* @param tagName Tag name to search for.
|
|
* @param nodes Nodes to search through.
|
|
* @param recurse Also consider child nodes.
|
|
* @param limit Maximum number of nodes to return.
|
|
* @returns All nodes with the supplied `tagName`.
|
|
*/
|
|
export declare function getElementsByTagName(tagName: string | ((name: string) => boolean), nodes: AnyNode | AnyNode[], recurse?: boolean, limit?: number): Element[];
|
|
/**
|
|
* Returns all nodes with the supplied `className`.
|
|
*
|
|
* @category Legacy Query Functions
|
|
* @param className Class name to search for.
|
|
* @param nodes Nodes to search through.
|
|
* @param recurse Also consider child nodes.
|
|
* @param limit Maximum number of nodes to return.
|
|
* @returns All nodes with the supplied `className`.
|
|
*/
|
|
export declare function getElementsByClassName(className: string | ((name: string) => boolean), nodes: AnyNode | AnyNode[], recurse?: boolean, limit?: number): Element[];
|
|
/**
|
|
* Returns all nodes with the supplied `type`.
|
|
*
|
|
* @category Legacy Query Functions
|
|
* @param type Element type to look for.
|
|
* @param nodes Nodes to search through.
|
|
* @param recurse Also consider child nodes.
|
|
* @param limit Maximum number of nodes to return.
|
|
* @returns All nodes with the supplied `type`.
|
|
*/
|
|
export declare function getElementsByTagType(type: ElementType | ((type: ElementType) => boolean), nodes: AnyNode | AnyNode[], recurse?: boolean, limit?: number): AnyNode[];
|
|
//# sourceMappingURL=legacy.d.ts.map
|