@sumicom/quicksave 0.6.3 → 0.7.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.
Files changed (71) hide show
  1. package/dist/ai/cardBuilder.d.ts +27 -0
  2. package/dist/ai/cardBuilder.d.ts.map +1 -1
  3. package/dist/ai/cardBuilder.js +69 -0
  4. package/dist/ai/cardBuilder.js.map +1 -1
  5. package/dist/ai/claudeCliProvider.d.ts +1 -0
  6. package/dist/ai/claudeCliProvider.d.ts.map +1 -1
  7. package/dist/ai/claudeCliProvider.js +168 -35
  8. package/dist/ai/claudeCliProvider.js.map +1 -1
  9. package/dist/ai/claudeSdkProvider.d.ts.map +1 -1
  10. package/dist/ai/claudeSdkProvider.js +17 -6
  11. package/dist/ai/claudeSdkProvider.js.map +1 -1
  12. package/dist/ai/commitSummary.d.ts.map +1 -1
  13. package/dist/ai/commitSummary.js +37 -9
  14. package/dist/ai/commitSummary.js.map +1 -1
  15. package/dist/ai/commitSummaryCli.d.ts +67 -0
  16. package/dist/ai/commitSummaryCli.d.ts.map +1 -0
  17. package/dist/ai/commitSummaryCli.js +416 -0
  18. package/dist/ai/commitSummaryCli.js.map +1 -0
  19. package/dist/ai/commitSummaryStore.d.ts +53 -0
  20. package/dist/ai/commitSummaryStore.d.ts.map +1 -0
  21. package/dist/ai/commitSummaryStore.js +136 -0
  22. package/dist/ai/commitSummaryStore.js.map +1 -0
  23. package/dist/ai/provider.d.ts +13 -2
  24. package/dist/ai/provider.d.ts.map +1 -1
  25. package/dist/ai/sessionManager.d.ts +32 -3
  26. package/dist/ai/sessionManager.d.ts.map +1 -1
  27. package/dist/ai/sessionManager.js +229 -36
  28. package/dist/ai/sessionManager.js.map +1 -1
  29. package/dist/ai/sessionRegistry.d.ts +2 -0
  30. package/dist/ai/sessionRegistry.d.ts.map +1 -1
  31. package/dist/ai/sessionRegistry.js +9 -0
  32. package/dist/ai/sessionRegistry.js.map +1 -1
  33. package/dist/config.d.ts +4 -0
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +15 -5
  36. package/dist/config.js.map +1 -1
  37. package/dist/connection/connection.d.ts +0 -12
  38. package/dist/connection/connection.d.ts.map +1 -1
  39. package/dist/connection/connection.js +1 -44
  40. package/dist/connection/connection.js.map +1 -1
  41. package/dist/connection/pubsub.d.ts +5 -5
  42. package/dist/connection/pubsub.d.ts.map +1 -1
  43. package/dist/connection/pubsub.js +5 -7
  44. package/dist/connection/pubsub.js.map +1 -1
  45. package/dist/handlers/messageHandler.d.ts +32 -2
  46. package/dist/handlers/messageHandler.d.ts.map +1 -1
  47. package/dist/handlers/messageHandler.js +395 -176
  48. package/dist/handlers/messageHandler.js.map +1 -1
  49. package/dist/index.js +3 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/messageBus/busServerTransport.d.ts +29 -0
  52. package/dist/messageBus/busServerTransport.d.ts.map +1 -0
  53. package/dist/messageBus/busServerTransport.js +54 -0
  54. package/dist/messageBus/busServerTransport.js.map +1 -0
  55. package/dist/service/ipcClient.js +1 -1
  56. package/dist/service/pushClient.d.ts +69 -0
  57. package/dist/service/pushClient.d.ts.map +1 -0
  58. package/dist/service/pushClient.js +119 -0
  59. package/dist/service/pushClient.js.map +1 -0
  60. package/dist/service/run.d.ts.map +1 -1
  61. package/dist/service/run.js +280 -36
  62. package/dist/service/run.js.map +1 -1
  63. package/dist/service/types.d.ts +2 -0
  64. package/dist/service/types.d.ts.map +1 -1
  65. package/dist/service/types.js +13 -8
  66. package/dist/service/types.js.map +1 -1
  67. package/dist/storage/eventStore.d.ts +65 -0
  68. package/dist/storage/eventStore.d.ts.map +1 -0
  69. package/dist/storage/eventStore.js +122 -0
  70. package/dist/storage/eventStore.js.map +1 -0
  71. package/package.json +6 -2
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Agent-side client for the relay's signed HTTP push side-channel.
3
+ *
4
+ * Every call signs a canonical body with the agent's Ed25519 secret key.
5
+ * The relay verifies the signature against the `signPubKey` segment of the
6
+ * URL path; there is no pre-issued challenge, so the request is safe to
7
+ * replay-retry up to the nonce TTL.
8
+ *
9
+ * Canonical body:
10
+ * `${action}|${signPubKey}|${ts}|${nonce}|${extra.join('|')}`
11
+ */
12
+ import nacl from 'tweetnacl';
13
+ import { randomBytes } from 'node:crypto';
14
+ import { decodeBase64 } from '@sumicom/quicksave-shared';
15
+ function bytesToB64Url(bytes) {
16
+ return Buffer.from(bytes).toString('base64url');
17
+ }
18
+ /**
19
+ * Derive the HTTP base URL for the relay given a signaling URL.
20
+ * `wss://host` → `https://host`, `ws://host` → `http://host`, any other
21
+ * scheme passes through unchanged. We only care about the origin; paths on
22
+ * the signaling URL are dropped.
23
+ */
24
+ export function httpBaseFromSignalingUrl(signalingServer) {
25
+ try {
26
+ const url = new URL(signalingServer);
27
+ if (url.protocol === 'wss:')
28
+ url.protocol = 'https:';
29
+ else if (url.protocol === 'ws:')
30
+ url.protocol = 'http:';
31
+ return url.origin;
32
+ }
33
+ catch {
34
+ return signalingServer;
35
+ }
36
+ }
37
+ export class PushClient {
38
+ signPubKeyUrl;
39
+ secretKey;
40
+ defaultRelayHttpUrl;
41
+ fetchImpl;
42
+ constructor(config) {
43
+ const pubBytes = decodeBase64(config.signKeyPair.publicKey);
44
+ this.signPubKeyUrl = bytesToB64Url(pubBytes);
45
+ this.secretKey = decodeBase64(config.signKeyPair.secretKey);
46
+ this.defaultRelayHttpUrl = config.defaultRelayHttpUrl.replace(/\/$/, '');
47
+ this.fetchImpl = config.fetchImpl ?? fetch;
48
+ }
49
+ /** URL-safe base64 of the public key — used as the relay's addressing ID. */
50
+ get signPubKey() {
51
+ return this.signPubKeyUrl;
52
+ }
53
+ async register(subscription, relayHttpUrl) {
54
+ return this.post('register', [subscription.endpoint], relayHttpUrl, {
55
+ endpoint: subscription.endpoint,
56
+ keys: subscription.keys,
57
+ });
58
+ }
59
+ async unregister(endpoint, relayHttpUrl) {
60
+ return this.post('unregister', [endpoint], relayHttpUrl, { endpoint });
61
+ }
62
+ async notify(sessionId, opts = {}) {
63
+ const body = { sessionId };
64
+ if (opts.title !== undefined)
65
+ body.title = opts.title;
66
+ if (opts.body !== undefined)
67
+ body.body = opts.body;
68
+ if (opts.agentId !== undefined)
69
+ body.agentId = opts.agentId;
70
+ if (opts.url !== undefined)
71
+ body.url = opts.url;
72
+ if (opts.tag !== undefined)
73
+ body.tag = opts.tag;
74
+ const result = await this.post('notify', [sessionId], opts.relayHttpUrl, body);
75
+ if (result.ok && result.body && typeof result.body === 'object') {
76
+ const parsed = result.body;
77
+ return { ...result, sent: parsed.sent, pruned: parsed.pruned };
78
+ }
79
+ return result;
80
+ }
81
+ async post(action, extra, relayHttpUrl, bodyFields) {
82
+ const ts = String(Date.now());
83
+ const nonce = bytesToB64Url(randomBytes(16));
84
+ const canonical = [`push:${action}`, this.signPubKeyUrl, ts, nonce, ...extra].join('|');
85
+ const sig = bytesToB64Url(nacl.sign.detached(new TextEncoder().encode(canonical), this.secretKey));
86
+ const base = (relayHttpUrl ?? this.defaultRelayHttpUrl).replace(/\/$/, '');
87
+ const url = `${base}/push/${this.signPubKeyUrl}/${action}`;
88
+ const payload = { ...bodyFields, ts, nonce, sig };
89
+ try {
90
+ const res = await this.fetchImpl(url, {
91
+ method: 'POST',
92
+ headers: { 'Content-Type': 'application/json' },
93
+ body: JSON.stringify(payload),
94
+ });
95
+ let parsed;
96
+ try {
97
+ parsed = await res.json();
98
+ }
99
+ catch {
100
+ parsed = undefined;
101
+ }
102
+ if (!res.ok) {
103
+ const errMsg = (parsed && typeof parsed === 'object' && 'error' in parsed)
104
+ ? String(parsed.error)
105
+ : `HTTP ${res.status}`;
106
+ return { ok: false, status: res.status, body: parsed, error: errMsg };
107
+ }
108
+ return { ok: true, status: res.status, body: parsed };
109
+ }
110
+ catch (err) {
111
+ return {
112
+ ok: false,
113
+ status: 0,
114
+ error: err instanceof Error ? err.message : String(err),
115
+ };
116
+ }
117
+ }
118
+ }
119
+ //# sourceMappingURL=pushClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pushClient.js","sourceRoot":"","sources":["../../src/service/pushClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/service/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA8BH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAqR/C"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/service/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAkDH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA0iB/C"}
@@ -16,17 +16,21 @@ import { fileURLToPath } from 'url';
16
16
  import { spawn } from 'child_process';
17
17
  import { getOrCreateConfig, getManagedRepos, getManagedCodingPaths, addManagedRepo, removeManagedRepo } from '../config.js';
18
18
  import { AgentConnection } from '../connection/connection.js';
19
+ import { BusServerTransport } from '../messageBus/busServerTransport.js';
20
+ import { MessageBusServer } from '@sumicom/quicksave-message-bus';
19
21
  import { MessageHandler } from '../handlers/messageHandler.js';
20
22
  import { GitOperations } from '../git/operations.js';
21
23
  import { IpcServer } from './ipcServer.js';
22
24
  import { DebugHttpServer } from './debugHttpServer.js';
25
+ import { PushClient, httpBaseFromSignalingUrl } from './pushClient.js';
23
26
  import { acquireLock, ensureDirectories, getSocketPath, getRunDir, cleanStaleRuntime, } from './singleton.js';
24
27
  import { writeServiceState, removeServiceState } from './stateStore.js';
25
- import { IPC_VERSION, BUILD_ID, isDebugEnabled } from './types.js';
26
- import { createMessage } from '@sumicom/quicksave-shared';
28
+ import { IPC_VERSION, BUILD_ID, isDebugEnabled, isDev } from './types.js';
29
+ import { createMessage, } from '@sumicom/quicksave-shared';
27
30
  import { getSessionRegistry } from '../ai/sessionRegistry.js';
31
+ import { getEventStore } from '../storage/eventStore.js';
28
32
  const HEARTBEAT_INTERVAL_MS = 30_000;
29
- const PACKAGE_VERSION = '0.6.3';
33
+ const PACKAGE_VERSION = '0.7.0';
30
34
  export async function runDaemon() {
31
35
  ensureDirectories();
32
36
  // Prevent unhandled rejections from silently killing the daemon
@@ -64,8 +68,21 @@ export async function runDaemon() {
64
68
  agentId: config.agentId,
65
69
  keyPair: config.keyPair,
66
70
  });
67
- const isProduction = !BUILD_ID.startsWith('dev-');
71
+ // MessageBus lives alongside the legacy connection handlers. The adapter
72
+ // filters inbound messages for `type === 'bus:frame'`; everything else
73
+ // continues to flow through the existing MessageHandler path.
74
+ const busTransport = new BusServerTransport(connection);
75
+ const bus = new MessageBusServer(busTransport);
76
+ const isProduction = !isDev();
68
77
  const messageHandler = new MessageHandler(validRepos, config.license, codingPaths, isProduction);
78
+ // Signed HTTP side-channel to the relay for Web Push. The relay's default
79
+ // push HTTP origin is derived from the signaling URL; PWAs may override per
80
+ // offer for dev/staging relays.
81
+ const pushClient = new PushClient({
82
+ signKeyPair: config.signKeyPair,
83
+ defaultRelayHttpUrl: httpBaseFromSignalingUrl(config.signalingServer),
84
+ });
85
+ messageHandler.setPushClient(pushClient);
69
86
  // Self-restart after update: spawn a detached launcher that
70
87
  // 1. sanity-checks the new binary (--version)
71
88
  // 2. only then kills the old daemon
@@ -101,60 +118,285 @@ export async function runDaemon() {
101
118
  };
102
119
  // Pub/sub: ClaudeCodeService emits card events → send only to peers subscribed to that session
103
120
  const claudeService = messageHandler.getClaudeService();
121
+ const commitSummaryStore = messageHandler.getCommitSummaryStore();
122
+ // ── MessageBus subscription paths ─────────────────────────────────────────
123
+ // Each onSubscribe delivers the current state atomically in its `snap`
124
+ // frame; downstream publishes fire `upd` frames. Subscriptions survive
125
+ // reconnects — the client re-sends `sub` and the server re-snapshots —
126
+ // which eliminates the post-reconnect staleness window.
127
+ // Live active-session list. Snapshot = every active session; updates =
128
+ // single SessionUpdatePayload per change.
129
+ bus.onSubscribe('/sessions/active', { snapshot: () => claudeService.snapshotActiveSessions() });
130
+ // Global user-editable preferences (model, reasoning effort).
131
+ bus.onSubscribe('/preferences', { snapshot: () => claudeService.getPreferences() });
132
+ // Session registry entries (historical + active). Snapshot returns every
133
+ // entry across all cwds; updates publish single upsert/delete events.
134
+ bus.onSubscribe('/sessions/history', { snapshot: () => getSessionRegistry().getEntriesForProject() });
135
+ // Per-repo AI commit-summary generation state. Snapshot = every tracked
136
+ // repo; updates publish one repo's state at a time.
137
+ bus.onSubscribe('/repos/commit-summary', { snapshot: () => commitSummaryStore.snapshot() });
138
+ // Per-session config, keyed by sessionId so late subscribers don't need to
139
+ // pre-know which ids exist.
140
+ bus.onSubscribe('/sessions/config', { snapshot: () => claudeService.getAllSessionConfigs() });
141
+ // Per-session card history + live card/stream-end stream. Snapshot = the
142
+ // initial `CardHistoryResponse` (offset=0, includes pendingInput overlay
143
+ // and title). Updates carry incremental CardEvents or CardStreamEnd.
144
+ bus.onSubscribe('/sessions/:sessionId/cards', {
145
+ snapshot: async ({ params }) => {
146
+ const sessionId = params.sessionId;
147
+ const liveCwd = claudeService.getSessionCwd(sessionId);
148
+ const cwd = liveCwd ?? getSessionRegistry().findBySessionId(sessionId)?.cwd ?? '';
149
+ return claudeService.getCards(sessionId, cwd, 0, 50);
150
+ },
151
+ });
104
152
  claudeService.on('card-event', (event) => {
105
- connection.sendToSession(event.sessionId, createMessage('claude:card-event', event));
153
+ bus.publish(`/sessions/${event.sessionId}/cards`, { kind: 'card', event });
106
154
  });
107
155
  claudeService.on('card-stream-end', (result) => {
108
- connection.sendToSession(result.sessionId, createMessage('claude:card-stream-end', result));
109
- // Update session registry with cost/message count
156
+ const peersSent = bus.publish(`/sessions/${result.sessionId}/cards`, { kind: 'stream-end', result });
157
+ // Web Push trigger: session went idle while no PWA is watching. Skip when
158
+ // the turn paused for user input — the user-input-request handler already
159
+ // notified (and the `tag` would collapse anyway, but the extra round-trip
160
+ // is wasted). Also skip when the agent was explicitly interrupted.
161
+ if (peersSent === 0
162
+ && !result.interrupted
163
+ && !claudeService.hasPendingInputForSession(result.sessionId)) {
164
+ pushClient.notify(result.sessionId, {
165
+ title: 'Quicksave',
166
+ body: 'Session is ready for your next instruction',
167
+ tag: result.sessionId,
168
+ agentId: config.agentId,
169
+ }).catch((err) => console.warn('[push] notify (idle) failed', err));
170
+ }
110
171
  const cwd = claudeService.getSessionCwd(result.sessionId);
111
- if (cwd) {
112
- const registry = getSessionRegistry();
113
- const entry = registry.getEntry(cwd, result.sessionId);
114
- if (entry) {
115
- registry.updateEntry(cwd, result.sessionId, {
116
- messageCount: (entry.messageCount ?? 0) + 1,
117
- totalCostUsd: (entry.totalCostUsd ?? 0) + (result.totalCostUsd ?? 0),
118
- lastAccessedAt: Date.now(),
119
- });
172
+ const inputTokens = result.tokenUsage?.input ?? 0;
173
+ const outputTokens = result.tokenUsage?.output ?? 0;
174
+ const cacheCreationTokens = result.tokenUsage?.cacheCreation ?? 0;
175
+ const cacheReadTokens = result.tokenUsage?.cacheRead ?? 0;
176
+ const costUsd = result.totalCostUsd ?? 0;
177
+ // Fetch the CLI's context-window breakdown before recording the turn.
178
+ // Only the Claude Code CLI responds; other providers return null quickly.
179
+ // Fire-and-record to avoid blocking the peer notification above.
180
+ (async () => {
181
+ const contextUsage = await claudeService.getSessionContextUsage(result.sessionId).catch(() => null);
182
+ getEventStore().record({
183
+ type: 'turn_ended',
184
+ sessionId: result.sessionId,
185
+ cwd: cwd ?? null,
186
+ data: {
187
+ success: result.success,
188
+ interrupted: result.interrupted ?? false,
189
+ error: result.error,
190
+ inputTokens,
191
+ outputTokens,
192
+ cacheCreationTokens,
193
+ cacheReadTokens,
194
+ costUsd,
195
+ ...(contextUsage ? { contextUsage: { ...contextUsage, capturedAt: Date.now() } } : {}),
196
+ },
197
+ });
198
+ // Update session registry with cost/message count
199
+ if (cwd) {
200
+ const registry = getSessionRegistry();
201
+ const entry = registry.getEntry(cwd, result.sessionId);
202
+ if (entry) {
203
+ registry.updateEntry(cwd, result.sessionId, {
204
+ messageCount: (entry.messageCount ?? 0) + 1,
205
+ totalCostUsd: (entry.totalCostUsd ?? 0) + costUsd,
206
+ lastAccessedAt: Date.now(),
207
+ });
208
+ }
120
209
  }
121
- }
210
+ })().catch((err) => {
211
+ console.error(`[turn_ended] failed to record turn for session=${result.sessionId.slice(0, 8)}:`, err);
212
+ });
122
213
  });
123
214
  claudeService.on('user-input-request', (request) => {
124
- connection.sendToSession(request.sessionId, createMessage('claude:user-input-request', request));
215
+ // The CardBuilder emits a card-event (update with pendingInput) before
216
+ // this fires, so any PWA subscribed to /sessions/:id/cards already sees
217
+ // the prompt. Here we only handle side effects: push-notify idle peers
218
+ // and record the permission event.
219
+ const watchers = bus.subscriberCount(`/sessions/${request.sessionId}/cards`);
220
+ if (watchers === 0) {
221
+ const body = request.inputType === 'permission'
222
+ ? 'Permission required to continue'
223
+ : 'Input required to continue';
224
+ pushClient.notify(request.sessionId, {
225
+ title: request.title || 'Quicksave',
226
+ body,
227
+ tag: request.sessionId,
228
+ agentId: config.agentId,
229
+ }).catch((err) => console.warn('[push] notify (input-request) failed', err));
230
+ }
231
+ getEventStore().record({
232
+ type: 'permission_requested',
233
+ sessionId: request.sessionId,
234
+ data: {
235
+ requestId: request.requestId,
236
+ inputType: request.inputType,
237
+ title: request.title,
238
+ },
239
+ });
125
240
  });
126
241
  claudeService.on('user-input-resolved', (info) => {
127
- connection.sendToSession(info.sessionId, createMessage('claude:user-input-resolved', info));
242
+ // CardBuilder.clearPendingInput emits a card-event (update with
243
+ // pendingInput: undefined) before this fires, so PWA state is already
244
+ // reconciled via the /sessions/:id/cards subscription.
245
+ getEventStore().record({
246
+ type: 'permission_resolved',
247
+ sessionId: info.sessionId,
248
+ data: { requestId: info.requestId },
249
+ });
128
250
  });
129
251
  claudeService.on('session-updated', (info) => {
130
- // session-updated goes to all peers (needed for session list status dots)
131
- connection.broadcast(createMessage('claude:session-updated', info));
252
+ // Delivered via the bus `/sessions/active` subscription. New peers receive
253
+ // the full active-session list atomically in their snap frame, so no
254
+ // separate connect-time broadcast is needed.
255
+ bus.publish('/sessions/active', info);
132
256
  });
133
257
  claudeService.on('preferences-updated', (prefs) => {
134
- connection.broadcast(createMessage('claude:preferences-updated', prefs));
258
+ bus.publish('/preferences', prefs);
135
259
  });
136
260
  claudeService.on('session-config-updated', (payload) => {
137
- connection.broadcast(createMessage('session:config-updated', payload));
261
+ bus.publish('/sessions/config', payload);
138
262
  });
263
+ // Per-repo commit-summary state (agent-owned). Each PWA mirrors the
264
+ // pending suggestion + generation progress via `/repos/commit-summary`.
265
+ commitSummaryStore.on('state-updated', (state) => {
266
+ bus.publish('/repos/commit-summary', state);
267
+ });
268
+ // ── MessageBus command adapter ────────────────────────────────────────────
269
+ // Every request-response verb from the legacy MessageHandler is exposed as a
270
+ // bus command so the PWA can `bus.command(verb, payload)` instead of going
271
+ // through the legacy pendingRequests machinery.
272
+ //
273
+ // The adapter wraps the payload into a Message envelope, dispatches through
274
+ // `MessageHandler.handleMessage`, and translates the response into either a
275
+ // resolved payload or a rejected error. Structured errors (e.g. the
276
+ // REPO_MISMATCH guard on git:* requests) are encoded as `"CODE: message"` so
277
+ // callers can parse specific codes.
278
+ //
279
+ // `git:*` commands carry their expected repoPath through a reserved
280
+ // `__repoPath` payload slot — the bus protocol has no envelope-level
281
+ // metadata, so we smuggle it. The adapter lifts it onto `msg.repoPath` for
282
+ // the guard and mirrors the server's stamped repoPath back into the response
283
+ // payload so the PWA's scope check has the data it needs.
284
+ const LEGACY_BUS_VERBS = [
285
+ 'ping',
286
+ // git
287
+ 'git:status',
288
+ 'git:diff',
289
+ 'git:stage',
290
+ 'git:unstage',
291
+ 'git:stage-patch',
292
+ 'git:unstage-patch',
293
+ 'git:commit',
294
+ 'git:log',
295
+ 'git:branches',
296
+ 'git:checkout',
297
+ 'git:discard',
298
+ 'git:untrack',
299
+ 'git:submodules',
300
+ 'git:config-get',
301
+ 'git:config-set',
302
+ 'git:gitignore-add',
303
+ 'git:gitignore-read',
304
+ 'git:gitignore-write',
305
+ // ai
306
+ 'ai:generate-commit-summary',
307
+ 'ai:commit-summary:get',
308
+ 'ai:commit-summary:clear',
309
+ 'ai:set-api-key',
310
+ 'ai:get-api-key-status',
311
+ // agent
312
+ 'agent:list-repos',
313
+ 'agent:switch-repo',
314
+ 'agent:browse-directory',
315
+ 'agent:add-repo',
316
+ 'agent:remove-repo',
317
+ 'agent:clone-repo',
318
+ 'agent:list-coding-paths',
319
+ 'agent:add-coding-path',
320
+ 'agent:remove-coding-path',
321
+ 'agent:check-update',
322
+ 'agent:update',
323
+ 'agent:restart',
324
+ // codex
325
+ 'codex:list-models',
326
+ // claude
327
+ 'claude:list-sessions',
328
+ 'claude:start',
329
+ 'claude:resume',
330
+ 'claude:cancel',
331
+ 'claude:close',
332
+ 'claude:user-input-response',
333
+ 'claude:get-preferences',
334
+ 'claude:set-preferences',
335
+ 'claude:set-session-permission',
336
+ 'claude:active-sessions',
337
+ 'claude:get-cards',
338
+ // session
339
+ 'session:get-config',
340
+ 'session:set-config',
341
+ 'session:control-request',
342
+ 'session:list-history',
343
+ 'session:update-history',
344
+ 'session:delete-history',
345
+ // project
346
+ 'project:list-summaries',
347
+ 'project:list-repos',
348
+ // push
349
+ 'push:subscription-offer',
350
+ ];
351
+ for (const verb of LEGACY_BUS_VERBS) {
352
+ bus.onCommand(verb, async (rawPayload, { peer }) => {
353
+ let repoPath;
354
+ let payload = rawPayload;
355
+ if (payload && typeof payload === 'object' && '__repoPath' in payload) {
356
+ const obj = payload;
357
+ if (typeof obj.__repoPath === 'string')
358
+ repoPath = obj.__repoPath;
359
+ const { __repoPath: _omit, ...rest } = obj;
360
+ void _omit;
361
+ payload = rest;
362
+ }
363
+ const msg = createMessage(verb, payload);
364
+ if (repoPath !== undefined)
365
+ msg.repoPath = repoPath;
366
+ const response = await messageHandler.handleMessage(msg, peer);
367
+ if (response.type === 'error') {
368
+ const err = response.payload;
369
+ const code = err.code ?? '';
370
+ const text = err.message ?? 'Handler error';
371
+ throw new Error(code ? `${code}: ${text}` : text);
372
+ }
373
+ if (verb.startsWith('git:') && typeof response.repoPath === 'string') {
374
+ // Echo the server's stamped repoPath into the data payload so the
375
+ // PWA can validate against its scope snapshot after the bus resolves.
376
+ return { ...response.payload, __repoPath: response.repoPath };
377
+ }
378
+ return response.payload;
379
+ });
380
+ }
139
381
  // Init preferences from the last session's JSONL (best-effort, non-blocking)
140
382
  claudeService.initPreferences().catch(() => { });
141
383
  // Init session registry (loads all entries from disk)
142
384
  getSessionRegistry();
143
- // Track which session each peer is viewing.
144
- // Permission state is now carried directly on cards (via CardBuilder),
145
- // so getCards() returns cards with pendingInput already attached.
146
- // No need to re-send user-input-request on subscribe.
147
- messageHandler.onPeerSubscribed = (peerAddress, sessionId) => {
148
- connection.subscribePeerToSession(peerAddress, sessionId);
149
- };
150
- messageHandler.onPeerUnsubscribed = (peerAddress, sessionId) => {
151
- connection.unsubscribePeerFromSession(peerAddress, sessionId);
152
- };
385
+ // Per-session card stream, pendingInput overlay, and session status are all
386
+ // delivered via the bus (`/sessions/:id/cards` + `/sessions/active`), so the
387
+ // legacy per-session pubsub subscribe/unsubscribe wiring is no longer used.
153
388
  messageHandler.onHistoryUpdated = (cwd, entry, action) => {
154
- connection.broadcast(createMessage('session:history-updated', { cwd, entry, action }));
389
+ bus.publish('/sessions/history', { cwd, entry, action });
155
390
  };
156
- // Wire: incoming PWA messages → MessageHandler → response back to PWA
391
+ // Wire: incoming PWA messages → MessageHandler → response back to PWA.
392
+ // Bus frames are consumed by `BusServerTransport` first (they route through
393
+ // `bus.onCommand` handlers or subscribe dispatchers), so skip them here to
394
+ // avoid producing UNKNOWN_MESSAGE_TYPE noise. Everything else — handshake,
395
+ // and any legacy PWA builds still sending request messages directly — still
396
+ // flows through the MessageHandler dispatch.
157
397
  connection.on('message', async (message, peerAddress) => {
398
+ if (message.type === 'bus:frame')
399
+ return;
158
400
  try {
159
401
  const response = await messageHandler.handleMessage(message, peerAddress);
160
402
  connection.send(response, peerAddress);
@@ -281,10 +523,12 @@ export async function runDaemon() {
281
523
  function registerDaemonMethods(ipcServer, connection, messageHandler, config) {
282
524
  // get-pairing-info
283
525
  ipcServer.registerMethod('get-pairing-info', () => {
284
- const pairingUrl = `https://quicksave.dev/#/connect/${config.agentId}?pk=${encodeURIComponent(config.keyPair.publicKey)}&name=${encodeURIComponent(hostname())}`;
526
+ const signPk = config.signKeyPair.publicKey;
527
+ const pairingUrl = `https://quicksave.dev/#/connect/${config.agentId}?pk=${encodeURIComponent(config.keyPair.publicKey)}&spk=${encodeURIComponent(signPk)}&name=${encodeURIComponent(hostname())}`;
285
528
  return {
286
529
  agentId: config.agentId,
287
530
  publicKey: config.keyPair.publicKey,
531
+ signPublicKey: signPk,
288
532
  pairingUrl,
289
533
  connectionState: connection.hasPeers() ? 'connected' : 'disconnected',
290
534
  peerCount: connection.getPeerCount(),
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/service/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/service/run.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,7 @@ export interface ServiceState {
87
87
  export interface PairingInfoResult {
88
88
  agentId: string;
89
89
  publicKey: string;
90
+ signPublicKey: string;
90
91
  pairingUrl: string;
91
92
  connectionState: 'connected' | 'connecting' | 'disconnected';
92
93
  peerCount: number;
@@ -132,6 +133,7 @@ export declare function shouldRestartDaemon(daemon: HelloResult, cli: {
132
133
  ipcVersion: number;
133
134
  buildId: string;
134
135
  }): DaemonCheckResult;
136
+ export declare function isDev(): boolean;
135
137
  /**
136
138
  * Debug CLI commands are enabled by default in dev mode.
137
139
  * In production builds, set QUICKSAVE_DEBUG=1 to enable.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"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"}