@sumicom/quicksave 0.7.0 → 0.8.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/README.md +110 -0
- package/dist/ai/cardBuilder.d.ts.map +1 -1
- package/dist/ai/cardBuilder.js +14 -2
- package/dist/ai/cardBuilder.js.map +1 -1
- package/dist/ai/claudeCliProvider.d.ts.map +1 -1
- package/dist/ai/claudeCliProvider.js +8 -11
- package/dist/ai/claudeCliProvider.js.map +1 -1
- package/dist/ai/claudeSdkProvider.d.ts.map +1 -1
- package/dist/ai/claudeSdkProvider.js +9 -14
- package/dist/ai/claudeSdkProvider.js.map +1 -1
- package/dist/ai/enrichEntry.d.ts +11 -0
- package/dist/ai/enrichEntry.d.ts.map +1 -0
- package/dist/ai/enrichEntry.js +27 -0
- package/dist/ai/enrichEntry.js.map +1 -0
- package/dist/ai/provider.d.ts +6 -0
- package/dist/ai/provider.d.ts.map +1 -1
- package/dist/ai/sandboxMcp.d.ts +41 -3
- package/dist/ai/sandboxMcp.d.ts.map +1 -1
- package/dist/ai/sandboxMcp.js +44 -3
- package/dist/ai/sandboxMcp.js.map +1 -1
- package/dist/ai/sandboxMcpStdio.js +103 -9
- package/dist/ai/sandboxMcpStdio.js.map +1 -1
- package/dist/ai/sessionManager.d.ts +23 -5
- package/dist/ai/sessionManager.d.ts.map +1 -1
- package/dist/ai/sessionManager.js +160 -22
- package/dist/ai/sessionManager.js.map +1 -1
- package/dist/ai/sessionRegistry.d.ts +57 -6
- package/dist/ai/sessionRegistry.d.ts.map +1 -1
- package/dist/ai/sessionRegistry.js +237 -31
- package/dist/ai/sessionRegistry.js.map +1 -1
- package/dist/config.d.ts +41 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +86 -0
- package/dist/config.js.map +1 -1
- package/dist/connection/connection.d.ts +61 -0
- package/dist/connection/connection.d.ts.map +1 -1
- package/dist/connection/connection.js +274 -1
- package/dist/connection/connection.js.map +1 -1
- package/dist/connection/relay.d.ts +20 -0
- package/dist/connection/relay.d.ts.map +1 -1
- package/dist/connection/relay.js +62 -1
- package/dist/connection/relay.js.map +1 -1
- package/dist/handlers/messageHandler.d.ts +10 -6
- package/dist/handlers/messageHandler.d.ts.map +1 -1
- package/dist/handlers/messageHandler.js +59 -62
- package/dist/handlers/messageHandler.js.map +1 -1
- package/dist/index.js +74 -5
- package/dist/index.js.map +1 -1
- package/dist/service/ipcClient.js +1 -1
- package/dist/service/ipcServer.d.ts.map +1 -1
- package/dist/service/ipcServer.js +10 -4
- package/dist/service/ipcServer.js.map +1 -1
- package/dist/service/run.d.ts.map +1 -1
- package/dist/service/run.js +69 -27
- package/dist/service/run.js.map +1 -1
- package/dist/service/types.d.ts +15 -0
- package/dist/service/types.d.ts.map +1 -1
- package/dist/service/types.js +6 -2
- package/dist/service/types.js.map +1 -1
- package/dist/tombstoneCheck.d.ts +43 -0
- package/dist/tombstoneCheck.d.ts.map +1 -0
- package/dist/tombstoneCheck.js +96 -0
- package/dist/tombstoneCheck.js.map +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/connection/relay.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/connection/relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,7 +87,6 @@ export declare class MessageHandler {
|
|
|
87
87
|
* broadcasts `ai:commit-summary:updated` to all peers).
|
|
88
88
|
*/
|
|
89
89
|
private runCommitSummary;
|
|
90
|
-
private handleGetCommitSummary;
|
|
91
90
|
private handleClearCommitSummary;
|
|
92
91
|
private getAiCliService;
|
|
93
92
|
private handleSetApiKey;
|
|
@@ -107,26 +106,31 @@ export declare class MessageHandler {
|
|
|
107
106
|
private handleAgentUpdate;
|
|
108
107
|
private handleAgentRestart;
|
|
109
108
|
private handleCodexListModels;
|
|
110
|
-
private handleClaudeListSessions;
|
|
111
109
|
private handleClaudeStart;
|
|
112
110
|
private handleClaudeResume;
|
|
113
111
|
private handleClaudeCancel;
|
|
114
112
|
private handleClaudeClose;
|
|
115
113
|
private handleClaudeUserInputResponse;
|
|
116
114
|
private handleClaudeGetCards;
|
|
117
|
-
private handleGetPreferences;
|
|
118
115
|
private handleSetPreferences;
|
|
119
116
|
private handleSetSessionPermission;
|
|
120
|
-
private handleGetSessionConfig;
|
|
121
117
|
private handleSetSessionConfig;
|
|
122
118
|
private handleControlRequest;
|
|
123
|
-
private handleGetActiveSessions;
|
|
124
|
-
private handleListHistory;
|
|
125
119
|
private handleUpdateHistory;
|
|
126
120
|
private handleDeleteHistory;
|
|
121
|
+
private handleListArchived;
|
|
127
122
|
private handleListProjectSummaries;
|
|
128
123
|
private handleListProjectRepos;
|
|
124
|
+
/**
|
|
125
|
+
* Hide a project without touching the filesystem. Archives every active
|
|
126
|
+
* session under `cwd` (each archive fires `/sessions/history` so PWAs drop
|
|
127
|
+
* the sessions from their live view) and removes the cwd from managed
|
|
128
|
+
* coding paths so it stops surfacing as an empty workspace. Archived
|
|
129
|
+
* session JSON stays on disk and can be restored individually.
|
|
130
|
+
*/
|
|
131
|
+
private handleDeleteProject;
|
|
129
132
|
private getGitBranchQuiet;
|
|
133
|
+
private getGitDirtyQuiet;
|
|
130
134
|
private handlePushSubscriptionOffer;
|
|
131
135
|
private createErrorResponse;
|
|
132
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/messageHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAqCP,OAAO,
|
|
1
|
+
{"version":3,"file":"messageHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/messageHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { SessionManager } from '../ai/sessionManager.js';
|
|
|
8
8
|
import { ClaudeCodeProvider } from '../ai/claudeCodeProvider.js';
|
|
9
9
|
import { CodexSdkProvider } from '../ai/codexSdkProvider.js';
|
|
10
10
|
import { getSessionRegistry } from '../ai/sessionRegistry.js';
|
|
11
|
+
import { enrichEntry } from '../ai/enrichEntry.js';
|
|
11
12
|
import { getEventStore } from '../storage/eventStore.js';
|
|
12
13
|
import { readdir, stat, readFile } from 'fs/promises';
|
|
13
14
|
import { existsSync } from 'fs';
|
|
@@ -17,7 +18,7 @@ const VERSION_CHECK_INTERVAL_MS = 12 * 60 * 60 * 1000; // 12 hours
|
|
|
17
18
|
const CODEX_MODELS_CHECK_INTERVAL_MS = 12 * 60 * 60 * 1000; // 12 hours
|
|
18
19
|
export class MessageHandler {
|
|
19
20
|
repos;
|
|
20
|
-
agentVersion = '0.
|
|
21
|
+
agentVersion = '0.8.0';
|
|
21
22
|
defaultRepoPath;
|
|
22
23
|
clientRepos = new Map(); // peerAddress -> repoPath
|
|
23
24
|
repoLocks = new Map(); // repoPath -> peerAddress holding lock
|
|
@@ -297,8 +298,6 @@ export class MessageHandler {
|
|
|
297
298
|
return this.handleGitignoreWrite(message, peerAddress);
|
|
298
299
|
case 'ai:generate-commit-summary':
|
|
299
300
|
return this.handleGenerateCommitSummary(message, peerAddress);
|
|
300
|
-
case 'ai:commit-summary:get':
|
|
301
|
-
return this.handleGetCommitSummary(message, peerAddress);
|
|
302
301
|
case 'ai:commit-summary:clear':
|
|
303
302
|
return this.handleClearCommitSummary(message, peerAddress);
|
|
304
303
|
case 'ai:set-api-key':
|
|
@@ -332,8 +331,6 @@ export class MessageHandler {
|
|
|
332
331
|
case 'codex:list-models':
|
|
333
332
|
return this.handleCodexListModels(message);
|
|
334
333
|
// Claude Code SDK
|
|
335
|
-
case 'claude:list-sessions':
|
|
336
|
-
return this.handleClaudeListSessions(message, peerAddress);
|
|
337
334
|
case 'claude:start':
|
|
338
335
|
return this.handleClaudeStart(message, peerAddress);
|
|
339
336
|
case 'claude:resume':
|
|
@@ -344,32 +341,28 @@ export class MessageHandler {
|
|
|
344
341
|
return this.handleClaudeClose(message);
|
|
345
342
|
case 'claude:user-input-response':
|
|
346
343
|
return this.handleClaudeUserInputResponse(message);
|
|
347
|
-
case 'claude:get-preferences':
|
|
348
|
-
return this.handleGetPreferences(message);
|
|
349
344
|
case 'claude:set-preferences':
|
|
350
345
|
return this.handleSetPreferences(message);
|
|
351
346
|
case 'claude:set-session-permission':
|
|
352
347
|
return this.handleSetSessionPermission(message);
|
|
353
|
-
case 'claude:active-sessions':
|
|
354
|
-
return this.handleGetActiveSessions(message);
|
|
355
348
|
case 'claude:get-cards':
|
|
356
349
|
return this.handleClaudeGetCards(message, peerAddress);
|
|
357
|
-
case 'session:get-config':
|
|
358
|
-
return this.handleGetSessionConfig(message);
|
|
359
350
|
case 'session:set-config':
|
|
360
351
|
return this.handleSetSessionConfig(message);
|
|
361
352
|
case 'session:control-request':
|
|
362
353
|
return this.handleControlRequest(message);
|
|
363
|
-
case 'session:list-history':
|
|
364
|
-
return this.handleListHistory(message, peerAddress);
|
|
365
354
|
case 'session:update-history':
|
|
366
355
|
return this.handleUpdateHistory(message);
|
|
367
356
|
case 'session:delete-history':
|
|
368
357
|
return this.handleDeleteHistory(message);
|
|
358
|
+
case 'session:list-archived':
|
|
359
|
+
return this.handleListArchived(message);
|
|
369
360
|
case 'project:list-summaries':
|
|
370
361
|
return this.handleListProjectSummaries(message);
|
|
371
362
|
case 'project:list-repos':
|
|
372
363
|
return await this.handleListProjectRepos(message);
|
|
364
|
+
case 'project:delete':
|
|
365
|
+
return this.handleDeleteProject(message);
|
|
373
366
|
case 'push:subscription-offer':
|
|
374
367
|
return this.handlePushSubscriptionOffer(message);
|
|
375
368
|
default:
|
|
@@ -896,13 +889,6 @@ export class MessageHandler {
|
|
|
896
889
|
this.commitSummaryStore.setError(repoPath, token, errorMessage, isRateLimit ? 'RATE_LIMITED' : 'API_ERROR');
|
|
897
890
|
}
|
|
898
891
|
}
|
|
899
|
-
handleGetCommitSummary(message, peerAddress) {
|
|
900
|
-
const repoPath = message.payload.repoPath || this.getClientRepoPath(peerAddress);
|
|
901
|
-
const state = this.commitSummaryStore.get(repoPath);
|
|
902
|
-
const response = createMessage('ai:commit-summary:get:response', { state });
|
|
903
|
-
response.id = message.id;
|
|
904
|
-
return response;
|
|
905
|
-
}
|
|
906
892
|
handleClearCommitSummary(message, peerAddress) {
|
|
907
893
|
const repoPath = message.payload.repoPath || this.getClientRepoPath(peerAddress);
|
|
908
894
|
const state = this.commitSummaryStore.clear(repoPath);
|
|
@@ -1344,20 +1330,6 @@ export class MessageHandler {
|
|
|
1344
1330
|
// ============================================================================
|
|
1345
1331
|
// Claude Code SDK Handlers
|
|
1346
1332
|
// ============================================================================
|
|
1347
|
-
async handleClaudeListSessions(message, peerAddress) {
|
|
1348
|
-
try {
|
|
1349
|
-
const cwd = message.payload.cwd || this.getClientRepoPath(peerAddress);
|
|
1350
|
-
const sessions = await this.claudeService.listAvailableSessions(cwd);
|
|
1351
|
-
const response = createMessage('claude:list-sessions:response', { sessions });
|
|
1352
|
-
response.id = message.id;
|
|
1353
|
-
return response;
|
|
1354
|
-
}
|
|
1355
|
-
catch (error) {
|
|
1356
|
-
const response = createMessage('claude:list-sessions:response', { sessions: [], error: error instanceof Error ? error.message : 'Failed to list sessions' });
|
|
1357
|
-
response.id = message.id;
|
|
1358
|
-
return response;
|
|
1359
|
-
}
|
|
1360
|
-
}
|
|
1361
1333
|
async handleClaudeStart(message, peerAddress) {
|
|
1362
1334
|
const { prompt, cwd: payloadCwd, agent, allowedTools, systemPrompt, model, permissionMode, sandboxed } = message.payload;
|
|
1363
1335
|
const legacyProvider = message.payload.provider;
|
|
@@ -1506,11 +1478,6 @@ export class MessageHandler {
|
|
|
1506
1478
|
return response;
|
|
1507
1479
|
}
|
|
1508
1480
|
}
|
|
1509
|
-
handleGetPreferences(message) {
|
|
1510
|
-
const response = createMessage('claude:get-preferences:response', { preferences: this.claudeService.getPreferences() });
|
|
1511
|
-
response.id = message.id;
|
|
1512
|
-
return response;
|
|
1513
|
-
}
|
|
1514
1481
|
handleSetPreferences(message) {
|
|
1515
1482
|
const applied = this.claudeService.setPreferences(message.payload.preferences);
|
|
1516
1483
|
const response = createMessage('claude:set-preferences:response', { success: true, preferences: applied });
|
|
@@ -1533,13 +1500,6 @@ export class MessageHandler {
|
|
|
1533
1500
|
response.id = message.id;
|
|
1534
1501
|
return response;
|
|
1535
1502
|
}
|
|
1536
|
-
handleGetSessionConfig(message) {
|
|
1537
|
-
const { sessionId } = message.payload;
|
|
1538
|
-
const config = this.claudeService.getSessionConfig(sessionId);
|
|
1539
|
-
const response = createMessage('session:get-config:response', { sessionId, config });
|
|
1540
|
-
response.id = message.id;
|
|
1541
|
-
return response;
|
|
1542
|
-
}
|
|
1543
1503
|
async handleSetSessionConfig(message) {
|
|
1544
1504
|
const { sessionId, key, value } = message.payload;
|
|
1545
1505
|
console.log(`[agent:set-config] session=${sessionId.slice(0, 8)} ${key}=${String(value)}`);
|
|
@@ -1578,21 +1538,7 @@ export class MessageHandler {
|
|
|
1578
1538
|
return response;
|
|
1579
1539
|
}
|
|
1580
1540
|
}
|
|
1581
|
-
handleGetActiveSessions(message) {
|
|
1582
|
-
const sessions = this.claudeService.getActiveSessions();
|
|
1583
|
-
const response = createMessage('claude:active-sessions:response', { sessions });
|
|
1584
|
-
response.id = message.id;
|
|
1585
|
-
return response;
|
|
1586
|
-
}
|
|
1587
1541
|
// ── Session Registry (History) ──────────────────────────────────────
|
|
1588
|
-
handleListHistory(message, peerAddress) {
|
|
1589
|
-
const cwd = message.payload.cwd || this.getClientRepoPath(peerAddress);
|
|
1590
|
-
const entries = getSessionRegistry().getEntriesForProject(cwd)
|
|
1591
|
-
.filter(e => !e.archived);
|
|
1592
|
-
const response = createMessage('session:list-history:response', { entries });
|
|
1593
|
-
response.id = message.id;
|
|
1594
|
-
return response;
|
|
1595
|
-
}
|
|
1596
1542
|
handleUpdateHistory(message) {
|
|
1597
1543
|
const { sessionId, cwd, updates } = message.payload;
|
|
1598
1544
|
const entry = getSessionRegistry().updateEntry(cwd, sessionId, updates);
|
|
@@ -1614,9 +1560,15 @@ export class MessageHandler {
|
|
|
1614
1560
|
}
|
|
1615
1561
|
return response;
|
|
1616
1562
|
}
|
|
1563
|
+
handleListArchived(message) {
|
|
1564
|
+
const { cwd, offset = 0, limit = 20 } = message.payload;
|
|
1565
|
+
const { entries, total } = getSessionRegistry().listArchivedEntriesPage(cwd, offset, limit);
|
|
1566
|
+
const response = createMessage('session:list-archived:response', { entries: entries.map(enrichEntry), total, offset, limit });
|
|
1567
|
+
response.id = message.id;
|
|
1568
|
+
return response;
|
|
1569
|
+
}
|
|
1617
1570
|
handleListProjectSummaries(message) {
|
|
1618
|
-
const allEntries = getSessionRegistry().getEntriesForProject()
|
|
1619
|
-
.filter(e => !e.archived);
|
|
1571
|
+
const allEntries = getSessionRegistry().getEntriesForProject();
|
|
1620
1572
|
// Group by cwd
|
|
1621
1573
|
const byCwd = new Map();
|
|
1622
1574
|
for (const entry of allEntries) {
|
|
@@ -1678,6 +1630,7 @@ export class MessageHandler {
|
|
|
1678
1630
|
path: cwd,
|
|
1679
1631
|
name: basename(cwd),
|
|
1680
1632
|
currentBranch: rootBranch || undefined,
|
|
1633
|
+
hasChanges: await this.getGitDirtyQuiet(cwd),
|
|
1681
1634
|
});
|
|
1682
1635
|
seen.add(cwd);
|
|
1683
1636
|
}
|
|
@@ -1697,6 +1650,7 @@ export class MessageHandler {
|
|
|
1697
1650
|
name: sub.path,
|
|
1698
1651
|
currentBranch: branch || undefined,
|
|
1699
1652
|
isSubmodule: true,
|
|
1653
|
+
hasChanges: await this.getGitDirtyQuiet(subPath),
|
|
1700
1654
|
});
|
|
1701
1655
|
}
|
|
1702
1656
|
}
|
|
@@ -1736,6 +1690,7 @@ export class MessageHandler {
|
|
|
1736
1690
|
path: full,
|
|
1737
1691
|
name: full.slice(cwd.length + 1),
|
|
1738
1692
|
currentBranch: branch || undefined,
|
|
1693
|
+
hasChanges: await this.getGitDirtyQuiet(full),
|
|
1739
1694
|
});
|
|
1740
1695
|
}
|
|
1741
1696
|
await scan(full, depth + 1);
|
|
@@ -1752,6 +1707,33 @@ export class MessageHandler {
|
|
|
1752
1707
|
response.id = message.id;
|
|
1753
1708
|
return response;
|
|
1754
1709
|
}
|
|
1710
|
+
/**
|
|
1711
|
+
* Hide a project without touching the filesystem. Archives every active
|
|
1712
|
+
* session under `cwd` (each archive fires `/sessions/history` so PWAs drop
|
|
1713
|
+
* the sessions from their live view) and removes the cwd from managed
|
|
1714
|
+
* coding paths so it stops surfacing as an empty workspace. Archived
|
|
1715
|
+
* session JSON stays on disk and can be restored individually.
|
|
1716
|
+
*/
|
|
1717
|
+
handleDeleteProject(message) {
|
|
1718
|
+
const { cwd } = message.payload;
|
|
1719
|
+
const registry = getSessionRegistry();
|
|
1720
|
+
const active = registry.getEntriesForProject(cwd);
|
|
1721
|
+
let archivedCount = 0;
|
|
1722
|
+
for (const entry of active) {
|
|
1723
|
+
const updated = registry.updateEntry(cwd, entry.sessionId, { archived: true });
|
|
1724
|
+
if (updated) {
|
|
1725
|
+
archivedCount++;
|
|
1726
|
+
this.onHistoryUpdated?.(cwd, updated, 'upsert');
|
|
1727
|
+
}
|
|
1728
|
+
}
|
|
1729
|
+
if (this.codingPaths.has(cwd)) {
|
|
1730
|
+
this.codingPaths.delete(cwd);
|
|
1731
|
+
removeManagedCodingPath(cwd);
|
|
1732
|
+
}
|
|
1733
|
+
const response = createMessage('project:delete:response', { success: true, archivedCount });
|
|
1734
|
+
response.id = message.id;
|
|
1735
|
+
return response;
|
|
1736
|
+
}
|
|
1755
1737
|
async getGitBranchQuiet(cwd) {
|
|
1756
1738
|
try {
|
|
1757
1739
|
const git = new GitOperations(cwd);
|
|
@@ -1762,6 +1744,18 @@ export class MessageHandler {
|
|
|
1762
1744
|
return undefined;
|
|
1763
1745
|
}
|
|
1764
1746
|
}
|
|
1747
|
+
async getGitDirtyQuiet(cwd) {
|
|
1748
|
+
try {
|
|
1749
|
+
const git = new GitOperations(cwd);
|
|
1750
|
+
const status = await git.getStatus();
|
|
1751
|
+
return (status.staged.length > 0 ||
|
|
1752
|
+
status.unstaged.length > 0 ||
|
|
1753
|
+
status.untracked.length > 0);
|
|
1754
|
+
}
|
|
1755
|
+
catch {
|
|
1756
|
+
return undefined;
|
|
1757
|
+
}
|
|
1758
|
+
}
|
|
1765
1759
|
async handlePushSubscriptionOffer(message) {
|
|
1766
1760
|
const client = this.pushClient;
|
|
1767
1761
|
let payload;
|
|
@@ -1771,6 +1765,9 @@ export class MessageHandler {
|
|
|
1771
1765
|
else {
|
|
1772
1766
|
const { subscription, relayHttpUrl } = message.payload;
|
|
1773
1767
|
const result = await client.register(subscription, relayHttpUrl);
|
|
1768
|
+
if (!result.ok) {
|
|
1769
|
+
console.warn(`[push] register failed status=${result.status}${result.error ? ` error=${result.error}` : ''}`);
|
|
1770
|
+
}
|
|
1774
1771
|
payload = result.ok ? { success: true } : { success: false, error: result.error ?? `http-${result.status}` };
|
|
1775
1772
|
}
|
|
1776
1773
|
const response = createMessage('push:subscription-offer:response', payload);
|