Initialize smartkvm package
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# @push.rocks/smartkvm
|
||||
|
||||
Programmable browser-based visual KVM automation with frame capture and keyboard transport.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
pnpm add @push.rocks/smartkvm
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```typescript
|
||||
import {
|
||||
SmartBrowserKvm,
|
||||
SmartKvmTerminal,
|
||||
type IOcrEngine,
|
||||
} from '@push.rocks/smartkvm';
|
||||
|
||||
const ocrEngine: IOcrEngine = {
|
||||
async recognize(frame) {
|
||||
// Plug in an OCR implementation here.
|
||||
return {
|
||||
text: '',
|
||||
confidence: 0,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
const kvm = new SmartBrowserKvm({
|
||||
url: 'https://jetkvm.local',
|
||||
kind: 'jetkvm',
|
||||
username: 'admin',
|
||||
password: 'admin',
|
||||
headless: false,
|
||||
ignoreHttpsErrors: true,
|
||||
});
|
||||
|
||||
await kvm.connect();
|
||||
|
||||
const terminal = new SmartKvmTerminal({
|
||||
kvm,
|
||||
ocrEngine,
|
||||
osHint: 'linux',
|
||||
shellHint: 'bash',
|
||||
});
|
||||
|
||||
await terminal.bootstrap();
|
||||
const result = await terminal.runCommand('uname -a');
|
||||
console.log(result);
|
||||
|
||||
await kvm.disconnect();
|
||||
```
|
||||
|
||||
## Scope
|
||||
|
||||
This package is transport-focused and AI-agnostic. It automates browser-based visual KVM devices by opening the KVM web UI, focusing the viewer, capturing frames, and sending keyboard input. OCR and AI/model integrations are intentionally pluggable and external.
|
||||
|
||||
## Manual Browser Test
|
||||
|
||||
Automated tests do not require real KVM hardware. To run the manual browser smoke test, set:
|
||||
|
||||
```sh
|
||||
SMARTKVM_TEST_URL=https://your-kvm.local pnpm test
|
||||
```
|
||||
|
||||
Optional variables are `SMARTKVM_TEST_USERNAME`, `SMARTKVM_TEST_PASSWORD`, and `SMARTKVM_TEST_HEADLESS=false`.
|
||||
Reference in New Issue
Block a user