beast-agent 1.7.0 → 1.9.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,192 +1,192 @@
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
- winCtrl: (action) => ipcRenderer.invoke('window:ctrl', action),
65
- toggleBrowser: () => ipcRenderer.invoke('browser:toggle'),
66
- browserShownGet: () => ipcRenderer.invoke('browser:shown:get'),
67
- browserShownSet: (v) => ipcRenderer.invoke('browser:shown:set', v),
68
- terminalToggle: () => ipcRenderer.invoke('terminal:toggle'),
69
- terminalRun: (cmd, shell) => ipcRenderer.invoke('terminal:run', { cmd, shell }),
70
- terminalStop: () => ipcRenderer.invoke('terminal:stop'),
71
- beastcodeSend: (msg, attachments) => ipcRenderer.invoke('beastcode:send', { msg, attachments }),
72
- bcTodos: (sessionId) => ipcRenderer.invoke('bc:todos', { sessionId }),
73
- bcUndo: (sessionId, todoId) => ipcRenderer.invoke('bc:undo', { sessionId, todoId }),
74
- beastcodeStop: () => ipcRenderer.invoke('beastcode:stop'),
75
- beastcodeNew: () => ipcRenderer.invoke('beastcode:new'),
76
- thinkSet: (v) => ipcRenderer.invoke('think:set', v),
77
- obscuraGet: () => ipcRenderer.invoke('obscura:get'),
78
- obscuraInstall: () => ipcRenderer.invoke('obscura:install'),
79
- obscuraInstallState: () => ipcRenderer.invoke('obscura:installState'),
80
- obscuraSetEnabled: (v) => ipcRenderer.invoke('obscura:setEnabled', v),
81
- searchOrderGet: () => ipcRenderer.invoke('searchorder:get'),
82
- searchOrderSet: (chain) => ipcRenderer.invoke('searchorder:set', chain),
83
- sessionsOrderGet: () => ipcRenderer.invoke('sessions:order:get'),
84
- sessionsOrderSet: (order) => ipcRenderer.invoke('sessions:order:set', order),
85
- tinyfishGet: () => ipcRenderer.invoke('tinyfish:get'),
86
- tinyfishSet: (key) => ipcRenderer.invoke('tinyfish:set', key),
87
- tinyfishClear: () => ipcRenderer.invoke('tinyfish:clear'),
88
- browserNavigate: (url) => ipcRenderer.invoke('browser:navigate', url),
89
- browserCtrl: (action) => ipcRenderer.invoke('browser:ctrl', action),
90
- browserPhone: (on) => ipcRenderer.invoke('browser:phone', on),
91
- browserSetWidth: (w) => ipcRenderer.invoke('browser:setWidth', w),
92
- browserSetIgnoreMouse: (flag) => ipcRenderer.invoke('browser:setIgnoreMouse', flag),
93
- browserScreenshot: () => ipcRenderer.invoke('browser:screenshot'),
94
- cronList: () => ipcRenderer.invoke('cron:list'),
95
- cronAdd: (job) => ipcRenderer.invoke('cron:add', job),
96
- cronUpdate: (id, patch) => ipcRenderer.invoke('cron:update', { id, patch }),
97
- cronDelete: (id) => ipcRenderer.invoke('cron:delete', id),
98
- cronToggle: (id) => ipcRenderer.invoke('cron:toggle', id),
99
- cronRunNow: (id) => ipcRenderer.invoke('cron:runNow', id),
100
-
101
- watchersList: () => ipcRenderer.invoke('watchers:list'),
102
-
103
- watchersAdd: (input) => ipcRenderer.invoke('watchers:add', input),
104
-
105
- watchersRemove: (id) => ipcRenderer.invoke('watchers:remove', id),
106
-
107
- watchersToggle: (id) => ipcRenderer.invoke('watchers:toggle', id),
108
-
109
- providerKeys: () => ipcRenderer.invoke('providers:keys'),
110
-
111
- openPath: (p) => ipcRenderer.invoke('shell:openPath', p),
112
-
113
- showItemInFolder: (p) => ipcRenderer.invoke('shell:showItem', p),
114
- setCustomProviders: (list) => ipcRenderer.invoke('custom:set', list),
115
- fetchModels: (opts) => ipcRenderer.invoke('custom:fetchModels', opts),
116
- builtinProviders: () => ipcRenderer.invoke('providers:builtin'),
117
- zenOneClick: () => ipcRenderer.invoke('zen:oneClick'),
118
- waStart: () => ipcRenderer.invoke('wa:start'),
119
- waStop: () => ipcRenderer.invoke('wa:stop'),
120
- waReset: () => ipcRenderer.invoke('wa:reset'),
121
- waStatus: () => ipcRenderer.invoke('wa:status'),
122
- waGetAllow: () => ipcRenderer.invoke('wa:allow:get'),
123
- waQueueGet: () => ipcRenderer.invoke('wa:queue:get'),
124
- waSetAllow: (list) => ipcRenderer.invoke('wa:allow:set', list),
125
- setWaLockdown: (v) => ipcRenderer.invoke('wa:lockdown:set', v),
126
- waGetTts: () => ipcRenderer.invoke('wa:tts:get'),
127
- waSetTts: (cfg) => ipcRenderer.invoke('wa:tts:set', cfg),
128
- waGetGroups: () => ipcRenderer.invoke('wa:groups:get'),
129
- waSetGroups: (cfg) => ipcRenderer.invoke('wa:groups:set', cfg),
130
- tgGetStatus: () => ipcRenderer.invoke('tg:status:get'),
131
- tgSetToken: (token) => ipcRenderer.invoke('tg:set', token),
132
- tgStart: () => ipcRenderer.invoke('tg:start'),
133
- tgStop: () => ipcRenderer.invoke('tg:stop'),
134
- tgGetAllow: () => ipcRenderer.invoke('tg:allow:get'),
135
- tgSetAllow: (list) => ipcRenderer.invoke('tg:allow:set', list),
136
- tgListSessions: () => ipcRenderer.invoke('tg:sessions'),
137
- onTgEvent: (cb) => ipcRenderer.on('tg:event', (_e, ev) => cb(ev)),
138
- dcGetStatus: () => ipcRenderer.invoke('dc:status:get'),
139
- dcSetToken: (token) => ipcRenderer.invoke('dc:set', token),
140
- dcStart: () => ipcRenderer.invoke('dc:start'),
141
- dcStop: () => ipcRenderer.invoke('dc:stop'),
142
- dcGetAllow: () => ipcRenderer.invoke('dc:allow:get'),
143
- dcSetAllow: (list) => ipcRenderer.invoke('dc:allow:set', list),
144
- dcListSessions: () => ipcRenderer.invoke('dc:sessions'),
145
- onDcEvent: (cb) => ipcRenderer.on('dc:event', (_e, ev) => cb(ev)),
146
- getUsage: () => ipcRenderer.invoke('usage:get'),
147
- resetUsage: () => ipcRenderer.invoke('usage:reset'),
148
- createBackup: () => ipcRenderer.invoke('backup:create'),
149
- restoreBackup: () => ipcRenderer.invoke('backup:restore'),
150
- setupStatus: () => ipcRenderer.invoke('setup:status'),
151
- setupSaveProvider: (p) => ipcRenderer.invoke('setup:saveProvider', p),
152
- setupComplete: (o) => ipcRenderer.invoke('setup:complete', o),
153
- setupSkip: () => ipcRenderer.invoke('setup:skip'),
154
- whereWasIGet: () => ipcRenderer.invoke('wherewasi:get'),
155
- whereWasISet: (cfg) => ipcRenderer.invoke('wherewasi:set', cfg),
156
- getEmail: () => ipcRenderer.invoke('email:get'),
157
- setEmail: (cfg) => ipcRenderer.invoke('email:set', cfg),
158
- captureScreen: () => ipcRenderer.invoke('screen:capture'),
159
- waListSessions: () => ipcRenderer.invoke('wa:sessions'),
160
- botsList: () => ipcRenderer.invoke('bots:list'),
161
- botsAdd: (input) => ipcRenderer.invoke('bots:add', input),
162
- botsDmList: () => ipcRenderer.invoke('bots:dm:list'),
163
- botsDmRead: (id) => ipcRenderer.invoke('bots:dm:read', id),
164
- githubTrending: (opts) => ipcRenderer.invoke('github:trending', opts),
165
- botsUpdate: (id, patch) => ipcRenderer.invoke('bots:update', { id, patch }),
166
- botsRemove: (id) => ipcRenderer.invoke('bots:remove', id),
167
- botsStats: () => ipcRenderer.invoke('bots:stats'),
168
- botsActiveGet: () => ipcRenderer.invoke('bots:active:get'),
169
- botsActivate: (id) => ipcRenderer.invoke('bots:activate', id),
170
- botsMemGet: (id) => ipcRenderer.invoke('bots:memory:get', id),
171
- botsMemSet: (id, file, content) => ipcRenderer.invoke('bots:memory:set', { id, file, content }),
172
- botsLogGet: (id) => ipcRenderer.invoke('bots:log:get', id),
173
- storeList: () => ipcRenderer.invoke('store:list'),
174
- storeSetIdentity: (p) => ipcRenderer.invoke('store:identity:set', p),
175
- storePick: () => ipcRenderer.invoke('store:pick'),
176
- storeCommit: (p) => ipcRenderer.invoke('store:commit', p),
177
- storeInstall: (id) => ipcRenderer.invoke('store:install', id),
178
- storeLike: (id) => ipcRenderer.invoke('store:like', id),
179
- storeRemove: (id) => ipcRenderer.invoke('store:remove', id),
180
- storeExport: (id) => ipcRenderer.invoke('store:export', id),
181
- ideTree: (rel) => ipcRenderer.invoke('ide:tree', rel),
182
- ideSetRoot: () => ipcRenderer.invoke('ide:setroot'),
183
- ideRead: (rel) => ipcRenderer.invoke('ide:read', rel),
184
- ideWrite: (rel, content) => ipcRenderer.invoke('ide:write', { rel, content }),
185
- idePreview: () => ipcRenderer.invoke('ide:preview'),
186
- idePreviewFile: (rel) => ipcRenderer.invoke('ide:previewFile', rel),
187
- idePreviewUrl: (url) => ipcRenderer.invoke('ide:previewUrl', url),
188
- agentsClearAll: () => ipcRenderer.invoke('agents:clearAll'),
189
- ideDelete: (rel) => ipcRenderer.invoke('ide:delete', rel),
190
- onWaEvent: (cb) => ipcRenderer.on('wa:event', (_e, ev) => cb(ev)),
191
- onEvent: (cb) => ipcRenderer.on('agent:event', (_e, ev) => cb(ev)),
192
- });
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
+ mcpStatus: () => ipcRenderer.invoke('mcp:status'),
46
+ mcpConfigGet: () => ipcRenderer.invoke('mcp:config:get'),
47
+ mcpConfigSet: (raw) => ipcRenderer.invoke('mcp:config:set', raw),
48
+ mcpRefresh: (name) => ipcRenderer.invoke('mcp:refresh', name),
49
+ getLimits: () => ipcRenderer.invoke('limits:get'),
50
+ setLimits: (cfg) => ipcRenderer.invoke('limits:set', cfg),
51
+ secGet: () => ipcRenderer.invoke('sec:get'),
52
+ secSet: (cfg) => ipcRenderer.invoke('sec:set', cfg),
53
+ approvalRespond: (id, ok, always) => ipcRenderer.invoke('approval:respond', { id, ok, always }),
54
+ sttTranscribe: (b64, lang) => ipcRenderer.invoke('stt:transcribe', b64, lang),
55
+ sttLangGet: () => ipcRenderer.invoke('stt:lang:get'),
56
+ sttLangSet: (lang) => ipcRenderer.invoke('stt:lang:set', lang),
57
+ updateStatus: () => ipcRenderer.invoke('update:status'),
58
+ updateCheck: () => ipcRenderer.invoke('update:check'),
59
+ updateInstall: () => ipcRenderer.invoke('update:install'),
60
+ updateSetAuto: (cfg) => ipcRenderer.invoke('update:setAuto', cfg),
61
+ setModel: (sel) => ipcRenderer.invoke('model:set', sel),
62
+ setRoleModels: (map) => ipcRenderer.invoke('model:role', map),
63
+ deleteModel: (sel) => ipcRenderer.invoke('model:delete', sel),
64
+ restoreModel: (sel) => ipcRenderer.invoke('model:restore', sel),
65
+ setVisibleModels: (list) => ipcRenderer.invoke('visible-models:set', list),
66
+ refreshModels: () => ipcRenderer.invoke('models:refresh'),
67
+ setTheme: (t) => ipcRenderer.invoke('theme:set', t),
68
+ winCtrl: (action) => ipcRenderer.invoke('window:ctrl', action),
69
+ toggleBrowser: () => ipcRenderer.invoke('browser:toggle'),
70
+ browserShownGet: () => ipcRenderer.invoke('browser:shown:get'),
71
+ browserShownSet: (v) => ipcRenderer.invoke('browser:shown:set', v),
72
+ terminalToggle: () => ipcRenderer.invoke('terminal:toggle'),
73
+ terminalRun: (cmd, shell) => ipcRenderer.invoke('terminal:run', { cmd, shell }),
74
+ terminalStop: () => ipcRenderer.invoke('terminal:stop'),
75
+ beastcodeSend: (msg, attachments) => ipcRenderer.invoke('beastcode:send', { msg, attachments }),
76
+ bcTodos: (sessionId) => ipcRenderer.invoke('bc:todos', { sessionId }),
77
+ bcUndo: (sessionId, todoId) => ipcRenderer.invoke('bc:undo', { sessionId, todoId }),
78
+ beastcodeStop: () => ipcRenderer.invoke('beastcode:stop'),
79
+ beastcodeNew: () => ipcRenderer.invoke('beastcode:new'),
80
+ thinkSet: (v) => ipcRenderer.invoke('think:set', v),
81
+ searchOrderGet: () => ipcRenderer.invoke('searchorder:get'),
82
+ searchOrderSet: (chain) => ipcRenderer.invoke('searchorder:set', chain),
83
+ sessionsOrderGet: () => ipcRenderer.invoke('sessions:order:get'),
84
+ sessionsOrderSet: (order) => ipcRenderer.invoke('sessions:order:set', order),
85
+ tinyfishGet: () => ipcRenderer.invoke('tinyfish:get'),
86
+ tinyfishSet: (key) => ipcRenderer.invoke('tinyfish:set', key),
87
+ tinyfishClear: () => ipcRenderer.invoke('tinyfish:clear'),
88
+ browserNavigate: (url) => ipcRenderer.invoke('browser:navigate', url),
89
+ browserCtrl: (action) => ipcRenderer.invoke('browser:ctrl', action),
90
+ browserPhone: (on) => ipcRenderer.invoke('browser:phone', on),
91
+ browserSetWidth: (w) => ipcRenderer.invoke('browser:setWidth', w),
92
+ browserSetIgnoreMouse: (flag) => ipcRenderer.invoke('browser:setIgnoreMouse', flag),
93
+ browserScreenshot: () => ipcRenderer.invoke('browser:screenshot'),
94
+ cronList: () => ipcRenderer.invoke('cron:list'),
95
+ cronAdd: (job) => ipcRenderer.invoke('cron:add', job),
96
+ cronUpdate: (id, patch) => ipcRenderer.invoke('cron:update', { id, patch }),
97
+ cronDelete: (id) => ipcRenderer.invoke('cron:delete', id),
98
+ cronToggle: (id) => ipcRenderer.invoke('cron:toggle', id),
99
+ cronRunNow: (id) => ipcRenderer.invoke('cron:runNow', id),
100
+
101
+ watchersList: () => ipcRenderer.invoke('watchers:list'),
102
+
103
+ watchersAdd: (input) => ipcRenderer.invoke('watchers:add', input),
104
+
105
+ watchersRemove: (id) => ipcRenderer.invoke('watchers:remove', id),
106
+
107
+ watchersToggle: (id) => ipcRenderer.invoke('watchers:toggle', id),
108
+
109
+ providerKeys: () => ipcRenderer.invoke('providers:keys'),
110
+
111
+ openPath: (p) => ipcRenderer.invoke('shell:openPath', p),
112
+
113
+ showItemInFolder: (p) => ipcRenderer.invoke('shell:showItem', p),
114
+ setCustomProviders: (list) => ipcRenderer.invoke('custom:set', list),
115
+ fetchModels: (opts) => ipcRenderer.invoke('custom:fetchModels', opts),
116
+ builtinProviders: () => ipcRenderer.invoke('providers:builtin'),
117
+ zenOneClick: () => ipcRenderer.invoke('zen:oneClick'),
118
+ waStart: () => ipcRenderer.invoke('wa:start'),
119
+ waStop: () => ipcRenderer.invoke('wa:stop'),
120
+ waReset: () => ipcRenderer.invoke('wa:reset'),
121
+ waStatus: () => ipcRenderer.invoke('wa:status'),
122
+ waGetAllow: () => ipcRenderer.invoke('wa:allow:get'),
123
+ waQueueGet: () => ipcRenderer.invoke('wa:queue:get'),
124
+ waSetAllow: (list) => ipcRenderer.invoke('wa:allow:set', list),
125
+ setWaLockdown: (v) => ipcRenderer.invoke('wa:lockdown:set', v),
126
+ waGetTts: () => ipcRenderer.invoke('wa:tts:get'),
127
+ waSetTts: (cfg) => ipcRenderer.invoke('wa:tts:set', cfg),
128
+ waGetGroups: () => ipcRenderer.invoke('wa:groups:get'),
129
+ waSetGroups: (cfg) => ipcRenderer.invoke('wa:groups:set', cfg),
130
+ tgGetStatus: () => ipcRenderer.invoke('tg:status:get'),
131
+ tgSetToken: (token) => ipcRenderer.invoke('tg:set', token),
132
+ tgStart: () => ipcRenderer.invoke('tg:start'),
133
+ tgStop: () => ipcRenderer.invoke('tg:stop'),
134
+ tgGetAllow: () => ipcRenderer.invoke('tg:allow:get'),
135
+ tgSetAllow: (list) => ipcRenderer.invoke('tg:allow:set', list),
136
+ tgListSessions: () => ipcRenderer.invoke('tg:sessions'),
137
+ onTgEvent: (cb) => ipcRenderer.on('tg:event', (_e, ev) => cb(ev)),
138
+ dcGetStatus: () => ipcRenderer.invoke('dc:status:get'),
139
+ dcSetToken: (token) => ipcRenderer.invoke('dc:set', token),
140
+ dcStart: () => ipcRenderer.invoke('dc:start'),
141
+ dcStop: () => ipcRenderer.invoke('dc:stop'),
142
+ dcGetAllow: () => ipcRenderer.invoke('dc:allow:get'),
143
+ dcSetAllow: (list) => ipcRenderer.invoke('dc:allow:set', list),
144
+ dcListSessions: () => ipcRenderer.invoke('dc:sessions'),
145
+ onDcEvent: (cb) => ipcRenderer.on('dc:event', (_e, ev) => cb(ev)),
146
+ getUsage: () => ipcRenderer.invoke('usage:get'),
147
+ resetUsage: () => ipcRenderer.invoke('usage:reset'),
148
+ createBackup: () => ipcRenderer.invoke('backup:create'),
149
+ restoreBackup: () => ipcRenderer.invoke('backup:restore'),
150
+ setupStatus: () => ipcRenderer.invoke('setup:status'),
151
+ setupSaveProvider: (p) => ipcRenderer.invoke('setup:saveProvider', p),
152
+ setupComplete: (o) => ipcRenderer.invoke('setup:complete', o),
153
+ setupSkip: () => ipcRenderer.invoke('setup:skip'),
154
+ whereWasIGet: () => ipcRenderer.invoke('wherewasi:get'),
155
+ whereWasISet: (cfg) => ipcRenderer.invoke('wherewasi:set', cfg),
156
+ getEmail: () => ipcRenderer.invoke('email:get'),
157
+ setEmail: (cfg) => ipcRenderer.invoke('email:set', cfg),
158
+ captureScreen: () => ipcRenderer.invoke('screen:capture'),
159
+ waListSessions: () => ipcRenderer.invoke('wa:sessions'),
160
+ botsList: () => ipcRenderer.invoke('bots:list'),
161
+ botsAdd: (input) => ipcRenderer.invoke('bots:add', input),
162
+ botsDmList: () => ipcRenderer.invoke('bots:dm:list'),
163
+ botsDmRead: (id) => ipcRenderer.invoke('bots:dm:read', id),
164
+ githubTrending: (opts) => ipcRenderer.invoke('github:trending', opts),
165
+ botsUpdate: (id, patch) => ipcRenderer.invoke('bots:update', { id, patch }),
166
+ botsRemove: (id) => ipcRenderer.invoke('bots:remove', id),
167
+ botsStats: () => ipcRenderer.invoke('bots:stats'),
168
+ botsActiveGet: () => ipcRenderer.invoke('bots:active:get'),
169
+ botsActivate: (id) => ipcRenderer.invoke('bots:activate', id),
170
+ botsMemGet: (id) => ipcRenderer.invoke('bots:memory:get', id),
171
+ botsMemSet: (id, file, content) => ipcRenderer.invoke('bots:memory:set', { id, file, content }),
172
+ botsLogGet: (id) => ipcRenderer.invoke('bots:log:get', id),
173
+ storeList: () => ipcRenderer.invoke('store:list'),
174
+ storeSetIdentity: (p) => ipcRenderer.invoke('store:identity:set', p),
175
+ storePick: () => ipcRenderer.invoke('store:pick'),
176
+ storeCommit: (p) => ipcRenderer.invoke('store:commit', p),
177
+ storeInstall: (id) => ipcRenderer.invoke('store:install', id),
178
+ storeLike: (id) => ipcRenderer.invoke('store:like', id),
179
+ storeRemove: (id) => ipcRenderer.invoke('store:remove', id),
180
+ storeExport: (id) => ipcRenderer.invoke('store:export', id),
181
+ ideTree: (rel) => ipcRenderer.invoke('ide:tree', rel),
182
+ ideSetRoot: () => ipcRenderer.invoke('ide:setroot'),
183
+ ideRead: (rel) => ipcRenderer.invoke('ide:read', rel),
184
+ ideWrite: (rel, content) => ipcRenderer.invoke('ide:write', { rel, content }),
185
+ idePreview: () => ipcRenderer.invoke('ide:preview'),
186
+ idePreviewFile: (rel) => ipcRenderer.invoke('ide:previewFile', rel),
187
+ idePreviewUrl: (url) => ipcRenderer.invoke('ide:previewUrl', url),
188
+ agentsClearAll: () => ipcRenderer.invoke('agents:clearAll'),
189
+ ideDelete: (rel) => ipcRenderer.invoke('ide:delete', rel),
190
+ onWaEvent: (cb) => ipcRenderer.on('wa:event', (_e, ev) => cb(ev)),
191
+ onEvent: (cb) => ipcRenderer.on('agent:event', (_e, ev) => cb(ev)),
192
+ });