beast-agent 1.5.2 → 1.6.0

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/src/preload.js CHANGED
@@ -1,191 +1,191 @@
1
- 'use strict';
2
-
3
- const { contextBridge, ipcRenderer } = require('electron');
4
-
5
- contextBridge.exposeInMainWorld('beast', {
6
- getState: () => ipcRenderer.invoke('app:state'),
7
- appVersion: () => ipcRenderer.invoke('app:version'),
8
- logsGet: () => ipcRenderer.invoke('logs:get'),
9
- logsClear: () => ipcRenderer.invoke('logs:clear'),
10
- listSessions: () => ipcRenderer.invoke('sessions:list'),
11
- createSession: () => ipcRenderer.invoke('sessions:create'),
12
- openSession: (id) => ipcRenderer.invoke('sessions:open', id),
13
- deleteSession: (id) => ipcRenderer.invoke('sessions:delete', id),
14
- send: (sessionId, text) => ipcRenderer.invoke('agent:send', { sessionId, text }),
15
- interrupt: (sessionId) => ipcRenderer.invoke('agent:interrupt', sessionId),
16
- setModel: (sel) => ipcRenderer.invoke('model:set', sel),
17
- pickWorkspace: () => ipcRenderer.invoke('cwd:set'),
18
- openExternal: (url) => ipcRenderer.send('open-external', url),
19
- getMemory: () => ipcRenderer.invoke('memory:get'),
20
- agentsList: () => ipcRenderer.invoke('agents:list'),
21
- agentsDetail: (id) => ipcRenderer.invoke('agents:detail', id),
22
- agentsCancel: (id) => ipcRenderer.invoke('agents:cancel', id),
23
- getCeoMode: () => ipcRenderer.invoke('ceo:get'),
24
- setCeoMode: (v) => ipcRenderer.invoke('ceo:set', v),
25
- listNotes: () => ipcRenderer.invoke('notes:list'),
26
- clearNotes: (id) => ipcRenderer.invoke('notes:clear', id),
27
- saveMemory: (file, content) => ipcRenderer.invoke('memory:save', { file, content }),
28
- listSkills: () => ipcRenderer.invoke('skills:list'),
29
- skillsGetAuto: () => ipcRenderer.invoke('skills:auto:get'),
30
- skillsSetAuto: (v) => ipcRenderer.invoke('skills:auto:set', v),
31
- openSkillsFolder: () => ipcRenderer.invoke('skills:openFolder'),
32
- draftsList: () => ipcRenderer.invoke('skills:drafts:list'),
33
- draftAccept: (id) => ipcRenderer.invoke('skills:drafts:accept', id),
34
- draftDrop: (id) => ipcRenderer.invoke('skills:drafts:drop', id),
35
- rulesGet: () => ipcRenderer.invoke('rules:get'),
36
- ruleAdd: (t) => ipcRenderer.invoke('rules:add', t),
37
- ruleRemove: (id) => ipcRenderer.invoke('rules:remove', id),
38
- eventsGetConfig: () => ipcRenderer.invoke('events:config:get'),
39
- eventsSetConfig: (cfg) => ipcRenderer.invoke('events:config:set', cfg),
40
- eventsSubs: () => ipcRenderer.invoke('events:subs:list'),
41
- eventUnsub: (id) => ipcRenderer.invoke('events:subs:remove', id),
42
- getSettings: () => ipcRenderer.invoke('settings:get'),
43
- getFallout: () => ipcRenderer.invoke('fallout:get'),
44
- setFallout: (cfg) => ipcRenderer.invoke('fallout:set', cfg),
45
- getLimits: () => ipcRenderer.invoke('limits:get'),
46
- setLimits: (cfg) => ipcRenderer.invoke('limits:set', cfg),
47
- secGet: () => ipcRenderer.invoke('sec:get'),
48
- secSet: (cfg) => ipcRenderer.invoke('sec:set', cfg),
49
- approvalRespond: (id, ok, always) => ipcRenderer.invoke('approval:respond', { id, ok, always }),
50
- sttTranscribe: (b64, lang) => ipcRenderer.invoke('stt:transcribe', b64, lang),
51
- sttLangGet: () => ipcRenderer.invoke('stt:lang:get'),
52
- sttLangSet: (lang) => ipcRenderer.invoke('stt:lang:set', lang),
53
- updateStatus: () => ipcRenderer.invoke('update:status'),
54
- updateCheck: () => ipcRenderer.invoke('update:check'),
55
- updateInstall: () => ipcRenderer.invoke('update:install'),
56
- updateSetAuto: (cfg) => ipcRenderer.invoke('update:setAuto', cfg),
57
- setModel: (sel) => ipcRenderer.invoke('model:set', sel),
58
- setRoleModels: (map) => ipcRenderer.invoke('model:role', map),
59
- deleteModel: (sel) => ipcRenderer.invoke('model:delete', sel),
60
- restoreModel: (sel) => ipcRenderer.invoke('model:restore', sel),
61
- setVisibleModels: (list) => ipcRenderer.invoke('visible-models:set', list),
62
- refreshModels: () => ipcRenderer.invoke('models:refresh'),
63
- setTheme: (t) => ipcRenderer.invoke('theme:set', t),
64
- toggleBrowser: () => ipcRenderer.invoke('browser:toggle'),
65
- browserShownGet: () => ipcRenderer.invoke('browser:shown:get'),
66
- browserShownSet: (v) => ipcRenderer.invoke('browser:shown:set', v),
67
- terminalToggle: () => ipcRenderer.invoke('terminal:toggle'),
68
- terminalRun: (cmd, shell) => ipcRenderer.invoke('terminal:run', { cmd, shell }),
69
- terminalStop: () => ipcRenderer.invoke('terminal:stop'),
70
- beastcodeSend: (msg, attachments) => ipcRenderer.invoke('beastcode:send', { msg, attachments }),
71
- bcTodos: (sessionId) => ipcRenderer.invoke('bc:todos', { sessionId }),
72
- bcUndo: (sessionId, todoId) => ipcRenderer.invoke('bc:undo', { sessionId, todoId }),
73
- beastcodeStop: () => ipcRenderer.invoke('beastcode:stop'),
74
- beastcodeNew: () => ipcRenderer.invoke('beastcode:new'),
75
- thinkSet: (v) => ipcRenderer.invoke('think:set', v),
76
- obscuraGet: () => ipcRenderer.invoke('obscura:get'),
77
- obscuraInstall: () => ipcRenderer.invoke('obscura:install'),
78
- obscuraInstallState: () => ipcRenderer.invoke('obscura:installState'),
79
- obscuraSetEnabled: (v) => ipcRenderer.invoke('obscura:setEnabled', v),
80
- searchOrderGet: () => ipcRenderer.invoke('searchorder:get'),
81
- searchOrderSet: (chain) => ipcRenderer.invoke('searchorder:set', chain),
82
- sessionsOrderGet: () => ipcRenderer.invoke('sessions:order:get'),
83
- sessionsOrderSet: (order) => ipcRenderer.invoke('sessions:order:set', order),
84
- tinyfishGet: () => ipcRenderer.invoke('tinyfish:get'),
85
- tinyfishSet: (key) => ipcRenderer.invoke('tinyfish:set', key),
86
- tinyfishClear: () => ipcRenderer.invoke('tinyfish:clear'),
87
- browserNavigate: (url) => ipcRenderer.invoke('browser:navigate', url),
88
- browserCtrl: (action) => ipcRenderer.invoke('browser:ctrl', action),
89
- browserPhone: (on) => ipcRenderer.invoke('browser:phone', on),
90
- browserSetWidth: (w) => ipcRenderer.invoke('browser:setWidth', w),
91
- browserSetIgnoreMouse: (flag) => ipcRenderer.invoke('browser:setIgnoreMouse', flag),
92
- browserScreenshot: () => ipcRenderer.invoke('browser:screenshot'),
93
- cronList: () => ipcRenderer.invoke('cron:list'),
94
- cronAdd: (job) => ipcRenderer.invoke('cron:add', job),
95
- cronUpdate: (id, patch) => ipcRenderer.invoke('cron:update', { id, patch }),
96
- cronDelete: (id) => ipcRenderer.invoke('cron:delete', id),
97
- cronToggle: (id) => ipcRenderer.invoke('cron:toggle', id),
98
- cronRunNow: (id) => ipcRenderer.invoke('cron:runNow', id),
99
-
100
- watchersList: () => ipcRenderer.invoke('watchers:list'),
101
-
102
- watchersAdd: (input) => ipcRenderer.invoke('watchers:add', input),
103
-
104
- watchersRemove: (id) => ipcRenderer.invoke('watchers:remove', id),
105
-
106
- watchersToggle: (id) => ipcRenderer.invoke('watchers:toggle', id),
107
-
108
- providerKeys: () => ipcRenderer.invoke('providers:keys'),
109
-
110
- openPath: (p) => ipcRenderer.invoke('shell:openPath', p),
111
-
112
- showItemInFolder: (p) => ipcRenderer.invoke('shell:showItem', p),
113
- setCustomProviders: (list) => ipcRenderer.invoke('custom:set', list),
114
- fetchModels: (opts) => ipcRenderer.invoke('custom:fetchModels', opts),
115
- builtinProviders: () => ipcRenderer.invoke('providers:builtin'),
116
- zenOneClick: () => ipcRenderer.invoke('zen:oneClick'),
117
- waStart: () => ipcRenderer.invoke('wa:start'),
118
- waStop: () => ipcRenderer.invoke('wa:stop'),
119
- waReset: () => ipcRenderer.invoke('wa:reset'),
120
- waStatus: () => ipcRenderer.invoke('wa:status'),
121
- waGetAllow: () => ipcRenderer.invoke('wa:allow:get'),
122
- waQueueGet: () => ipcRenderer.invoke('wa:queue:get'),
123
- waSetAllow: (list) => ipcRenderer.invoke('wa:allow:set', list),
124
- setWaLockdown: (v) => ipcRenderer.invoke('wa:lockdown:set', v),
125
- waGetTts: () => ipcRenderer.invoke('wa:tts:get'),
126
- waSetTts: (cfg) => ipcRenderer.invoke('wa:tts:set', cfg),
127
- waGetGroups: () => ipcRenderer.invoke('wa:groups:get'),
128
- waSetGroups: (cfg) => ipcRenderer.invoke('wa:groups:set', cfg),
129
- tgGetStatus: () => ipcRenderer.invoke('tg:status:get'),
130
- tgSetToken: (token) => ipcRenderer.invoke('tg:set', token),
131
- tgStart: () => ipcRenderer.invoke('tg:start'),
132
- tgStop: () => ipcRenderer.invoke('tg:stop'),
133
- tgGetAllow: () => ipcRenderer.invoke('tg:allow:get'),
134
- tgSetAllow: (list) => ipcRenderer.invoke('tg:allow:set', list),
135
- tgListSessions: () => ipcRenderer.invoke('tg:sessions'),
136
- onTgEvent: (cb) => ipcRenderer.on('tg:event', (_e, ev) => cb(ev)),
137
- dcGetStatus: () => ipcRenderer.invoke('dc:status:get'),
138
- dcSetToken: (token) => ipcRenderer.invoke('dc:set', token),
139
- dcStart: () => ipcRenderer.invoke('dc:start'),
140
- dcStop: () => ipcRenderer.invoke('dc:stop'),
141
- dcGetAllow: () => ipcRenderer.invoke('dc:allow:get'),
142
- dcSetAllow: (list) => ipcRenderer.invoke('dc:allow:set', list),
143
- dcListSessions: () => ipcRenderer.invoke('dc:sessions'),
144
- onDcEvent: (cb) => ipcRenderer.on('dc:event', (_e, ev) => cb(ev)),
145
- getUsage: () => ipcRenderer.invoke('usage:get'),
146
- resetUsage: () => ipcRenderer.invoke('usage:reset'),
147
- createBackup: () => ipcRenderer.invoke('backup:create'),
148
- restoreBackup: () => ipcRenderer.invoke('backup:restore'),
149
- setupStatus: () => ipcRenderer.invoke('setup:status'),
150
- setupSaveProvider: (p) => ipcRenderer.invoke('setup:saveProvider', p),
151
- setupComplete: (o) => ipcRenderer.invoke('setup:complete', o),
152
- setupSkip: () => ipcRenderer.invoke('setup:skip'),
153
- whereWasIGet: () => ipcRenderer.invoke('wherewasi:get'),
154
- whereWasISet: (cfg) => ipcRenderer.invoke('wherewasi:set', cfg),
155
- getEmail: () => ipcRenderer.invoke('email:get'),
156
- setEmail: (cfg) => ipcRenderer.invoke('email:set', cfg),
157
- captureScreen: () => ipcRenderer.invoke('screen:capture'),
158
- waListSessions: () => ipcRenderer.invoke('wa:sessions'),
159
- botsList: () => ipcRenderer.invoke('bots:list'),
160
- botsAdd: (input) => ipcRenderer.invoke('bots:add', input),
161
- botsDmList: () => ipcRenderer.invoke('bots:dm:list'),
162
- botsDmRead: (id) => ipcRenderer.invoke('bots:dm:read', id),
163
- githubTrending: (opts) => ipcRenderer.invoke('github:trending', opts),
164
- botsUpdate: (id, patch) => ipcRenderer.invoke('bots:update', { id, patch }),
165
- botsRemove: (id) => ipcRenderer.invoke('bots:remove', id),
166
- botsStats: () => ipcRenderer.invoke('bots:stats'),
167
- botsActiveGet: () => ipcRenderer.invoke('bots:active:get'),
168
- botsActivate: (id) => ipcRenderer.invoke('bots:activate', id),
169
- botsMemGet: (id) => ipcRenderer.invoke('bots:memory:get', id),
170
- botsMemSet: (id, file, content) => ipcRenderer.invoke('bots:memory:set', { id, file, content }),
171
- botsLogGet: (id) => ipcRenderer.invoke('bots:log:get', id),
172
- storeList: () => ipcRenderer.invoke('store:list'),
173
- storeSetIdentity: (p) => ipcRenderer.invoke('store:identity:set', p),
174
- storePick: () => ipcRenderer.invoke('store:pick'),
175
- storeCommit: (p) => ipcRenderer.invoke('store:commit', p),
176
- storeInstall: (id) => ipcRenderer.invoke('store:install', id),
177
- storeLike: (id) => ipcRenderer.invoke('store:like', id),
178
- storeRemove: (id) => ipcRenderer.invoke('store:remove', id),
179
- storeExport: (id) => ipcRenderer.invoke('store:export', id),
180
- ideTree: (rel) => ipcRenderer.invoke('ide:tree', rel),
181
- ideSetRoot: () => ipcRenderer.invoke('ide:setroot'),
182
- ideRead: (rel) => ipcRenderer.invoke('ide:read', rel),
183
- ideWrite: (rel, content) => ipcRenderer.invoke('ide:write', { rel, content }),
184
- idePreview: () => ipcRenderer.invoke('ide:preview'),
185
- idePreviewFile: (rel) => ipcRenderer.invoke('ide:previewFile', rel),
186
- idePreviewUrl: (url) => ipcRenderer.invoke('ide:previewUrl', url),
187
- agentsClearAll: () => ipcRenderer.invoke('agents:clearAll'),
188
- ideDelete: (rel) => ipcRenderer.invoke('ide:delete', rel),
189
- onWaEvent: (cb) => ipcRenderer.on('wa:event', (_e, ev) => cb(ev)),
190
- onEvent: (cb) => ipcRenderer.on('agent:event', (_e, ev) => cb(ev)),
191
- });
1
+ 'use strict';
2
+
3
+ const { contextBridge, ipcRenderer } = require('electron');
4
+
5
+ contextBridge.exposeInMainWorld('beast', {
6
+ getState: () => ipcRenderer.invoke('app:state'),
7
+ appVersion: () => ipcRenderer.invoke('app:version'),
8
+ logsGet: () => ipcRenderer.invoke('logs:get'),
9
+ logsClear: () => ipcRenderer.invoke('logs:clear'),
10
+ listSessions: () => ipcRenderer.invoke('sessions:list'),
11
+ createSession: () => ipcRenderer.invoke('sessions:create'),
12
+ openSession: (id) => ipcRenderer.invoke('sessions:open', id),
13
+ deleteSession: (id) => ipcRenderer.invoke('sessions:delete', id),
14
+ send: (sessionId, text) => ipcRenderer.invoke('agent:send', { sessionId, text }),
15
+ interrupt: (sessionId) => ipcRenderer.invoke('agent:interrupt', sessionId),
16
+ setModel: (sel) => ipcRenderer.invoke('model:set', sel),
17
+ pickWorkspace: () => ipcRenderer.invoke('cwd:set'),
18
+ openExternal: (url) => ipcRenderer.send('open-external', url),
19
+ getMemory: () => ipcRenderer.invoke('memory:get'),
20
+ agentsList: () => ipcRenderer.invoke('agents:list'),
21
+ agentsDetail: (id) => ipcRenderer.invoke('agents:detail', id),
22
+ agentsCancel: (id) => ipcRenderer.invoke('agents:cancel', id),
23
+ getCeoMode: () => ipcRenderer.invoke('ceo:get'),
24
+ setCeoMode: (v) => ipcRenderer.invoke('ceo:set', v),
25
+ listNotes: () => ipcRenderer.invoke('notes:list'),
26
+ clearNotes: (id) => ipcRenderer.invoke('notes:clear', id),
27
+ saveMemory: (file, content) => ipcRenderer.invoke('memory:save', { file, content }),
28
+ listSkills: () => ipcRenderer.invoke('skills:list'),
29
+ skillsGetAuto: () => ipcRenderer.invoke('skills:auto:get'),
30
+ skillsSetAuto: (v) => ipcRenderer.invoke('skills:auto:set', v),
31
+ openSkillsFolder: () => ipcRenderer.invoke('skills:openFolder'),
32
+ draftsList: () => ipcRenderer.invoke('skills:drafts:list'),
33
+ draftAccept: (id) => ipcRenderer.invoke('skills:drafts:accept', id),
34
+ draftDrop: (id) => ipcRenderer.invoke('skills:drafts:drop', id),
35
+ rulesGet: () => ipcRenderer.invoke('rules:get'),
36
+ ruleAdd: (t) => ipcRenderer.invoke('rules:add', t),
37
+ ruleRemove: (id) => ipcRenderer.invoke('rules:remove', id),
38
+ eventsGetConfig: () => ipcRenderer.invoke('events:config:get'),
39
+ eventsSetConfig: (cfg) => ipcRenderer.invoke('events:config:set', cfg),
40
+ eventsSubs: () => ipcRenderer.invoke('events:subs:list'),
41
+ eventUnsub: (id) => ipcRenderer.invoke('events:subs:remove', id),
42
+ getSettings: () => ipcRenderer.invoke('settings:get'),
43
+ getFallout: () => ipcRenderer.invoke('fallout:get'),
44
+ setFallout: (cfg) => ipcRenderer.invoke('fallout:set', cfg),
45
+ getLimits: () => ipcRenderer.invoke('limits:get'),
46
+ setLimits: (cfg) => ipcRenderer.invoke('limits:set', cfg),
47
+ secGet: () => ipcRenderer.invoke('sec:get'),
48
+ secSet: (cfg) => ipcRenderer.invoke('sec:set', cfg),
49
+ approvalRespond: (id, ok, always) => ipcRenderer.invoke('approval:respond', { id, ok, always }),
50
+ sttTranscribe: (b64, lang) => ipcRenderer.invoke('stt:transcribe', b64, lang),
51
+ sttLangGet: () => ipcRenderer.invoke('stt:lang:get'),
52
+ sttLangSet: (lang) => ipcRenderer.invoke('stt:lang:set', lang),
53
+ updateStatus: () => ipcRenderer.invoke('update:status'),
54
+ updateCheck: () => ipcRenderer.invoke('update:check'),
55
+ updateInstall: () => ipcRenderer.invoke('update:install'),
56
+ updateSetAuto: (cfg) => ipcRenderer.invoke('update:setAuto', cfg),
57
+ setModel: (sel) => ipcRenderer.invoke('model:set', sel),
58
+ setRoleModels: (map) => ipcRenderer.invoke('model:role', map),
59
+ deleteModel: (sel) => ipcRenderer.invoke('model:delete', sel),
60
+ restoreModel: (sel) => ipcRenderer.invoke('model:restore', sel),
61
+ setVisibleModels: (list) => ipcRenderer.invoke('visible-models:set', list),
62
+ refreshModels: () => ipcRenderer.invoke('models:refresh'),
63
+ setTheme: (t) => ipcRenderer.invoke('theme:set', t),
64
+ toggleBrowser: () => ipcRenderer.invoke('browser:toggle'),
65
+ browserShownGet: () => ipcRenderer.invoke('browser:shown:get'),
66
+ browserShownSet: (v) => ipcRenderer.invoke('browser:shown:set', v),
67
+ terminalToggle: () => ipcRenderer.invoke('terminal:toggle'),
68
+ terminalRun: (cmd, shell) => ipcRenderer.invoke('terminal:run', { cmd, shell }),
69
+ terminalStop: () => ipcRenderer.invoke('terminal:stop'),
70
+ beastcodeSend: (msg, attachments) => ipcRenderer.invoke('beastcode:send', { msg, attachments }),
71
+ bcTodos: (sessionId) => ipcRenderer.invoke('bc:todos', { sessionId }),
72
+ bcUndo: (sessionId, todoId) => ipcRenderer.invoke('bc:undo', { sessionId, todoId }),
73
+ beastcodeStop: () => ipcRenderer.invoke('beastcode:stop'),
74
+ beastcodeNew: () => ipcRenderer.invoke('beastcode:new'),
75
+ thinkSet: (v) => ipcRenderer.invoke('think:set', v),
76
+ obscuraGet: () => ipcRenderer.invoke('obscura:get'),
77
+ obscuraInstall: () => ipcRenderer.invoke('obscura:install'),
78
+ obscuraInstallState: () => ipcRenderer.invoke('obscura:installState'),
79
+ obscuraSetEnabled: (v) => ipcRenderer.invoke('obscura:setEnabled', v),
80
+ searchOrderGet: () => ipcRenderer.invoke('searchorder:get'),
81
+ searchOrderSet: (chain) => ipcRenderer.invoke('searchorder:set', chain),
82
+ sessionsOrderGet: () => ipcRenderer.invoke('sessions:order:get'),
83
+ sessionsOrderSet: (order) => ipcRenderer.invoke('sessions:order:set', order),
84
+ tinyfishGet: () => ipcRenderer.invoke('tinyfish:get'),
85
+ tinyfishSet: (key) => ipcRenderer.invoke('tinyfish:set', key),
86
+ tinyfishClear: () => ipcRenderer.invoke('tinyfish:clear'),
87
+ browserNavigate: (url) => ipcRenderer.invoke('browser:navigate', url),
88
+ browserCtrl: (action) => ipcRenderer.invoke('browser:ctrl', action),
89
+ browserPhone: (on) => ipcRenderer.invoke('browser:phone', on),
90
+ browserSetWidth: (w) => ipcRenderer.invoke('browser:setWidth', w),
91
+ browserSetIgnoreMouse: (flag) => ipcRenderer.invoke('browser:setIgnoreMouse', flag),
92
+ browserScreenshot: () => ipcRenderer.invoke('browser:screenshot'),
93
+ cronList: () => ipcRenderer.invoke('cron:list'),
94
+ cronAdd: (job) => ipcRenderer.invoke('cron:add', job),
95
+ cronUpdate: (id, patch) => ipcRenderer.invoke('cron:update', { id, patch }),
96
+ cronDelete: (id) => ipcRenderer.invoke('cron:delete', id),
97
+ cronToggle: (id) => ipcRenderer.invoke('cron:toggle', id),
98
+ cronRunNow: (id) => ipcRenderer.invoke('cron:runNow', id),
99
+
100
+ watchersList: () => ipcRenderer.invoke('watchers:list'),
101
+
102
+ watchersAdd: (input) => ipcRenderer.invoke('watchers:add', input),
103
+
104
+ watchersRemove: (id) => ipcRenderer.invoke('watchers:remove', id),
105
+
106
+ watchersToggle: (id) => ipcRenderer.invoke('watchers:toggle', id),
107
+
108
+ providerKeys: () => ipcRenderer.invoke('providers:keys'),
109
+
110
+ openPath: (p) => ipcRenderer.invoke('shell:openPath', p),
111
+
112
+ showItemInFolder: (p) => ipcRenderer.invoke('shell:showItem', p),
113
+ setCustomProviders: (list) => ipcRenderer.invoke('custom:set', list),
114
+ fetchModels: (opts) => ipcRenderer.invoke('custom:fetchModels', opts),
115
+ builtinProviders: () => ipcRenderer.invoke('providers:builtin'),
116
+ zenOneClick: () => ipcRenderer.invoke('zen:oneClick'),
117
+ waStart: () => ipcRenderer.invoke('wa:start'),
118
+ waStop: () => ipcRenderer.invoke('wa:stop'),
119
+ waReset: () => ipcRenderer.invoke('wa:reset'),
120
+ waStatus: () => ipcRenderer.invoke('wa:status'),
121
+ waGetAllow: () => ipcRenderer.invoke('wa:allow:get'),
122
+ waQueueGet: () => ipcRenderer.invoke('wa:queue:get'),
123
+ waSetAllow: (list) => ipcRenderer.invoke('wa:allow:set', list),
124
+ setWaLockdown: (v) => ipcRenderer.invoke('wa:lockdown:set', v),
125
+ waGetTts: () => ipcRenderer.invoke('wa:tts:get'),
126
+ waSetTts: (cfg) => ipcRenderer.invoke('wa:tts:set', cfg),
127
+ waGetGroups: () => ipcRenderer.invoke('wa:groups:get'),
128
+ waSetGroups: (cfg) => ipcRenderer.invoke('wa:groups:set', cfg),
129
+ tgGetStatus: () => ipcRenderer.invoke('tg:status:get'),
130
+ tgSetToken: (token) => ipcRenderer.invoke('tg:set', token),
131
+ tgStart: () => ipcRenderer.invoke('tg:start'),
132
+ tgStop: () => ipcRenderer.invoke('tg:stop'),
133
+ tgGetAllow: () => ipcRenderer.invoke('tg:allow:get'),
134
+ tgSetAllow: (list) => ipcRenderer.invoke('tg:allow:set', list),
135
+ tgListSessions: () => ipcRenderer.invoke('tg:sessions'),
136
+ onTgEvent: (cb) => ipcRenderer.on('tg:event', (_e, ev) => cb(ev)),
137
+ dcGetStatus: () => ipcRenderer.invoke('dc:status:get'),
138
+ dcSetToken: (token) => ipcRenderer.invoke('dc:set', token),
139
+ dcStart: () => ipcRenderer.invoke('dc:start'),
140
+ dcStop: () => ipcRenderer.invoke('dc:stop'),
141
+ dcGetAllow: () => ipcRenderer.invoke('dc:allow:get'),
142
+ dcSetAllow: (list) => ipcRenderer.invoke('dc:allow:set', list),
143
+ dcListSessions: () => ipcRenderer.invoke('dc:sessions'),
144
+ onDcEvent: (cb) => ipcRenderer.on('dc:event', (_e, ev) => cb(ev)),
145
+ getUsage: () => ipcRenderer.invoke('usage:get'),
146
+ resetUsage: () => ipcRenderer.invoke('usage:reset'),
147
+ createBackup: () => ipcRenderer.invoke('backup:create'),
148
+ restoreBackup: () => ipcRenderer.invoke('backup:restore'),
149
+ setupStatus: () => ipcRenderer.invoke('setup:status'),
150
+ setupSaveProvider: (p) => ipcRenderer.invoke('setup:saveProvider', p),
151
+ setupComplete: (o) => ipcRenderer.invoke('setup:complete', o),
152
+ setupSkip: () => ipcRenderer.invoke('setup:skip'),
153
+ whereWasIGet: () => ipcRenderer.invoke('wherewasi:get'),
154
+ whereWasISet: (cfg) => ipcRenderer.invoke('wherewasi:set', cfg),
155
+ getEmail: () => ipcRenderer.invoke('email:get'),
156
+ setEmail: (cfg) => ipcRenderer.invoke('email:set', cfg),
157
+ captureScreen: () => ipcRenderer.invoke('screen:capture'),
158
+ waListSessions: () => ipcRenderer.invoke('wa:sessions'),
159
+ botsList: () => ipcRenderer.invoke('bots:list'),
160
+ botsAdd: (input) => ipcRenderer.invoke('bots:add', input),
161
+ botsDmList: () => ipcRenderer.invoke('bots:dm:list'),
162
+ botsDmRead: (id) => ipcRenderer.invoke('bots:dm:read', id),
163
+ githubTrending: (opts) => ipcRenderer.invoke('github:trending', opts),
164
+ botsUpdate: (id, patch) => ipcRenderer.invoke('bots:update', { id, patch }),
165
+ botsRemove: (id) => ipcRenderer.invoke('bots:remove', id),
166
+ botsStats: () => ipcRenderer.invoke('bots:stats'),
167
+ botsActiveGet: () => ipcRenderer.invoke('bots:active:get'),
168
+ botsActivate: (id) => ipcRenderer.invoke('bots:activate', id),
169
+ botsMemGet: (id) => ipcRenderer.invoke('bots:memory:get', id),
170
+ botsMemSet: (id, file, content) => ipcRenderer.invoke('bots:memory:set', { id, file, content }),
171
+ botsLogGet: (id) => ipcRenderer.invoke('bots:log:get', id),
172
+ storeList: () => ipcRenderer.invoke('store:list'),
173
+ storeSetIdentity: (p) => ipcRenderer.invoke('store:identity:set', p),
174
+ storePick: () => ipcRenderer.invoke('store:pick'),
175
+ storeCommit: (p) => ipcRenderer.invoke('store:commit', p),
176
+ storeInstall: (id) => ipcRenderer.invoke('store:install', id),
177
+ storeLike: (id) => ipcRenderer.invoke('store:like', id),
178
+ storeRemove: (id) => ipcRenderer.invoke('store:remove', id),
179
+ storeExport: (id) => ipcRenderer.invoke('store:export', id),
180
+ ideTree: (rel) => ipcRenderer.invoke('ide:tree', rel),
181
+ ideSetRoot: () => ipcRenderer.invoke('ide:setroot'),
182
+ ideRead: (rel) => ipcRenderer.invoke('ide:read', rel),
183
+ ideWrite: (rel, content) => ipcRenderer.invoke('ide:write', { rel, content }),
184
+ idePreview: () => ipcRenderer.invoke('ide:preview'),
185
+ idePreviewFile: (rel) => ipcRenderer.invoke('ide:previewFile', rel),
186
+ idePreviewUrl: (url) => ipcRenderer.invoke('ide:previewUrl', url),
187
+ agentsClearAll: () => ipcRenderer.invoke('agents:clearAll'),
188
+ ideDelete: (rel) => ipcRenderer.invoke('ide:delete', rel),
189
+ onWaEvent: (cb) => ipcRenderer.on('wa:event', (_e, ev) => cb(ev)),
190
+ onEvent: (cb) => ipcRenderer.on('agent:event', (_e, ev) => cb(ev)),
191
+ });