@kai-chat/desktop 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +167 -0
- package/bin/kai-desktop.js +21 -0
- package/bin/launch.js +21 -0
- package/dist/electron/browser-window.js +133 -0
- package/dist/electron/capabilities/browser.js +479 -0
- package/dist/electron/capabilities/filesystem.js +91 -0
- package/dist/electron/capabilities/screen.js +29 -0
- package/dist/electron/claude.js +424 -0
- package/dist/electron/image.js +27 -0
- package/dist/electron/main.js +124 -0
- package/dist/electron/preload.js +43 -0
- package/dist/electron/settings.js +91 -0
- package/dist/renderer/assets/index-Cdc8zABU.js +260 -0
- package/dist/renderer/assets/index-I1Zu8bIR.css +1 -0
- package/dist/renderer/index.html +13 -0
- package/package.json +103 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getFolders = getFolders;
|
|
7
|
+
exports.addFolder = addFolder;
|
|
8
|
+
exports.removeFolder = removeFolder;
|
|
9
|
+
exports.setAccess = setAccess;
|
|
10
|
+
exports.getClaudeCodeEnabled = getClaudeCodeEnabled;
|
|
11
|
+
exports.setClaudeCodeEnabled = setClaudeCodeEnabled;
|
|
12
|
+
exports.getBrowserEnabled = getBrowserEnabled;
|
|
13
|
+
exports.setBrowserEnabled = setBrowserEnabled;
|
|
14
|
+
const electron_1 = require("electron");
|
|
15
|
+
const fs_1 = __importDefault(require("fs"));
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
let cache = null;
|
|
18
|
+
function settingsFile() {
|
|
19
|
+
return path_1.default.join(electron_1.app.getPath('userData'), 'settings.json');
|
|
20
|
+
}
|
|
21
|
+
function load() {
|
|
22
|
+
if (cache)
|
|
23
|
+
return cache;
|
|
24
|
+
try {
|
|
25
|
+
const raw = JSON.parse(fs_1.default.readFileSync(settingsFile(), 'utf-8'));
|
|
26
|
+
const folders = (raw.folders ?? []).filter((f) => typeof f?.path === 'string' && (f.access === 'read' || f.access === 'readwrite'));
|
|
27
|
+
cache = { folders, claudeCode: { enabled: raw.claudeCode?.enabled === true }, browser: { enabled: raw.browser?.enabled === true } };
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
cache = { folders: [], claudeCode: { enabled: false }, browser: { enabled: false } };
|
|
31
|
+
}
|
|
32
|
+
return cache;
|
|
33
|
+
}
|
|
34
|
+
function save() {
|
|
35
|
+
fs_1.default.mkdirSync(path_1.default.dirname(settingsFile()), { recursive: true });
|
|
36
|
+
fs_1.default.writeFileSync(settingsFile(), JSON.stringify(load(), null, 2), 'utf-8');
|
|
37
|
+
}
|
|
38
|
+
function getFolders() {
|
|
39
|
+
return load().folders.map(f => ({ ...f }));
|
|
40
|
+
}
|
|
41
|
+
async function addFolder(win) {
|
|
42
|
+
const options = {
|
|
43
|
+
title: 'Allow agents to access a folder',
|
|
44
|
+
properties: ['openDirectory', 'createDirectory'],
|
|
45
|
+
};
|
|
46
|
+
const result = win
|
|
47
|
+
? await electron_1.dialog.showOpenDialog(win, options)
|
|
48
|
+
: await electron_1.dialog.showOpenDialog(options);
|
|
49
|
+
const picked = result.filePaths[0];
|
|
50
|
+
if (result.canceled || !picked)
|
|
51
|
+
return getFolders();
|
|
52
|
+
const real = fs_1.default.realpathSync(picked);
|
|
53
|
+
const settings = load();
|
|
54
|
+
if (!settings.folders.some(f => f.path === real)) {
|
|
55
|
+
// Read-only until the user opts in to writes.
|
|
56
|
+
settings.folders.push({ path: real, access: 'read' });
|
|
57
|
+
save();
|
|
58
|
+
}
|
|
59
|
+
return getFolders();
|
|
60
|
+
}
|
|
61
|
+
function removeFolder(folderPath) {
|
|
62
|
+
const settings = load();
|
|
63
|
+
settings.folders = settings.folders.filter(f => f.path !== folderPath);
|
|
64
|
+
save();
|
|
65
|
+
return getFolders();
|
|
66
|
+
}
|
|
67
|
+
function setAccess(folderPath, access) {
|
|
68
|
+
const folder = load().folders.find(f => f.path === folderPath);
|
|
69
|
+
if (folder) {
|
|
70
|
+
folder.access = access;
|
|
71
|
+
save();
|
|
72
|
+
}
|
|
73
|
+
return getFolders();
|
|
74
|
+
}
|
|
75
|
+
function getClaudeCodeEnabled() {
|
|
76
|
+
return load().claudeCode.enabled;
|
|
77
|
+
}
|
|
78
|
+
function setClaudeCodeEnabled(enabled) {
|
|
79
|
+
load().claudeCode.enabled = enabled;
|
|
80
|
+
save();
|
|
81
|
+
return enabled;
|
|
82
|
+
}
|
|
83
|
+
function getBrowserEnabled() {
|
|
84
|
+
return load().browser.enabled;
|
|
85
|
+
}
|
|
86
|
+
function setBrowserEnabled(enabled) {
|
|
87
|
+
load().browser.enabled = enabled;
|
|
88
|
+
save();
|
|
89
|
+
return enabled;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=settings.js.map
|