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>
72 lines
2.5 KiB
Markdown
72 lines
2.5 KiB
Markdown
# Safaridriver for Node.js [](https://github.com/webdriverio-community/node-safaridriver/actions/workflows/ci.yml) [](https://github.com/webdriverio-community/node-safaridriver/actions/workflows/audit.yml)
|
|
|
|
> A Node.js untility to manage Safaridriver sessions.
|
|
|
|
The Safaridriver utility is used to launch an HTTP server that implements the [WebDriver](https://w3c.github.io/webdriver/) REST API. When launched, Safaridriver allows for automated testing of web content using the version of Safari that is installed with macOS.
|
|
|
|
## Install
|
|
|
|
To install the package, run:
|
|
|
|
```sh
|
|
npm install --save-dev safaridriver
|
|
```
|
|
|
|
## Usage
|
|
|
|
To start a Safaridriver server, import the package and run:
|
|
|
|
```js
|
|
import safaridriver from 'safaridriver'
|
|
|
|
await safaridriver.start()
|
|
|
|
// run some automation...
|
|
|
|
// then kill instance via:
|
|
safaridriver.stop()
|
|
```
|
|
|
|
## Options
|
|
|
|
### `port`
|
|
|
|
Specifies the port on which the HTTP server should listen for incoming connections. If the port is already in use or otherwise unavailable, Safaridriver will exit immediately with a non-zero return code.
|
|
|
|
__Type:__ `number`<br />
|
|
__Default:__ `4444`
|
|
|
|
### `path`
|
|
|
|
Path to Safaridriver binary.
|
|
|
|
__Type:__ `string`<br />
|
|
__Default:__ `/usr/bin/safaridriver`
|
|
|
|
### `useTechnologyPreview`
|
|
|
|
If set to `true`, it will start the Safaridriver for Safari Technology Preview. Make sure you have it installed by installing Safari Technology Preview on Apple's [offical website](https://developer.apple.com/safari/technology-preview/).
|
|
|
|
__Type:__ `boolean`<br />
|
|
__Default:__ `false`
|
|
|
|
### `enable`
|
|
|
|
Applies configuration changes so that subsequent WebDriver sessions will run without further authentication. This includes checking "Enable Remote Automation" in Safari's `Develop` menu. The user must authenticate via password for the changes to be applied.
|
|
|
|
When this option is specified, safaridriver exits immediately without starting up the REST API service. If the changes were successful or already applied, safaridriver exits 0; otherwise, safaridriver exits >0 and prints an error message to stderr.
|
|
|
|
__Type:__ `boolean`<br />
|
|
__Default:__ `false`
|
|
|
|
### `diagnose`
|
|
|
|
Enables diagnostic logging for all sessions hosted by this safaridriver instance.
|
|
|
|
__Type:__ `boolean`<br />
|
|
__Default:__ `false`
|
|
|
|
----
|
|
|
|
For more information on WebdriverIO see the [homepage](http://webdriver.io).
|