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.
Files changed (39) hide show
  1. package/dist/assets/{TiptapBody-CIEmzy3k.js → TiptapBody-CVFG9ufh.js} +1 -1
  2. package/dist/assets/index-DASEOqMP.js +3558 -0
  3. package/dist/assets/index-DZgKJkf3.css +32 -0
  4. package/dist/index.html +2 -2
  5. package/package.json +3 -2
  6. package/plugins/session-manager-dev/.claude-plugin/plugin.json +3 -1
  7. package/plugins/session-manager-dev/skills/develop/SKILL.md +12 -0
  8. package/plugins/session-manager-dev/skills/develop/standards.md +1 -0
  9. package/plugins/session-manager-dev/skills/explain-to-me/SKILL.md +48 -35
  10. package/plugins/session-manager-dev/skills/find-opportunity/SKILL.md +83 -0
  11. package/plugins/session-manager-dev/skills/memory-sanitation/SKILL.md +127 -0
  12. package/plugins/session-manager-dev/skills/my-feedback/SKILL.md +20 -12
  13. package/plugins/session-manager-dev/skills/optimize-kpi/SKILL.md +4 -3
  14. package/plugins/session-manager-dev/skills/process-feedback/SKILL.md +33 -12
  15. package/src/main/__tests__/adminServer.test.cjs +175 -0
  16. package/src/main/__tests__/chat-mcp-consent-notice.test.cjs +137 -0
  17. package/src/main/__tests__/mcpStatus.test.cjs +61 -0
  18. package/src/main/__tests__/runVerify.test.cjs +74 -4
  19. package/src/main/__tests__/scheduler-autofix-select.test.cjs +50 -2
  20. package/src/main/__tests__/scheduler-autopromote.test.cjs +19 -1
  21. package/src/main/adminServer.cjs +157 -0
  22. package/src/main/browserCapture.cjs +714 -0
  23. package/src/main/browserView.cjs +613 -0
  24. package/src/main/chatRunner.cjs +60 -0
  25. package/src/main/config.cjs +37 -1
  26. package/src/main/historyAggregator.cjs +92 -6
  27. package/src/main/index.cjs +37 -3
  28. package/src/main/ipcSchemas.cjs +106 -0
  29. package/src/main/lib/schedulerConfig.cjs +6 -2
  30. package/src/main/mcpStatus.cjs +93 -0
  31. package/src/main/runVerify.cjs +14 -1
  32. package/src/main/scheduler.cjs +159 -31
  33. package/src/main/sessionsStore.cjs +4 -3
  34. package/src/preload/api.d.ts +154 -5
  35. package/src/preload/browserViewPreload.cjs +67 -0
  36. package/src/preload/index.cjs +63 -5
  37. package/dist/assets/index-2Om-ouz6.js +0 -3534
  38. package/dist/assets/index-DeIJ8SM5.css +0 -32
  39. package/src/main/docEditor.cjs +0 -92
@@ -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.