@sumicom/quicksave 0.8.4 → 0.8.6
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 +31 -93
- package/dist/ai/cardBuilder.d.ts +3 -4
- package/dist/ai/cardBuilder.d.ts.map +1 -1
- package/dist/ai/cardBuilder.js +8 -11
- package/dist/ai/cardBuilder.js.map +1 -1
- package/dist/ai/claudeCliProvider.d.ts +61 -2
- package/dist/ai/claudeCliProvider.d.ts.map +1 -1
- package/dist/ai/claudeCliProvider.js +95 -57
- package/dist/ai/claudeCliProvider.js.map +1 -1
- package/dist/ai/claudeSdkProvider.d.ts +18 -0
- package/dist/ai/claudeSdkProvider.d.ts.map +1 -1
- package/dist/ai/claudeSdkProvider.js +35 -25
- package/dist/ai/claudeSdkProvider.js.map +1 -1
- package/dist/ai/codexAppServer/cardAdapter.d.ts +0 -3
- package/dist/ai/codexAppServer/cardAdapter.d.ts.map +1 -1
- package/dist/ai/codexAppServer/cardAdapter.js +40 -5
- package/dist/ai/codexAppServer/cardAdapter.js.map +1 -1
- package/dist/ai/codexAppServer/provider.d.ts.map +1 -1
- package/dist/ai/codexAppServer/provider.js +9 -24
- package/dist/ai/codexAppServer/provider.js.map +1 -1
- package/dist/ai/codexMcpProvider.d.ts.map +1 -1
- package/dist/ai/codexMcpProvider.js +5 -10
- package/dist/ai/codexMcpProvider.js.map +1 -1
- package/dist/ai/provider.d.ts +7 -2
- package/dist/ai/provider.d.ts.map +1 -1
- package/dist/ai/sessionManager.d.ts +7 -5
- package/dist/ai/sessionManager.d.ts.map +1 -1
- package/dist/ai/sessionManager.js +43 -19
- package/dist/ai/sessionManager.js.map +1 -1
- package/dist/ai/systemPrompt.d.ts.map +1 -1
- package/dist/ai/systemPrompt.js +3 -0
- package/dist/ai/systemPrompt.js.map +1 -1
- package/dist/connection/e2eHarness.d.ts +1 -1
- package/dist/connection/e2eHarness.d.ts.map +1 -1
- package/dist/connection/e2eHarness.js +24 -8
- package/dist/connection/e2eHarness.js.map +1 -1
- package/dist/files/fileBrowser.d.ts.map +1 -1
- package/dist/files/fileBrowser.js +42 -2
- package/dist/files/fileBrowser.js.map +1 -1
- package/dist/handlers/messageHandler.d.ts.map +1 -1
- package/dist/handlers/messageHandler.js +4 -8
- package/dist/handlers/messageHandler.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/service/ipcClient.js +1 -1
- package/dist/service/run.js +1 -1
- package/dist/service/types.js +1 -1
- package/package.json +3 -3
|
@@ -169,28 +169,27 @@ function extractToolResultText(content) {
|
|
|
169
169
|
// ============================================================================
|
|
170
170
|
// CliProviderSession — wraps a ChildProcess for ProviderSession interface
|
|
171
171
|
// ============================================================================
|
|
172
|
-
class CliProviderSession {
|
|
172
|
+
export class CliProviderSession {
|
|
173
173
|
process;
|
|
174
|
-
/** StreamIds queued by hot resume during an active turn — consumeStream
|
|
175
|
-
* pops after each result to start the next turn. Idle hot resume (CLI
|
|
176
|
-
* alive but between turns) bypasses this queue and writes `currentStreamId`
|
|
177
|
-
* directly before `sendUserMessage`. */
|
|
178
|
-
pendingStreamIds = [];
|
|
179
|
-
/** The streamId used to tag card events and stream-end for the current
|
|
180
|
-
* turn. Shared with consumeStream so the SessionManager can swap it in for
|
|
181
|
-
* idle hot resume without waiting for the next `result` event. */
|
|
182
|
-
currentStreamId = '';
|
|
183
174
|
/** Debug logger — attached after spawn so stdin writes are captured too. */
|
|
184
175
|
debugLog;
|
|
185
176
|
/** Pending control_requests awaiting a control_response from the CLI. */
|
|
186
177
|
pendingControlResponses = new Map();
|
|
187
178
|
/** True while a turn (prompt/compaction/tool loop) is in flight — control_requests may be queued by CLI. */
|
|
188
179
|
activeTurn = false;
|
|
189
|
-
/** True once a `result` event has been processed for the current turn
|
|
190
|
-
*
|
|
180
|
+
/** True once a `result` event has been processed for the current turn.
|
|
181
|
+
* Consumed by consumeStream's finally block to decide whether the
|
|
191
182
|
* process death counts as an unexpected exit. Reset externally on idle hot
|
|
192
183
|
* resume (the new turn hasn't seen its result yet). */
|
|
193
184
|
resultEmitted = false;
|
|
185
|
+
/** Card builder for this session — used by sendUserMessage to record the
|
|
186
|
+
* follow-up prompt in streamingCards so getCards on refresh returns it
|
|
187
|
+
* before the CLI has flushed it to the session JSONL. */
|
|
188
|
+
cardBuilder = null;
|
|
189
|
+
/** Callbacks for this session — used by sendUserMessage to emit a
|
|
190
|
+
* user-message card-event so other PWA tabs subscribed to this session
|
|
191
|
+
* see follow-up prompts in real time. */
|
|
192
|
+
callbacks = null;
|
|
194
193
|
constructor(proc) {
|
|
195
194
|
this.process = proc;
|
|
196
195
|
}
|
|
@@ -236,6 +235,18 @@ class CliProviderSession {
|
|
|
236
235
|
sendUserMessage(prompt) {
|
|
237
236
|
if (!this.process || this.process.killed)
|
|
238
237
|
return;
|
|
238
|
+
// Record the prompt in the cardBuilder so getCards on reconnect/refresh
|
|
239
|
+
// returns it before the CLI has flushed it to the session JSONL.
|
|
240
|
+
// (--replay-user-messages will echo this prompt back to us; the
|
|
241
|
+
// `isReplay` filter in routeMessage relies on this entry already
|
|
242
|
+
// existing to dedupe.)
|
|
243
|
+
const userEvent = this.cardBuilder?.userMessage(prompt);
|
|
244
|
+
// Emit the card-event so other PWA tabs subscribed to this session see
|
|
245
|
+
// the follow-up prompt in real time. The sending tab already rendered an
|
|
246
|
+
// optimistic user card; claudeStore.handleCardEvent dedupes by text +
|
|
247
|
+
// recent timestamp so the duplicate does not stack.
|
|
248
|
+
if (userEvent)
|
|
249
|
+
this.callbacks?.emitCardEvent(userEvent);
|
|
239
250
|
// Pause the idle clock immediately — CLI will start a new turn once it
|
|
240
251
|
// reads this stdin, even before it emits the first stream event.
|
|
241
252
|
this.activeTurn = true;
|
|
@@ -281,6 +292,41 @@ class CliProviderSession {
|
|
|
281
292
|
return null;
|
|
282
293
|
}
|
|
283
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* Live-switch the auto-compact threshold without respawning the CLI.
|
|
297
|
+
*
|
|
298
|
+
* The CLI accepts a top-level `{type:"update_environment_variables"}` stdin
|
|
299
|
+
* message and patches its own `process.env`. The auto-compact computation
|
|
300
|
+
* reads `process.env.CLAUDE_CODE_AUTO_COMPACT_WINDOW` on every turn (no
|
|
301
|
+
* caching), so the next turn picks up the new threshold.
|
|
302
|
+
*
|
|
303
|
+
* If `decoratedModel` is provided AND differs from what's running, we also
|
|
304
|
+
* fire `set_model` so the CLI flips the API's `[1m]` beta header on/off in
|
|
305
|
+
* sync — required when crossing the 200k boundary, otherwise the API would
|
|
306
|
+
* keep rejecting tokens above 200k regardless of the env-side change.
|
|
307
|
+
*
|
|
308
|
+
* Note: `update_environment_variables` is NOT a `control_request` and there
|
|
309
|
+
* is no ack from the CLI — we just write and return.
|
|
310
|
+
*/
|
|
311
|
+
async updateContextWindow(window, decoratedModel) {
|
|
312
|
+
if (!this.process || this.process.killed)
|
|
313
|
+
return;
|
|
314
|
+
const envMsg = {
|
|
315
|
+
type: 'update_environment_variables',
|
|
316
|
+
variables: { CLAUDE_CODE_AUTO_COMPACT_WINDOW: String(window) },
|
|
317
|
+
};
|
|
318
|
+
this.debugLog?.logRawEvent({ ...envMsg, _direction: 'stdin' });
|
|
319
|
+
this.process.stdin.write(JSON.stringify(envMsg) + '\n');
|
|
320
|
+
if (decoratedModel) {
|
|
321
|
+
// 5s wall-clock — set_model normally returns in <100ms; if the CLI is
|
|
322
|
+
// mid-turn the idle clock pauses, so the wall cap is the real ceiling.
|
|
323
|
+
const wallTimeout = new Promise((resolve) => setTimeout(() => resolve(), 5_000));
|
|
324
|
+
await Promise.race([
|
|
325
|
+
this.sendControlRequest('set_model', { model: decoratedModel }, 5_000).then(() => undefined).catch(() => undefined),
|
|
326
|
+
wallTimeout,
|
|
327
|
+
]);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
284
330
|
kill() {
|
|
285
331
|
if (this.process) {
|
|
286
332
|
this.process.kill('SIGTERM');
|
|
@@ -308,7 +354,7 @@ export class ClaudeCliProvider {
|
|
|
308
354
|
bypassFlagPath: opts.bypassFlagPath,
|
|
309
355
|
contextWindow: opts.contextWindow,
|
|
310
356
|
});
|
|
311
|
-
return this.spawnAndConsume(args, opts.cwd, opts.
|
|
357
|
+
return this.spawnAndConsume(args, opts.cwd, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow);
|
|
312
358
|
}
|
|
313
359
|
async resumeSession(opts, cardBuilder, callbacks) {
|
|
314
360
|
const args = this.buildCliArgs({
|
|
@@ -322,28 +368,38 @@ export class ClaudeCliProvider {
|
|
|
322
368
|
bypassFlagPath: opts.bypassFlagPath,
|
|
323
369
|
contextWindow: opts.contextWindow,
|
|
324
370
|
});
|
|
325
|
-
return this.spawnAndConsume(args, opts.cwd, opts.
|
|
371
|
+
return this.spawnAndConsume(args, opts.cwd, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow);
|
|
326
372
|
}
|
|
327
373
|
// ── Private: CLI Args ──
|
|
328
374
|
buildCliArgs(opts) {
|
|
329
375
|
return buildClaudeCliArgs({ ...opts, ownDir: __ownDir });
|
|
330
376
|
}
|
|
331
377
|
// ── Private: Spawn & Consume ──
|
|
332
|
-
async spawnAndConsume(args, cwd,
|
|
378
|
+
async spawnAndConsume(args, cwd, _level, _sandboxed, prompt, cardBuilder, callbacks, _model, contextWindow) {
|
|
333
379
|
const claudeBin = getClaudeBin();
|
|
334
|
-
// The CLI auto-promotes Sonnet/Opus to 1M context unless told otherwise.
|
|
335
|
-
// Pin the auto-compact window to the user's chosen tier so usage stays
|
|
336
|
-
// predictable across model switches and 200k/500k/1M presets all behave
|
|
337
|
-
// the way the picker says they will.
|
|
338
|
-
const env = { ...process.env };
|
|
339
|
-
if (contextWindow && contextWindow > 0) {
|
|
340
|
-
env.CLAUDE_CODE_AUTO_COMPACT_WINDOW = String(contextWindow);
|
|
341
|
-
}
|
|
342
380
|
const proc = spawn(claudeBin, args, {
|
|
343
381
|
cwd,
|
|
344
382
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
345
|
-
env,
|
|
346
383
|
});
|
|
384
|
+
// Pin the auto-compact threshold via a top-level
|
|
385
|
+
// `update_environment_variables` stdin frame BEFORE the first user
|
|
386
|
+
// prompt. The CLI's structured-IO handler patches `process.env` as soon
|
|
387
|
+
// as a frame arrives (binary v2.1.119 confirmed:
|
|
388
|
+
// `for(...) process.env[K]=_;`), and the auto-compact computation reads
|
|
389
|
+
// `process.env.CLAUDE_CODE_AUTO_COMPACT_WINDOW` per-turn — so the very
|
|
390
|
+
// first turn picks up the value.
|
|
391
|
+
//
|
|
392
|
+
// Using stdin instead of the spawn-time env var unifies the startup and
|
|
393
|
+
// mid-session paths: every change goes through `updateContextWindow`
|
|
394
|
+
// (here for the initial set, and via `setSessionConfig` for live
|
|
395
|
+
// changes). One source of truth, no respawn-on-tier-change drift.
|
|
396
|
+
if (contextWindow && contextWindow > 0) {
|
|
397
|
+
const envFrame = {
|
|
398
|
+
type: 'update_environment_variables',
|
|
399
|
+
variables: { CLAUDE_CODE_AUTO_COMPACT_WINDOW: String(contextWindow) },
|
|
400
|
+
};
|
|
401
|
+
proc.stdin.write(JSON.stringify(envFrame) + '\n');
|
|
402
|
+
}
|
|
347
403
|
// Send user message immediately — CLI needs stdin before emitting init
|
|
348
404
|
const userMsg = {
|
|
349
405
|
type: 'user',
|
|
@@ -391,6 +447,8 @@ export class ClaudeCliProvider {
|
|
|
391
447
|
});
|
|
392
448
|
});
|
|
393
449
|
const cliSession = new CliProviderSession(proc);
|
|
450
|
+
cliSession.cardBuilder = cardBuilder;
|
|
451
|
+
cliSession.callbacks = callbacks;
|
|
394
452
|
const debugLog = new DebugLogger(sessionId);
|
|
395
453
|
cliSession.debugLog = debugLog;
|
|
396
454
|
// Log the initial stdin prompt that was sent before init
|
|
@@ -398,12 +456,11 @@ export class ClaudeCliProvider {
|
|
|
398
456
|
// Update the cardBuilder sessionId (it may have been created with a placeholder)
|
|
399
457
|
cardBuilder.updateSessionId(sessionId);
|
|
400
458
|
// Fire and forget the stream consumer — pass the same readline interface
|
|
401
|
-
this.consumeStream(sessionId,
|
|
459
|
+
this.consumeStream(sessionId, rl, bufferedLines, cliSession, cardBuilder, callbacks, prompt, debugLog);
|
|
402
460
|
return { sessionId, session: cliSession };
|
|
403
461
|
}
|
|
404
462
|
// ── Private: Stream Consumer ──
|
|
405
|
-
async consumeStream(sessionId,
|
|
406
|
-
cliSession.currentStreamId = initialStreamId;
|
|
463
|
+
async consumeStream(sessionId, rl, bufferedLines, cliSession, cb, callbacks, prompt, debugLog) {
|
|
407
464
|
cliSession.resultEmitted = false;
|
|
408
465
|
let textBuffer = '';
|
|
409
466
|
let bufferTimer = null;
|
|
@@ -411,13 +468,14 @@ export class ClaudeCliProvider {
|
|
|
411
468
|
debugLog?.logCardEvent(event);
|
|
412
469
|
callbacks.emitCardEvent(event);
|
|
413
470
|
};
|
|
414
|
-
cb.startNewTurn(
|
|
471
|
+
cb.startNewTurn();
|
|
415
472
|
cliSession.activeTurn = true;
|
|
416
|
-
//
|
|
417
|
-
//
|
|
473
|
+
// Record + emit the initial user prompt so other PWA tabs subscribed to
|
|
474
|
+
// this session see it in real time. The sending tab dedupes the
|
|
475
|
+
// optimistic card it already rendered (by text + recent timestamp).
|
|
418
476
|
if (prompt) {
|
|
419
477
|
const userCardEvent = cb.userMessage(prompt);
|
|
420
|
-
|
|
478
|
+
emitCard(userCardEvent);
|
|
421
479
|
}
|
|
422
480
|
const flushText = () => {
|
|
423
481
|
if (textBuffer) {
|
|
@@ -447,30 +505,11 @@ export class ClaudeCliProvider {
|
|
|
447
505
|
return;
|
|
448
506
|
}
|
|
449
507
|
debugLog?.logRawEvent(msg);
|
|
450
|
-
const emittedResult = await this.routeMessage(sessionId,
|
|
508
|
+
const emittedResult = await this.routeMessage(sessionId, msg, cliSession, cb, callbacks, emitCard, flushText, bufferText, debugLog);
|
|
451
509
|
if (emittedResult) {
|
|
452
510
|
cliSession.resultEmitted = true;
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
// `cliSession.currentStreamId` is updated — routeMessage receives it
|
|
456
|
-
// by value.
|
|
457
|
-
const nextStreamId = cliSession.pendingStreamIds.shift();
|
|
458
|
-
if (nextStreamId) {
|
|
459
|
-
// Hot resume: cancel the prior turn's deferred clear so the pending
|
|
460
|
-
// poll doesn't wipe the next turn. Do NOT snapshotCutoff or clearCards
|
|
461
|
-
// here — the prior turn's messages may not be flushed to JSONL yet,
|
|
462
|
-
// and advancing cutoff past them while they're already in JSONL
|
|
463
|
-
// produces duplicates. Keep streamingCards as-is; the final turn's
|
|
464
|
-
// scheduleDeferredClear sweeps everything once the chain commits.
|
|
465
|
-
cb.cancelDeferredClear();
|
|
466
|
-
cliSession.currentStreamId = nextStreamId;
|
|
467
|
-
cb.startNewTurn(nextStreamId);
|
|
468
|
-
cliSession.activeTurn = true;
|
|
469
|
-
cliSession.resultEmitted = false; // Reset for next turn
|
|
470
|
-
}
|
|
471
|
-
else {
|
|
472
|
-
cliSession.activeTurn = false;
|
|
473
|
-
}
|
|
511
|
+
cb.startNewTurn();
|
|
512
|
+
cliSession.activeTurn = false;
|
|
474
513
|
}
|
|
475
514
|
};
|
|
476
515
|
try {
|
|
@@ -486,7 +525,7 @@ export class ClaudeCliProvider {
|
|
|
486
525
|
flushText();
|
|
487
526
|
console.error(`[cli] stream error session=${sessionId.slice(0, 8)}:`, error);
|
|
488
527
|
const msg = error instanceof Error ? error.message : 'Unknown error';
|
|
489
|
-
callbacks.emitStreamEnd({
|
|
528
|
+
callbacks.emitStreamEnd({ sessionId, success: false, error: msg });
|
|
490
529
|
cliSession.resultEmitted = true;
|
|
491
530
|
}
|
|
492
531
|
finally {
|
|
@@ -501,7 +540,7 @@ export class ClaudeCliProvider {
|
|
|
501
540
|
pending.reject(new Error('CLI process exited before control_response'));
|
|
502
541
|
}
|
|
503
542
|
if (!cliSession.resultEmitted) {
|
|
504
|
-
callbacks.emitStreamEnd({
|
|
543
|
+
callbacks.emitStreamEnd({ sessionId, success: false, error: 'Process exited unexpectedly' });
|
|
505
544
|
}
|
|
506
545
|
// Notify SessionManager so it can remove the entry and emit
|
|
507
546
|
// `session-updated { isActive: false }`. Without this the badge stays
|
|
@@ -511,7 +550,7 @@ export class ClaudeCliProvider {
|
|
|
511
550
|
}
|
|
512
551
|
// ── Private: Route a single stream-json message ──
|
|
513
552
|
// Returns true if a result/stream-end was emitted.
|
|
514
|
-
async routeMessage(sessionId,
|
|
553
|
+
async routeMessage(sessionId, msg, cliSession, cb, callbacks, emitCard, flushText, bufferText, debugLog) {
|
|
515
554
|
// ── Control requests (permissions) ──
|
|
516
555
|
if (msg.type === 'control_request' && msg.request?.subtype === 'can_use_tool') {
|
|
517
556
|
await this.handleControlRequest(sessionId, msg, cliSession, callbacks);
|
|
@@ -714,7 +753,6 @@ export class ClaudeCliProvider {
|
|
|
714
753
|
callbacks.onCacheTouch?.(sessionId);
|
|
715
754
|
}
|
|
716
755
|
const streamEnd = {
|
|
717
|
-
streamId,
|
|
718
756
|
sessionId,
|
|
719
757
|
success: msg.subtype === 'success' && !interrupted,
|
|
720
758
|
error: (msg.subtype !== 'success' && !interrupted)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeCliProvider.js","sourceRoot":"","sources":["../../src/ai/claudeCliProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claudeCliProvider.js","sourceRoot":"","sources":["../../src/ai/claudeCliProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,23 @@
|
|
|
1
|
+
import type { Query, SDKUserMessage } from '@anthropic-ai/claude-agent-sdk';
|
|
1
2
|
import { StreamCardBuilder } from './cardBuilder.js';
|
|
3
|
+
import { AsyncQueue } from './asyncQueue.js';
|
|
2
4
|
import type { CodingAgentProvider, ProviderSession, ProviderCallbacks, StartSessionOpts, ResumeSessionOpts } from './provider.js';
|
|
5
|
+
export declare class SdkProviderSession implements ProviderSession {
|
|
6
|
+
private queryHandle;
|
|
7
|
+
private inputQueue;
|
|
8
|
+
private cardBuilder;
|
|
9
|
+
/** Callbacks for this session — used by sendUserMessage to emit the
|
|
10
|
+
* follow-up prompt as a card-event so other PWA tabs subscribed to this
|
|
11
|
+
* session see it in real time. Populated by start/resumeSession. */
|
|
12
|
+
callbacks: ProviderCallbacks | null;
|
|
13
|
+
constructor(queryHandle: Query, inputQueue: AsyncQueue<SDKUserMessage>, cardBuilder: StreamCardBuilder);
|
|
14
|
+
sendUserMessage(prompt: string): void;
|
|
15
|
+
interrupt(): void;
|
|
16
|
+
kill(): void;
|
|
17
|
+
get alive(): boolean;
|
|
18
|
+
/** Called when the stream ends naturally (query generator completes). */
|
|
19
|
+
markClosed(): void;
|
|
20
|
+
}
|
|
3
21
|
export declare class ClaudeSdkProvider implements CodingAgentProvider {
|
|
4
22
|
readonly id: "claude-code";
|
|
5
23
|
readonly historyMode: "claude-jsonl";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeSdkProvider.d.ts","sourceRoot":"","sources":["../../src/ai/claudeSdkProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claudeSdkProvider.d.ts","sourceRoot":"","sources":["../../src/ai/claudeSdkProvider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,KAAK,EAGL,cAAc,EAGf,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAoBvB,qBAAa,kBAAmB,YAAW,eAAe;IACxD,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,WAAW,CAAoB;IACvC;;wEAEoE;IAC7D,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAQ;gBAGhD,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,UAAU,CAAC,cAAc,CAAC,EACtC,WAAW,EAAE,iBAAiB;IAOhC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBrC,SAAS,IAAI,IAAI;IAOjB,IAAI,IAAI,IAAI;IAQZ,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,yEAAyE;IACzE,UAAU,IAAI,IAAI;CAGnB;AAMD,qBAAa,iBAAkB,YAAW,mBAAmB;IAC3D,QAAQ,CAAC,EAAE,EAAG,aAAa,CAAU;IACrC,QAAQ,CAAC,WAAW,EAAG,cAAc,CAAU;IAEzC,YAAY,CAChB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAgCrD,aAAa,CACjB,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,CAAC;IAkC3D,OAAO,CAAC,YAAY;IA+EpB,OAAO,CAAC,iBAAiB;YAWX,WAAW;YAiCX,aAAa;YAqEb,YAAY;CAkN3B"}
|
|
@@ -20,18 +20,29 @@ function extractToolResultText(content) {
|
|
|
20
20
|
// ============================================================================
|
|
21
21
|
// SdkProviderSession — wraps SDK Query for ProviderSession interface
|
|
22
22
|
// ============================================================================
|
|
23
|
-
class SdkProviderSession {
|
|
23
|
+
export class SdkProviderSession {
|
|
24
24
|
queryHandle;
|
|
25
25
|
inputQueue;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
cardBuilder;
|
|
27
|
+
/** Callbacks for this session — used by sendUserMessage to emit the
|
|
28
|
+
* follow-up prompt as a card-event so other PWA tabs subscribed to this
|
|
29
|
+
* session see it in real time. Populated by start/resumeSession. */
|
|
30
|
+
callbacks = null;
|
|
31
|
+
constructor(queryHandle, inputQueue, cardBuilder) {
|
|
29
32
|
this.queryHandle = queryHandle;
|
|
30
33
|
this.inputQueue = inputQueue;
|
|
34
|
+
this.cardBuilder = cardBuilder;
|
|
31
35
|
}
|
|
32
36
|
sendUserMessage(prompt) {
|
|
33
37
|
if (!this.queryHandle)
|
|
34
38
|
return;
|
|
39
|
+
// Record the prompt in the cardBuilder so getCards on reconnect/refresh
|
|
40
|
+
// returns it before the SDK has flushed it to the session JSONL.
|
|
41
|
+
const userEvent = this.cardBuilder.userMessage(prompt);
|
|
42
|
+
// Emit the card-event so other PWA tabs subscribed to this session see
|
|
43
|
+
// the follow-up prompt in real time. The sending tab dedupes its
|
|
44
|
+
// optimistic card by text + recent timestamp in claudeStore.
|
|
45
|
+
this.callbacks?.emitCardEvent(userEvent);
|
|
35
46
|
const userMsg = {
|
|
36
47
|
type: 'user',
|
|
37
48
|
message: { role: 'user', content: prompt },
|
|
@@ -82,11 +93,12 @@ export class ClaudeSdkProvider {
|
|
|
82
93
|
// Wait for init message to get sessionId
|
|
83
94
|
const sessionId = await this.waitForInit(queryHandle, callbacks);
|
|
84
95
|
sessionIdRef.current = sessionId;
|
|
85
|
-
const sdkSession = new SdkProviderSession(queryHandle, inputQueue);
|
|
96
|
+
const sdkSession = new SdkProviderSession(queryHandle, inputQueue, cardBuilder);
|
|
97
|
+
sdkSession.callbacks = callbacks;
|
|
86
98
|
// Update cardBuilder with real sessionId
|
|
87
99
|
cardBuilder.updateSessionId(sessionId);
|
|
88
100
|
// Fire and forget the stream consumer
|
|
89
|
-
this.consumeStream(sessionId,
|
|
101
|
+
this.consumeStream(sessionId, queryHandle, sdkSession, cardBuilder, callbacks, opts.prompt);
|
|
90
102
|
return { sessionId, session: sdkSession };
|
|
91
103
|
}
|
|
92
104
|
async resumeSession(opts, cardBuilder, callbacks) {
|
|
@@ -104,11 +116,12 @@ export class ClaudeSdkProvider {
|
|
|
104
116
|
// Wait for init message
|
|
105
117
|
const sessionId = await this.waitForInit(queryHandle, callbacks);
|
|
106
118
|
sessionIdRef.current = sessionId;
|
|
107
|
-
const sdkSession = new SdkProviderSession(queryHandle, inputQueue);
|
|
119
|
+
const sdkSession = new SdkProviderSession(queryHandle, inputQueue, cardBuilder);
|
|
120
|
+
sdkSession.callbacks = callbacks;
|
|
108
121
|
// Update cardBuilder with confirmed sessionId
|
|
109
122
|
cardBuilder.updateSessionId(sessionId);
|
|
110
123
|
// Fire and forget
|
|
111
|
-
this.consumeStream(sessionId,
|
|
124
|
+
this.consumeStream(sessionId, queryHandle, sdkSession, cardBuilder, callbacks, opts.prompt);
|
|
112
125
|
return { sessionId, session: sdkSession };
|
|
113
126
|
}
|
|
114
127
|
// ── Private: Build SDK Options ──
|
|
@@ -210,16 +223,17 @@ export class ClaudeSdkProvider {
|
|
|
210
223
|
throw new Error('SDK query ended without init message');
|
|
211
224
|
}
|
|
212
225
|
// ── Private: Stream Consumer ──
|
|
213
|
-
async consumeStream(sessionId,
|
|
214
|
-
let streamId = initialStreamId;
|
|
226
|
+
async consumeStream(sessionId, queryHandle, sdkSession, cb, callbacks, prompt) {
|
|
215
227
|
let textBuffer = '';
|
|
216
228
|
let bufferTimer = null;
|
|
217
229
|
let resultEmitted = false;
|
|
218
230
|
const emitCard = (event) => { callbacks.emitCardEvent(event); };
|
|
219
|
-
cb.startNewTurn(
|
|
220
|
-
//
|
|
231
|
+
cb.startNewTurn();
|
|
232
|
+
// Record + emit the initial user prompt so other PWA tabs subscribed to
|
|
233
|
+
// this session see it in real time. The sending tab dedupes its
|
|
234
|
+
// optimistic card by text + recent timestamp in claudeStore.
|
|
221
235
|
if (prompt) {
|
|
222
|
-
cb.userMessage(prompt);
|
|
236
|
+
emitCard(cb.userMessage(prompt));
|
|
223
237
|
}
|
|
224
238
|
const flushText = () => {
|
|
225
239
|
if (textBuffer) {
|
|
@@ -242,16 +256,13 @@ export class ClaudeSdkProvider {
|
|
|
242
256
|
};
|
|
243
257
|
try {
|
|
244
258
|
for await (const msg of queryHandle) {
|
|
245
|
-
const emittedResult = await this.routeMessage(sessionId,
|
|
259
|
+
const emittedResult = await this.routeMessage(sessionId, msg, sdkSession, cb, callbacks, emitCard, flushText, bufferText);
|
|
246
260
|
if (emittedResult) {
|
|
247
261
|
resultEmitted = true;
|
|
248
|
-
//
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
cb.startNewTurn(streamId);
|
|
253
|
-
resultEmitted = false; // Reset for next turn
|
|
254
|
-
}
|
|
262
|
+
// Reset per-turn state. If a follow-up prompt arrived during this
|
|
263
|
+
// turn, the SDK will pick it up from inputQueue and the next
|
|
264
|
+
// assistant text should land in a fresh card.
|
|
265
|
+
cb.startNewTurn();
|
|
255
266
|
}
|
|
256
267
|
}
|
|
257
268
|
}
|
|
@@ -259,7 +270,7 @@ export class ClaudeSdkProvider {
|
|
|
259
270
|
flushText();
|
|
260
271
|
console.error(`[sdk] stream error session=${sessionId.slice(0, 8)}:`, error);
|
|
261
272
|
const msg = error instanceof Error ? error.message : 'Unknown error';
|
|
262
|
-
callbacks.emitStreamEnd({
|
|
273
|
+
callbacks.emitStreamEnd({ sessionId, success: false, error: msg });
|
|
263
274
|
resultEmitted = true;
|
|
264
275
|
}
|
|
265
276
|
finally {
|
|
@@ -267,13 +278,13 @@ export class ClaudeSdkProvider {
|
|
|
267
278
|
clearTimeout(bufferTimer);
|
|
268
279
|
sdkSession.markClosed();
|
|
269
280
|
if (!resultEmitted) {
|
|
270
|
-
callbacks.emitStreamEnd({
|
|
281
|
+
callbacks.emitStreamEnd({ sessionId, success: false, error: 'SDK query ended unexpectedly' });
|
|
271
282
|
}
|
|
272
283
|
}
|
|
273
284
|
}
|
|
274
285
|
// ── Private: Route a single SDK message ──
|
|
275
286
|
// Returns true if a result/stream-end was emitted.
|
|
276
|
-
async routeMessage(sessionId,
|
|
287
|
+
async routeMessage(sessionId, msg, _sdkSession, cb, callbacks, emitCard, flushText, bufferText) {
|
|
277
288
|
// ── System events ──
|
|
278
289
|
if (msg.type === 'system') {
|
|
279
290
|
const subtype = msg.subtype;
|
|
@@ -439,7 +450,6 @@ export class ClaudeSdkProvider {
|
|
|
439
450
|
}
|
|
440
451
|
const errors = msg.errors;
|
|
441
452
|
const streamEnd = {
|
|
442
|
-
streamId,
|
|
443
453
|
sessionId,
|
|
444
454
|
success: msg.subtype === 'success' && !interrupted,
|
|
445
455
|
error: (msg.subtype !== 'success' && !interrupted)
|