claude-code-session-manager 0.35.2 → 0.35.4
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/dist/assets/{TiptapBody-CIEmzy3k.js → TiptapBody-CVFG9ufh.js} +1 -1
- package/dist/assets/index-DASEOqMP.js +3558 -0
- package/dist/assets/index-DZgKJkf3.css +32 -0
- package/dist/index.html +2 -2
- package/package.json +3 -2
- package/plugins/session-manager-dev/.claude-plugin/plugin.json +3 -1
- package/plugins/session-manager-dev/skills/develop/SKILL.md +12 -0
- package/plugins/session-manager-dev/skills/develop/standards.md +1 -0
- package/plugins/session-manager-dev/skills/explain-to-me/SKILL.md +48 -35
- package/plugins/session-manager-dev/skills/find-opportunity/SKILL.md +83 -0
- package/plugins/session-manager-dev/skills/memory-sanitation/SKILL.md +127 -0
- package/plugins/session-manager-dev/skills/my-feedback/SKILL.md +20 -12
- package/plugins/session-manager-dev/skills/optimize-kpi/SKILL.md +4 -3
- package/plugins/session-manager-dev/skills/process-feedback/SKILL.md +33 -12
- package/src/main/__tests__/adminServer.test.cjs +175 -0
- package/src/main/__tests__/chat-mcp-consent-notice.test.cjs +137 -0
- package/src/main/__tests__/mcpStatus.test.cjs +61 -0
- package/src/main/__tests__/runVerify.test.cjs +74 -4
- package/src/main/__tests__/scheduler-autofix-select.test.cjs +50 -2
- package/src/main/__tests__/scheduler-autopromote.test.cjs +19 -1
- package/src/main/adminServer.cjs +157 -0
- package/src/main/browserCapture.cjs +714 -0
- package/src/main/browserView.cjs +613 -0
- package/src/main/chatRunner.cjs +60 -0
- package/src/main/config.cjs +37 -1
- package/src/main/historyAggregator.cjs +92 -6
- package/src/main/index.cjs +37 -3
- package/src/main/ipcSchemas.cjs +106 -0
- package/src/main/lib/schedulerConfig.cjs +6 -2
- package/src/main/mcpStatus.cjs +93 -0
- package/src/main/runVerify.cjs +14 -1
- package/src/main/scheduler.cjs +159 -31
- package/src/main/sessionsStore.cjs +4 -3
- package/src/preload/api.d.ts +154 -5
- package/src/preload/browserViewPreload.cjs +67 -0
- package/src/preload/index.cjs +63 -5
- package/dist/assets/index-2Om-ouz6.js +0 -3534
- package/dist/assets/index-DeIJ8SM5.css +0 -32
- package/src/main/docEditor.cjs +0 -92
package/src/preload/index.cjs
CHANGED
|
@@ -54,6 +54,60 @@ contextBridge.exposeInMainWorld('api', {
|
|
|
54
54
|
return () => ipcRenderer.removeListener('pty:write-error', listener);
|
|
55
55
|
},
|
|
56
56
|
},
|
|
57
|
+
browser: {
|
|
58
|
+
create: (payload) => ipcRenderer.invoke('browser:create', payload),
|
|
59
|
+
setBounds: (payload) => ipcRenderer.invoke('browser:set-bounds', payload),
|
|
60
|
+
show: (viewId) => ipcRenderer.invoke('browser:show', { viewId }),
|
|
61
|
+
hide: (viewId) => ipcRenderer.invoke('browser:hide', { viewId }),
|
|
62
|
+
destroy: (viewId) => ipcRenderer.invoke('browser:destroy', { viewId }),
|
|
63
|
+
navigate: (payload) => ipcRenderer.invoke('browser:navigate', payload),
|
|
64
|
+
back: (viewId) => ipcRenderer.invoke('browser:back', { viewId }),
|
|
65
|
+
forward: (viewId) => ipcRenderer.invoke('browser:forward', { viewId }),
|
|
66
|
+
reload: (viewId) => ipcRenderer.invoke('browser:reload', { viewId }),
|
|
67
|
+
stop: (viewId) => ipcRenderer.invoke('browser:stop', { viewId }),
|
|
68
|
+
onNavState: (viewId, handler) => {
|
|
69
|
+
const channel = `browser:nav-state:${viewId}`;
|
|
70
|
+
const listener = (_e, state) => handler(state);
|
|
71
|
+
ipcRenderer.on(channel, listener);
|
|
72
|
+
return () => ipcRenderer.removeListener(channel, listener);
|
|
73
|
+
},
|
|
74
|
+
recordStart: (viewId) => ipcRenderer.invoke('browser:record-start', { viewId }),
|
|
75
|
+
recordStop: (viewId) => ipcRenderer.invoke('browser:record-stop', { viewId }),
|
|
76
|
+
onRecordStep: (viewId, handler) => {
|
|
77
|
+
const channel = `browser:record-step:${viewId}`;
|
|
78
|
+
const listener = (_e, step) => handler(step);
|
|
79
|
+
ipcRenderer.on(channel, listener);
|
|
80
|
+
return () => ipcRenderer.removeListener(channel, listener);
|
|
81
|
+
},
|
|
82
|
+
captureDom: (payload) => ipcRenderer.invoke('browser:capture-dom', payload),
|
|
83
|
+
captureShot: (viewId) => ipcRenderer.invoke('browser:capture-shot', { viewId }),
|
|
84
|
+
saveBinary: (path, base64) => ipcRenderer.invoke('browser:save-binary', { path, base64 }),
|
|
85
|
+
replay: (payload) => ipcRenderer.invoke('browser:replay', payload),
|
|
86
|
+
onReplayStep: (viewId, handler) => {
|
|
87
|
+
const channel = `browser:replay-step:${viewId}`;
|
|
88
|
+
const listener = (_e, step) => handler(step);
|
|
89
|
+
ipcRenderer.on(channel, listener);
|
|
90
|
+
return () => ipcRenderer.removeListener(channel, listener);
|
|
91
|
+
},
|
|
92
|
+
setZoom: (payload) => ipcRenderer.invoke('browser:set-zoom', payload),
|
|
93
|
+
find: (payload) => ipcRenderer.invoke('browser:find', payload),
|
|
94
|
+
stopFind: (viewId) => ipcRenderer.invoke('browser:stop-find', { viewId }),
|
|
95
|
+
onFindResult: (viewId, handler) => {
|
|
96
|
+
const channel = `browser:find-result:${viewId}`;
|
|
97
|
+
const listener = (_e, result) => handler(result);
|
|
98
|
+
ipcRenderer.on(channel, listener);
|
|
99
|
+
return () => ipcRenderer.removeListener(channel, listener);
|
|
100
|
+
},
|
|
101
|
+
pickerStart: (viewId) => ipcRenderer.invoke('browser:picker-start', { viewId }),
|
|
102
|
+
pickerStop: (viewId) => ipcRenderer.invoke('browser:picker-stop', { viewId }),
|
|
103
|
+
onPickerEvent: (viewId, handler) => {
|
|
104
|
+
const channel = `browser:picker-event:${viewId}`;
|
|
105
|
+
const listener = (_e, ev) => handler(ev);
|
|
106
|
+
ipcRenderer.on(channel, listener);
|
|
107
|
+
return () => ipcRenderer.removeListener(channel, listener);
|
|
108
|
+
},
|
|
109
|
+
capture: (payload) => ipcRenderer.invoke('browser:capture', payload),
|
|
110
|
+
},
|
|
57
111
|
transcripts: {
|
|
58
112
|
subscribe: (payload) => ipcRenderer.invoke('transcript:subscribe', payload),
|
|
59
113
|
unsubscribe: (tabId) => ipcRenderer.invoke('transcript:unsubscribe', { tabId }),
|
|
@@ -75,6 +129,9 @@ contextBridge.exposeInMainWorld('api', {
|
|
|
75
129
|
billing: {
|
|
76
130
|
fetch: () => ipcRenderer.invoke('billing:fetch'),
|
|
77
131
|
},
|
|
132
|
+
mcp: {
|
|
133
|
+
status: () => ipcRenderer.invoke('mcp:status'),
|
|
134
|
+
},
|
|
78
135
|
usageMatrix: {
|
|
79
136
|
snapshot: () => ipcRenderer.invoke('usage:matrix:snapshot'),
|
|
80
137
|
onTick: (handler) => {
|
|
@@ -225,6 +282,7 @@ contextBridge.exposeInMainWorld('api', {
|
|
|
225
282
|
},
|
|
226
283
|
clipboard: {
|
|
227
284
|
pasteImage: () => ipcRenderer.invoke('clipboard:paste-image'),
|
|
285
|
+
copyImage: (dataUrl) => ipcRenderer.invoke('browser:copy-image', { dataUrl }),
|
|
228
286
|
},
|
|
229
287
|
memory: {
|
|
230
288
|
list: (workspace) => ipcRenderer.invoke('memory:list', workspace ? { workspace } : {}),
|
|
@@ -252,11 +310,6 @@ contextBridge.exposeInMainWorld('api', {
|
|
|
252
310
|
},
|
|
253
311
|
delete: (agentId, entryId) => ipcRenderer.invoke('agent-memory:delete', { agentId, entryId }),
|
|
254
312
|
},
|
|
255
|
-
docEditor: {
|
|
256
|
-
pickFile: (payload) => ipcRenderer.invoke('doc-editor:pick-file', payload),
|
|
257
|
-
readFile: (p) => ipcRenderer.invoke('doc-editor:read-file', { path: p }),
|
|
258
|
-
writeFile: (p, text) => ipcRenderer.invoke('doc-editor:write-file', { path: p, text }),
|
|
259
|
-
},
|
|
260
313
|
git: {
|
|
261
314
|
// Returns null when cwd is not a git repo, git is missing, or the call
|
|
262
315
|
// times out (5s ceiling). The existing `app.gitBranch` is intentionally
|
|
@@ -356,6 +409,11 @@ contextBridge.exposeInMainWorld('api', {
|
|
|
356
409
|
ipcRenderer.on('chat:run:error', listener);
|
|
357
410
|
return () => ipcRenderer.removeListener('chat:run:error', listener);
|
|
358
411
|
},
|
|
412
|
+
onNotice: (handler) => {
|
|
413
|
+
const listener = (_e, payload) => handler(payload);
|
|
414
|
+
ipcRenderer.on('chat:run:notice', listener);
|
|
415
|
+
return () => ipcRenderer.removeListener('chat:run:notice', listener);
|
|
416
|
+
},
|
|
359
417
|
},
|
|
360
418
|
exchanges: {
|
|
361
419
|
/** List exchanges for a project (durable chat-run log), newest-first.
|