claude-code-session-manager 0.53.0 → 0.55.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/dist/assets/{TiptapBody-BYG18cfk.js → TiptapBody-6GmgSP5x.js} +1 -1
- package/dist/assets/{index-D1v4VU6k.js → index-Bh-XKC4X.js} +1141 -1138
- package/dist/assets/{index-BoOiJJOr.css → index-CMQ3X1Y6.css} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/src/main/__tests__/activeIndexMerge.test.cjs +235 -0
- package/src/main/__tests__/agentLibrary.test.cjs +83 -1
- package/src/main/__tests__/epicMint.test.cjs +3 -3
- package/src/main/agentLibrary.cjs +107 -1
- package/src/main/index.cjs +9 -0
- package/src/main/ipcSchemas.cjs +34 -0
- package/src/main/lib/activeIndexMerge.cjs +168 -0
- package/src/main/lib/epicMint.cjs +31 -8
- package/src/main/promptSessionEvents.cjs +7 -24
- package/src/preload/api.d.ts +39 -0
- package/src/preload/index.cjs +8 -0
package/src/preload/api.d.ts
CHANGED
|
@@ -263,12 +263,29 @@ export interface AgentPersona {
|
|
|
263
263
|
name: string;
|
|
264
264
|
description: string | null;
|
|
265
265
|
tools: string[];
|
|
266
|
+
model: string | null;
|
|
267
|
+
color: string | null;
|
|
268
|
+
/** Epic intent tags (tagLibrary.ts's TAG_LIBRARY) this persona is associated with. */
|
|
269
|
+
tags: string[];
|
|
266
270
|
path: string;
|
|
267
271
|
body: string;
|
|
268
272
|
/** Project names (basename of cwd) whose currently-open tab overlays this agent. */
|
|
269
273
|
overridingProjects: string[];
|
|
270
274
|
}
|
|
271
275
|
|
|
276
|
+
/** Payload for `agents.savePersona` — creates or overwrites a global persona file. */
|
|
277
|
+
export interface AgentPersonaSaveInput {
|
|
278
|
+
name: string;
|
|
279
|
+
/** Previous filename, when renaming an existing persona. Omit when creating. */
|
|
280
|
+
originalName?: string;
|
|
281
|
+
description: string;
|
|
282
|
+
tools: string[];
|
|
283
|
+
model: string;
|
|
284
|
+
color: string;
|
|
285
|
+
tags: string[];
|
|
286
|
+
body: string;
|
|
287
|
+
}
|
|
288
|
+
|
|
272
289
|
export interface VoiceHotkeyConfig {
|
|
273
290
|
accelerator: string;
|
|
274
291
|
mode: 'hold' | 'toggle';
|
|
@@ -1329,6 +1346,9 @@ export interface SessionManagerAPI {
|
|
|
1329
1346
|
};
|
|
1330
1347
|
agents: {
|
|
1331
1348
|
listPersonas: () => Promise<AgentPersona[]>;
|
|
1349
|
+
savePersona: (payload: AgentPersonaSaveInput) => Promise<{ ok: boolean; path: string }>;
|
|
1350
|
+
deletePersona: (payload: { name: string }) => Promise<{ ok: boolean }>;
|
|
1351
|
+
removeOverride: (payload: { name: string; projectName: string }) => Promise<{ ok: boolean }>;
|
|
1332
1352
|
};
|
|
1333
1353
|
logs: {
|
|
1334
1354
|
write: (
|
|
@@ -1653,9 +1673,28 @@ export interface SessionManagerAPI {
|
|
|
1653
1673
|
* from notifyOriginatingTab) — lets an already-hydrated Epic pick it up
|
|
1654
1674
|
* live instead of waiting for a restart. */
|
|
1655
1675
|
onEventAppended: (handler: (e: PromptSessionEventAppendedPayload) => void) => () => void;
|
|
1676
|
+
/** Main-side read-merge-write of a cwd's active-index.json
|
|
1677
|
+
* (lib/activeIndexMerge.cjs) — persistActiveIndex sends only its own
|
|
1678
|
+
* in-memory contribution for the cwd; disk stays main's truth, merged
|
|
1679
|
+
* inside the same lock epicMint.cjs's ensureEpic serializes through. */
|
|
1680
|
+
mergeActiveIndex: (payload: PromptSessionsMergeActiveIndexPayload) => Promise<PromptSessionsMergeActiveIndexResult>;
|
|
1656
1681
|
};
|
|
1657
1682
|
}
|
|
1658
1683
|
|
|
1684
|
+
// ─────────────────────────────────── PromptSessions active-index merge
|
|
1685
|
+
export interface PromptSessionsMergeActiveIndexPayload {
|
|
1686
|
+
cwd: string;
|
|
1687
|
+
sessions: Record<string, unknown>;
|
|
1688
|
+
events: Record<string, unknown[]>;
|
|
1689
|
+
removedIds?: string[];
|
|
1690
|
+
source: 'epics';
|
|
1691
|
+
}
|
|
1692
|
+
|
|
1693
|
+
export interface PromptSessionsMergeActiveIndexResult {
|
|
1694
|
+
sessions: Record<string, unknown>;
|
|
1695
|
+
events: Record<string, unknown[]>;
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1659
1698
|
// ─────────────────────────────────── PromptSession event-appended broadcast
|
|
1660
1699
|
|
|
1661
1700
|
export interface PromptSessionEventAppendedPayload {
|
package/src/preload/index.cjs
CHANGED
|
@@ -148,6 +148,9 @@ contextBridge.exposeInMainWorld('api', {
|
|
|
148
148
|
},
|
|
149
149
|
agents: {
|
|
150
150
|
listPersonas: () => ipcRenderer.invoke('agents:list-personas'),
|
|
151
|
+
savePersona: (payload) => ipcRenderer.invoke('agents:save-persona', payload),
|
|
152
|
+
deletePersona: (payload) => ipcRenderer.invoke('agents:delete-persona', payload),
|
|
153
|
+
removeOverride: (payload) => ipcRenderer.invoke('agents:remove-override', payload),
|
|
151
154
|
},
|
|
152
155
|
logs: {
|
|
153
156
|
// ctx is optional: { cwd, tabId, epicId, tags } — when present and
|
|
@@ -471,5 +474,10 @@ contextBridge.exposeInMainWorld('api', {
|
|
|
471
474
|
ipcRenderer.on('promptSession:event-appended', listener);
|
|
472
475
|
return () => ipcRenderer.removeListener('promptSession:event-appended', listener);
|
|
473
476
|
},
|
|
477
|
+
/** Main-side read-merge-write of a cwd's active-index.json
|
|
478
|
+
* (lib/activeIndexMerge.cjs) — replaces persistActiveIndex's old
|
|
479
|
+
* renderer-side read-merge-write. Payload carries only this renderer's
|
|
480
|
+
* own in-memory contribution for the cwd; disk stays main's truth. */
|
|
481
|
+
mergeActiveIndex: (payload) => ipcRenderer.invoke('promptSessions:merge-active-index', payload),
|
|
474
482
|
},
|
|
475
483
|
});
|