snapkitty
compilers
c
python
nasm
File size: 2,117 Bytes
e547dfd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Desktop development guide

The repository contains a native Windows client, an Electron workbench, and BEAM-style WebAssembly sources. Build them independently.

## Native Windows client

The [CMake project](../ide/CMakeLists.txt) requires CMake 3.24+, Windows, a C17/C++17 toolchain, and Windows SDK libraries including Direct2D/DirectWrite. From the repository root:

```powershell
cmake -S ide -B ide/build -G "Visual Studio 17 2022"
cmake --build ide/build --config Release
```

The build definition is in `ide/`, not `ide/native/`. The native source tree includes editor buffers/views, ConPTY, LSP, chat transport, Git operations, and graphics. Source inspection is not a successful build; this documentation update did not compile the IDE.

For bridge behavior and startup constraints, read [ASR and bridge](ASR_AND_BRIDGE.md).

## Electron workbench

The package is [ide/desktop/package.json](../ide/desktop/package.json). From a Node/npm environment compatible with that package's dependencies:

```bash
cd ide/desktop
npm ci
npm run typecheck
npm test
npm run desktop
```

`desktop` runs the TypeScript/Vite build and then Electron. TypeScript emits to `dist/`; Vite targets `_site/`. The main process derives the workspace root from its package location, so no user-specific absolute path is required.

The Vite configuration names `desktop/index.html` as its renderer input, which is present in the inspected checkout. A complete desktop build was not run during this documentation update.

Provider credentials are encrypted using Electron safeStorage, and persistence rejects unavailable encryption. Bridge-backed tools use `SOVEREIGN_ENGINE_BRIDGE_URL` or `http://127.0.0.1:19000`. The desktop's automatic tool path rejects missing risk metadata or risk classes greater than 2. That client check does not protect direct callers of the HTTP service.

## BEAM-style WebAssembly

[ide/beam/](../ide/beam/) is a separate source collection. Do not infer that it replaces either desktop implementation or has been integrated into their builds.

For current validation boundaries, see [Testing](TESTING.md).