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>
69 lines
1.7 KiB
Markdown
69 lines
1.7 KiB
Markdown
<p align=center>
|
|
AssertionError and AssertionResult classes.
|
|
</p>
|
|
|
|
<p align=center>
|
|
<a href="https://github.com/chaijs/assertion-error/actions">
|
|
<img
|
|
alt="build:?"
|
|
src="https://github.com/chaijs/assertion-error/actions/workflows/nodejs.yml/badge.svg"
|
|
/>
|
|
</a><a href="https://www.npmjs.com/package/assertion-error">
|
|
<img
|
|
alt="downloads:?"
|
|
src="https://img.shields.io/npm/dm/assertion-error.svg"
|
|
/>
|
|
</a><a href="">
|
|
<img
|
|
alt="devDependencies:none"
|
|
src="https://img.shields.io/badge/dependencies-none-brightgreen"
|
|
/>
|
|
</a>
|
|
</p>
|
|
|
|
## What is AssertionError?
|
|
|
|
Assertion Error is a module that contains two classes: `AssertionError`, which
|
|
is an instance of an `Error`, and `AssertionResult` which is not an instance of
|
|
Error.
|
|
|
|
These can be useful for returning from a function - if the function "succeeds"
|
|
return an `AssertionResult` and if the function fails return (or throw) an
|
|
`AssertionError`.
|
|
|
|
Both `AssertionError` and `AssertionResult` implement the `Result` interface:
|
|
|
|
```typescript
|
|
interface Result {
|
|
name: "AssertionError" | "AssertionResult";
|
|
ok: boolean;
|
|
toJSON(...args: unknown[]): Record<string, unknown>;
|
|
}
|
|
```
|
|
|
|
So if a function returns `AssertionResult | AssertionError` it is easy to check
|
|
_which_ one is returned by checking either `.name` or `.ok`, or check
|
|
`instanceof Error`.
|
|
|
|
## Installation
|
|
|
|
### Node.js
|
|
|
|
`assertion-error` is available on [npm](http://npmjs.org).
|
|
|
|
```
|
|
$ npm install --save assertion-error
|
|
```
|
|
|
|
### Deno
|
|
|
|
`assertion_error` is available on
|
|
[Deno.land](https://deno.land/x/assertion_error)
|
|
|
|
```typescript
|
|
import {
|
|
AssertionError,
|
|
AssertionResult,
|
|
} from "https://deno.land/x/assertion_error@2.0.0/mod.ts";
|
|
```
|