@sumicom/quicksave 0.8.6 → 0.8.7

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 (188) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/ai/asyncQueue.d.ts.map +1 -1
  4. package/dist/ai/asyncQueue.js +2 -0
  5. package/dist/ai/asyncQueue.js.map +1 -1
  6. package/dist/ai/attachmentStaging.d.ts +71 -0
  7. package/dist/ai/attachmentStaging.d.ts.map +1 -0
  8. package/dist/ai/attachmentStaging.js +243 -0
  9. package/dist/ai/attachmentStaging.js.map +1 -0
  10. package/dist/ai/attachmentStore.d.ts +40 -0
  11. package/dist/ai/attachmentStore.d.ts.map +1 -0
  12. package/dist/ai/attachmentStore.js +173 -0
  13. package/dist/ai/attachmentStore.js.map +1 -0
  14. package/dist/ai/cardBuilder.d.ts +3 -2
  15. package/dist/ai/cardBuilder.d.ts.map +1 -1
  16. package/dist/ai/cardBuilder.js +156 -5
  17. package/dist/ai/cardBuilder.js.map +1 -1
  18. package/dist/ai/claudeCliProvider.d.ts +7 -2
  19. package/dist/ai/claudeCliProvider.d.ts.map +1 -1
  20. package/dist/ai/claudeCliProvider.js +29 -11
  21. package/dist/ai/claudeCliProvider.js.map +1 -1
  22. package/dist/ai/claudeCodeProvider.d.ts.map +1 -1
  23. package/dist/ai/claudeCodeProvider.js +2 -0
  24. package/dist/ai/claudeCodeProvider.js.map +1 -1
  25. package/dist/ai/claudeSdkProvider.d.ts +2 -1
  26. package/dist/ai/claudeSdkProvider.d.ts.map +1 -1
  27. package/dist/ai/claudeSdkProvider.js +76 -12
  28. package/dist/ai/claudeSdkProvider.js.map +1 -1
  29. package/dist/ai/codexAppServer/approvalMapping.d.ts.map +1 -1
  30. package/dist/ai/codexAppServer/approvalMapping.js.map +1 -1
  31. package/dist/ai/codexAppServer/cardAdapter.d.ts.map +1 -1
  32. package/dist/ai/codexAppServer/cardAdapter.js.map +1 -1
  33. package/dist/ai/codexAppServer/index.d.ts.map +1 -1
  34. package/dist/ai/codexAppServer/index.js +2 -0
  35. package/dist/ai/codexAppServer/index.js.map +1 -1
  36. package/dist/ai/codexAppServer/overrideStore.d.ts.map +1 -1
  37. package/dist/ai/codexAppServer/overrideStore.js.map +1 -1
  38. package/dist/ai/codexAppServer/permissionMapping.d.ts.map +1 -1
  39. package/dist/ai/codexAppServer/permissionMapping.js.map +1 -1
  40. package/dist/ai/codexAppServer/processManager.d.ts.map +1 -1
  41. package/dist/ai/codexAppServer/processManager.js +2 -0
  42. package/dist/ai/codexAppServer/processManager.js.map +1 -1
  43. package/dist/ai/codexAppServer/provider.d.ts.map +1 -1
  44. package/dist/ai/codexAppServer/provider.js.map +1 -1
  45. package/dist/ai/codexAppServer/rpcClient.d.ts.map +1 -1
  46. package/dist/ai/codexAppServer/rpcClient.js.map +1 -1
  47. package/dist/ai/codexAppServer/schema/index.d.ts.map +1 -1
  48. package/dist/ai/codexAppServer/schema/index.js +2 -0
  49. package/dist/ai/codexAppServer/schema/index.js.map +1 -1
  50. package/dist/ai/codexAppServer/stdioTransport.d.ts.map +1 -1
  51. package/dist/ai/codexAppServer/stdioTransport.js.map +1 -1
  52. package/dist/ai/codexAppServer/tokenAccounting.d.ts.map +1 -1
  53. package/dist/ai/codexAppServer/tokenAccounting.js.map +1 -1
  54. package/dist/ai/codexAppServer/version.d.ts.map +1 -1
  55. package/dist/ai/codexAppServer/version.js +2 -0
  56. package/dist/ai/codexAppServer/version.js.map +1 -1
  57. package/dist/ai/codexLogin.d.ts.map +1 -1
  58. package/dist/ai/codexLogin.js +2 -0
  59. package/dist/ai/codexLogin.js.map +1 -1
  60. package/dist/ai/codexMcpProvider.d.ts.map +1 -1
  61. package/dist/ai/codexMcpProvider.js +2 -0
  62. package/dist/ai/codexMcpProvider.js.map +1 -1
  63. package/dist/ai/commitSummary.d.ts.map +1 -1
  64. package/dist/ai/commitSummary.js +2 -0
  65. package/dist/ai/commitSummary.js.map +1 -1
  66. package/dist/ai/commitSummaryCli.d.ts.map +1 -1
  67. package/dist/ai/commitSummaryCli.js +2 -0
  68. package/dist/ai/commitSummaryCli.js.map +1 -1
  69. package/dist/ai/commitSummaryStore.d.ts.map +1 -1
  70. package/dist/ai/commitSummaryStore.js +2 -0
  71. package/dist/ai/commitSummaryStore.js.map +1 -1
  72. package/dist/ai/contentBlocks.d.ts +9 -0
  73. package/dist/ai/contentBlocks.d.ts.map +1 -0
  74. package/dist/ai/contentBlocks.js +86 -0
  75. package/dist/ai/contentBlocks.js.map +1 -0
  76. package/dist/ai/debugLogger.d.ts.map +1 -1
  77. package/dist/ai/debugLogger.js +2 -0
  78. package/dist/ai/debugLogger.js.map +1 -1
  79. package/dist/ai/enrichEntry.d.ts.map +1 -1
  80. package/dist/ai/enrichEntry.js.map +1 -1
  81. package/dist/ai/pdfMeta.d.ts +8 -0
  82. package/dist/ai/pdfMeta.d.ts.map +1 -0
  83. package/dist/ai/pdfMeta.js +51 -0
  84. package/dist/ai/pdfMeta.js.map +1 -0
  85. package/dist/ai/provider.d.ts +14 -6
  86. package/dist/ai/provider.d.ts.map +1 -1
  87. package/dist/ai/provider.js.map +1 -1
  88. package/dist/ai/sandboxMcp.d.ts.map +1 -1
  89. package/dist/ai/sandboxMcp.js +2 -0
  90. package/dist/ai/sandboxMcp.js.map +1 -1
  91. package/dist/ai/sandboxMcpStdio.d.ts.map +1 -1
  92. package/dist/ai/sandboxMcpStdio.js +2 -0
  93. package/dist/ai/sandboxMcpStdio.js.map +1 -1
  94. package/dist/ai/sessionManager.d.ts +12 -2
  95. package/dist/ai/sessionManager.d.ts.map +1 -1
  96. package/dist/ai/sessionManager.js +39 -5
  97. package/dist/ai/sessionManager.js.map +1 -1
  98. package/dist/ai/sessionRegistry.d.ts.map +1 -1
  99. package/dist/ai/sessionRegistry.js +2 -0
  100. package/dist/ai/sessionRegistry.js.map +1 -1
  101. package/dist/ai/sessionStore.d.ts.map +1 -1
  102. package/dist/ai/sessionStore.js +2 -0
  103. package/dist/ai/sessionStore.js.map +1 -1
  104. package/dist/ai/systemPrompt.d.ts.map +1 -1
  105. package/dist/ai/systemPrompt.js.map +1 -1
  106. package/dist/config.d.ts.map +1 -1
  107. package/dist/config.js +2 -0
  108. package/dist/config.js.map +1 -1
  109. package/dist/connection/connection.d.ts.map +1 -1
  110. package/dist/connection/connection.js +2 -0
  111. package/dist/connection/connection.js.map +1 -1
  112. package/dist/connection/e2eHarness.d.ts.map +1 -1
  113. package/dist/connection/e2eHarness.js +2 -0
  114. package/dist/connection/e2eHarness.js.map +1 -1
  115. package/dist/connection/fakeRelay.d.ts.map +1 -1
  116. package/dist/connection/fakeRelay.js +2 -0
  117. package/dist/connection/fakeRelay.js.map +1 -1
  118. package/dist/connection/pubsub.d.ts.map +1 -1
  119. package/dist/connection/pubsub.js +2 -0
  120. package/dist/connection/pubsub.js.map +1 -1
  121. package/dist/connection/relay.d.ts.map +1 -1
  122. package/dist/connection/relay.js +2 -0
  123. package/dist/connection/relay.js.map +1 -1
  124. package/dist/files/fileBrowser.d.ts.map +1 -1
  125. package/dist/files/fileBrowser.js +2 -0
  126. package/dist/files/fileBrowser.js.map +1 -1
  127. package/dist/git/operations.d.ts.map +1 -1
  128. package/dist/git/operations.js +2 -0
  129. package/dist/git/operations.js.map +1 -1
  130. package/dist/handlers/legacyBusAdapter.d.ts +1 -1
  131. package/dist/handlers/legacyBusAdapter.d.ts.map +1 -1
  132. package/dist/handlers/legacyBusAdapter.js +13 -1
  133. package/dist/handlers/legacyBusAdapter.js.map +1 -1
  134. package/dist/handlers/messageHandler.d.ts +23 -0
  135. package/dist/handlers/messageHandler.d.ts.map +1 -1
  136. package/dist/handlers/messageHandler.js +223 -7
  137. package/dist/handlers/messageHandler.js.map +1 -1
  138. package/dist/index.js +42 -2
  139. package/dist/index.js.map +1 -1
  140. package/dist/messageBus/busServerTransport.d.ts.map +1 -1
  141. package/dist/messageBus/busServerTransport.js +2 -0
  142. package/dist/messageBus/busServerTransport.js.map +1 -1
  143. package/dist/service/debugHttpServer.d.ts.map +1 -1
  144. package/dist/service/debugHttpServer.js +2 -0
  145. package/dist/service/debugHttpServer.js.map +1 -1
  146. package/dist/service/ensureDaemon.d.ts.map +1 -1
  147. package/dist/service/ensureDaemon.js +27 -2
  148. package/dist/service/ensureDaemon.js.map +1 -1
  149. package/dist/service/index.d.ts.map +1 -1
  150. package/dist/service/index.js +2 -0
  151. package/dist/service/index.js.map +1 -1
  152. package/dist/service/ipcClient.d.ts.map +1 -1
  153. package/dist/service/ipcClient.js +3 -1
  154. package/dist/service/ipcClient.js.map +1 -1
  155. package/dist/service/ipcServer.d.ts.map +1 -1
  156. package/dist/service/ipcServer.js +2 -0
  157. package/dist/service/ipcServer.js.map +1 -1
  158. package/dist/service/pushClient.d.ts.map +1 -1
  159. package/dist/service/pushClient.js +2 -0
  160. package/dist/service/pushClient.js.map +1 -1
  161. package/dist/service/run.d.ts.map +1 -1
  162. package/dist/service/run.js +14 -1
  163. package/dist/service/run.js.map +1 -1
  164. package/dist/service/singleton.d.ts +1 -0
  165. package/dist/service/singleton.d.ts.map +1 -1
  166. package/dist/service/singleton.js +5 -0
  167. package/dist/service/singleton.js.map +1 -1
  168. package/dist/service/stateStore.d.ts.map +1 -1
  169. package/dist/service/stateStore.js +2 -0
  170. package/dist/service/stateStore.js.map +1 -1
  171. package/dist/service/systemdUnit.d.ts +149 -0
  172. package/dist/service/systemdUnit.d.ts.map +1 -0
  173. package/dist/service/systemdUnit.js +322 -0
  174. package/dist/service/systemdUnit.js.map +1 -0
  175. package/dist/service/types.d.ts +6 -0
  176. package/dist/service/types.d.ts.map +1 -1
  177. package/dist/service/types.js +3 -1
  178. package/dist/service/types.js.map +1 -1
  179. package/dist/storage/eventStore.d.ts.map +1 -1
  180. package/dist/storage/eventStore.js +2 -0
  181. package/dist/storage/eventStore.js.map +1 -1
  182. package/dist/terminal/terminalManager.d.ts.map +1 -1
  183. package/dist/terminal/terminalManager.js +2 -0
  184. package/dist/terminal/terminalManager.js.map +1 -1
  185. package/dist/tombstoneCheck.d.ts.map +1 -1
  186. package/dist/tombstoneCheck.js +2 -0
  187. package/dist/tombstoneCheck.js.map +1 -1
  188. package/package.json +3 -3
@@ -4,6 +4,43 @@ import { createReadStream, existsSync } from 'fs';
4
4
  import { createInterface } from 'readline';
5
5
  import { homedir } from 'os';
6
6
  import { getCardHistoryDir } from '../service/singleton.js';
7
+ import { listSessionAttachments, readTurnManifest } from './attachmentStore.js';
8
+ /** Decoded byte length of a base64 string, accounting for `=` padding. */
9
+ function decodedBase64Bytes(base64) {
10
+ if (typeof base64 !== 'string')
11
+ return 0;
12
+ const len = base64.length;
13
+ const padding = base64.endsWith('==') ? 2 : base64.endsWith('=') ? 1 : 0;
14
+ return Math.floor((len * 3) / 4) - padding;
15
+ }
16
+ /** Pool that lets us look up a persisted attachment by `(kind, size)` —
17
+ * optionally name-tiebroken — and remove it so duplicates match correctly.
18
+ * Used to recover the original upload UUIDs for attachments rebuilt from
19
+ * JSONL (which doesn't carry our ids). */
20
+ function makeAttachmentResolver(metas) {
21
+ const pool = new Map();
22
+ for (const m of metas) {
23
+ const key = `${m.kind}:${m.size}`;
24
+ const list = pool.get(key) ?? [];
25
+ list.push(m);
26
+ pool.set(key, list);
27
+ }
28
+ return function consume(kind, size, name) {
29
+ const list = pool.get(`${kind}:${size}`);
30
+ if (!list || list.length === 0)
31
+ return null;
32
+ let idx = 0;
33
+ if (name !== undefined) {
34
+ const named = list.findIndex((m) => m.name === name);
35
+ if (named >= 0)
36
+ idx = named;
37
+ }
38
+ const [matched] = list.splice(idx, 1);
39
+ if (list.length === 0)
40
+ pool.delete(`${kind}:${size}`);
41
+ return matched;
42
+ };
43
+ }
7
44
  const TOOL_RESULT_TRUNCATE_LENGTH = 500;
8
45
  // ── Card history persistence (for memory-mode providers like Codex) ──
9
46
  function cardHistoryPath(sessionId) {
@@ -376,9 +413,26 @@ export class StreamCardBuilder {
376
413
  return { type: 'remove', sessionId: this.sessionId, cardId };
377
414
  }
378
415
  // ── Public: produce CardEvents from SDK data ────────────────────────────
379
- userMessage(text) {
416
+ userMessage(text, attachments) {
380
417
  this.currentTextCardId = null;
381
- const card = { type: 'user', id: this.nextId(), timestamp: Date.now(), text };
418
+ // UserCard.attachments only carries metadata bytes are fetched on
419
+ // demand via `attachment:fetch`, not piped through every snapshot.
420
+ const metadata = attachments && attachments.length > 0
421
+ ? attachments.map((a) => ({
422
+ id: a.id,
423
+ kind: a.kind,
424
+ mimeType: a.mimeType,
425
+ name: a.name,
426
+ size: a.size,
427
+ }))
428
+ : undefined;
429
+ const card = {
430
+ type: 'user',
431
+ id: this.nextId(),
432
+ timestamp: Date.now(),
433
+ text,
434
+ ...(metadata ? { attachments: metadata } : {}),
435
+ };
382
436
  return this.addEvent(card);
383
437
  }
384
438
  thinkingBlock(text) {
@@ -550,6 +604,17 @@ export class StreamCardBuilder {
550
604
  const card = { type: 'system', id: this.nextId(), timestamp: Date.now(), text, subtype };
551
605
  return this.addEvent(card);
552
606
  }
607
+ recoverySuggested(reason, action, label) {
608
+ const card = {
609
+ type: 'recovery_suggested',
610
+ id: this.nextId(),
611
+ timestamp: Date.now(),
612
+ reason,
613
+ action,
614
+ label,
615
+ };
616
+ return this.addEvent(card);
617
+ }
553
618
  errorMessage(text) {
554
619
  return this.systemMessage(`Error: ${text}`, 'error');
555
620
  }
@@ -678,6 +743,20 @@ export async function buildCardsFromHistory(sessionId, cwd, offset = 0, limit =
678
743
  toolUseIdToAgentId.set(toolUseId, toolUseId);
679
744
  }
680
745
  }
746
+ // ── Load persisted attachment metas + turn manifest so we can rebind
747
+ // synthetic `replay:N` ids in user blocks back to the real upload UUIDs
748
+ // the PWA needs for `attachment:fetch`. Manifest gives an exact-UUID
749
+ // match per turn (preferred); the fuzzy `(kind, size, name)` resolver is
750
+ // the fallback for sessions whose attachments predate the manifest.
751
+ const [persistedMetas, turnManifest] = await Promise.all([
752
+ listSessionAttachments(sessionId).catch(() => []),
753
+ readTurnManifest(sessionId).catch(() => []),
754
+ ]);
755
+ const metaById = new Map();
756
+ for (const m of persistedMetas)
757
+ metaById.set(m.id, m);
758
+ const resolveAttachment = makeAttachmentResolver(persistedMetas);
759
+ let attachmentTurnCursor = 0;
681
760
  // ── Pass 2: Build Cards from sliced messages ───────────────────────────
682
761
  let seq = Math.max(0, total - offset - limit);
683
762
  const nextId = () => `${sessionId}:h:${++seq}`;
@@ -713,12 +792,84 @@ export async function buildCardsFromHistory(sessionId, cwd, offset = 0, limit =
713
792
  continue;
714
793
  }
715
794
  if (Array.isArray(rawMessage.content)) {
795
+ // A user turn that came in with attachments is one logical card with
796
+ // image/document/text blocks in some order. We collapse all text
797
+ // blocks into a single `text` field and reconstruct AttachmentMetadata
798
+ // records from image/document blocks (no bytes — those live in the
799
+ // attachmentStore on disk and are fetched on demand). Pure text-only
800
+ // turns still produce one card per text block (back-compat).
801
+ //
802
+ // Replayed attachment ids do NOT round-trip through JSONL. We
803
+ // recover the original upload UUIDs by matching each block against
804
+ // the persisted-meta pool by `(kind, decoded byte size [, name])`;
805
+ // an unmatched block falls back to a synthetic `replay:<n>` id and
806
+ // its chip will render as "Unavailable" (bytes lost or not yet
807
+ // persistent).
808
+ const attachments = [];
809
+ const textParts = [];
810
+ let hasNonTextBlock = false;
811
+ // Pre-scan the block array for attachment blocks so we know whether
812
+ // to consume a manifest entry for this turn (an attachment-bearing
813
+ // user turn contributes exactly one manifest line, in send order).
814
+ const turnHasAttachment = rawMessage.content.some((b) => (b?.type === 'image' && b.source?.type === 'base64') ||
815
+ (b?.type === 'document' && b.source?.type === 'base64' && b.source.media_type === 'application/pdf'));
816
+ const turnEntry = turnHasAttachment ? turnManifest[attachmentTurnCursor] : undefined;
817
+ if (turnHasAttachment)
818
+ attachmentTurnCursor++;
819
+ let manifestIdx = 0;
716
820
  for (const block of rawMessage.content) {
717
- if (block.type === 'text') {
718
- cards.push({ type: 'user', id: nextId(), timestamp: Date.now(), text: block.text });
821
+ if (block?.type === 'image' && block.source?.type === 'base64') {
822
+ hasNonTextBlock = true;
823
+ const size = decodedBase64Bytes(block.source.data);
824
+ const mimeType = typeof block.source.media_type === 'string' ? block.source.media_type : 'image/png';
825
+ const manifestId = turnEntry?.ids[manifestIdx++];
826
+ const exact = manifestId ? metaById.get(manifestId) : undefined;
827
+ const matched = exact && exact.kind === 'image' && exact.size === size
828
+ ? exact
829
+ : resolveAttachment('image', size);
830
+ attachments.push(matched
831
+ ? { id: matched.id, kind: matched.kind, mimeType: matched.mimeType, name: matched.name, size: matched.size }
832
+ : { id: `replay:${nextId()}`, kind: 'image', mimeType, name: 'attachment', size });
833
+ }
834
+ else if (block?.type === 'document' && block.source?.type === 'base64' && block.source.media_type === 'application/pdf') {
835
+ hasNonTextBlock = true;
836
+ const size = decodedBase64Bytes(block.source.data);
837
+ const name = typeof block.title === 'string' && block.title.length > 0 ? block.title : 'document.pdf';
838
+ const manifestId = turnEntry?.ids[manifestIdx++];
839
+ const exact = manifestId ? metaById.get(manifestId) : undefined;
840
+ const matched = exact && exact.kind === 'pdf' && exact.size === size
841
+ ? exact
842
+ : resolveAttachment('pdf', size, name);
843
+ attachments.push(matched
844
+ ? { id: matched.id, kind: matched.kind, mimeType: matched.mimeType, name: matched.name, size: matched.size }
845
+ : { id: `replay:${nextId()}`, kind: 'pdf', mimeType: 'application/pdf', name, size });
846
+ }
847
+ else if (block?.type === 'text' && typeof block.text === 'string') {
848
+ textParts.push(block.text);
719
849
  }
720
850
  // tool_result blocks are paired into ToolCallCard.result (handled below)
721
- // Skip them here — they don't need separate cards
851
+ // Skip them here — they don't need separate cards.
852
+ }
853
+ if (hasNonTextBlock) {
854
+ const card = {
855
+ type: 'user',
856
+ id: nextId(),
857
+ timestamp: Date.now(),
858
+ text: textParts.join('\n'),
859
+ ...(attachments.length > 0 ? { attachments } : {}),
860
+ };
861
+ cards.push(card);
862
+ }
863
+ else {
864
+ // No image/pdf — fall back to one card per text block, preserving
865
+ // the older multi-card behavior for plain user turns (e.g. when a
866
+ // tool_result block is present alongside a text block, and only
867
+ // the text block makes a user card).
868
+ for (const block of rawMessage.content) {
869
+ if (block?.type === 'text' && typeof block.text === 'string') {
870
+ cards.push({ type: 'user', id: nextId(), timestamp: Date.now(), text: block.text });
871
+ }
872
+ }
722
873
  }
723
874
  continue;
724
875
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cardBuilder.js","sourceRoot":"","sources":["../../src/ai/cardBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cardBuilder.js","sourceRoot":"","sources":["../../src/ai/cardBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ChildProcess } from 'child_process';
2
- import type { ContextUsageBreakdown } from '@sumicom/quicksave-shared';
2
+ import type { Attachment, ContextUsageBreakdown } from '@sumicom/quicksave-shared';
3
3
  import { StreamCardBuilder } from './cardBuilder.js';
4
4
  import { DebugLogger } from './debugLogger.js';
5
5
  import type { CodingAgentProvider, ProviderSession, ProviderCallbacks, StartSessionOpts, ResumeSessionOpts, PermissionLevel } from './provider.js';
@@ -39,6 +39,11 @@ export declare function buildClaudeCliArgs(opts: {
39
39
  * `update_environment_variables` frame in `spawnAndConsume` (and again on
40
40
  * every live change via `CliProviderSession.updateContextWindow`). */
41
41
  contextWindow?: number;
42
+ /** Per-session reasoning depth. Maps to the CLI's `--effort` flag, which
43
+ * accepts `low | medium | high | xhigh | max`. `max` is Opus-only — the
44
+ * CLI rejects/ignores it on other models, so let the daemon pass through
45
+ * whatever the UI chose and surface CLI errors back to the user. */
46
+ reasoningEffort?: string;
42
47
  }): string[];
43
48
  export declare function getClaudeBin(): string;
44
49
  export declare class CliProviderSession implements ProviderSession {
@@ -72,7 +77,7 @@ export declare class CliProviderSession implements ProviderSession {
72
77
  * paused, so a compaction or long tool loop will not expire the request.
73
78
  */
74
79
  sendControlRequest(subtype: string, params?: Record<string, unknown>, idleTimeoutMs?: number): Promise<unknown>;
75
- sendUserMessage(prompt: string): void;
80
+ sendUserMessage(prompt: string, attachments?: readonly Attachment[]): void;
76
81
  interrupt(): void;
77
82
  getContextUsage(): Promise<ContextUsageBreakdown | null>;
78
83
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"claudeCliProvider.d.ts","sourceRoot":"","sources":["../../src/ai/claudeCliProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claudeCliProvider.d.ts","sourceRoot":"","sources":["../../src/ai/claudeCliProvider.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ // SPDX-FileCopyrightText: 2026 King Young Technology
2
+ // SPDX-License-Identifier: MIT
1
3
  import { spawn, execSync } from 'child_process';
2
4
  import { createInterface } from 'readline';
3
5
  import { join, dirname } from 'path';
@@ -5,6 +7,8 @@ import { existsSync, readdirSync } from 'fs';
5
7
  import { fileURLToPath } from 'url';
6
8
  import { SANDBOX_MCP_NAME, SANDBOX_BASH_TOOL, buildSandboxMcpServerConfig } from './sandboxMcp.js';
7
9
  import { DebugLogger } from './debugLogger.js';
10
+ import { attachmentsToContentBlocks } from './contentBlocks.js';
11
+ import { persistAttachments } from './attachmentStore.js';
8
12
  const __ownDir = dirname(fileURLToPath(import.meta.url));
9
13
  /**
10
14
  * Models that don't support the `context-1m-2025-08-07` beta. Today only
@@ -61,6 +65,9 @@ export function buildClaudeCliArgs(opts) {
61
65
  if (opts.model) {
62
66
  args.push('--model', decorateModelWithContextWindow(opts.model, opts.contextWindow) ?? opts.model);
63
67
  }
68
+ if (opts.reasoningEffort) {
69
+ args.push('--effort', opts.reasoningEffort);
70
+ }
64
71
  if (opts.permissionMode) {
65
72
  const cliMode = opts.permissionMode === 'bypassPermissions' ? 'default'
66
73
  : opts.permissionMode === 'acceptEdits' ? 'acceptEdits'
@@ -232,7 +239,7 @@ export class CliProviderSession {
232
239
  }
233
240
  });
234
241
  }
235
- sendUserMessage(prompt) {
242
+ sendUserMessage(prompt, attachments) {
236
243
  if (!this.process || this.process.killed)
237
244
  return;
238
245
  // Record the prompt in the cardBuilder so getCards on reconnect/refresh
@@ -240,7 +247,7 @@ export class CliProviderSession {
240
247
  // (--replay-user-messages will echo this prompt back to us; the
241
248
  // `isReplay` filter in routeMessage relies on this entry already
242
249
  // existing to dedupe.)
243
- const userEvent = this.cardBuilder?.userMessage(prompt);
250
+ const userEvent = this.cardBuilder?.userMessage(prompt, attachments);
244
251
  // Emit the card-event so other PWA tabs subscribed to this session see
245
252
  // the follow-up prompt in real time. The sending tab already rendered an
246
253
  // optimistic user card; claudeStore.handleCardEvent dedupes by text +
@@ -252,7 +259,7 @@ export class CliProviderSession {
252
259
  this.activeTurn = true;
253
260
  const userMsg = {
254
261
  type: 'user',
255
- message: { role: 'user', content: prompt },
262
+ message: { role: 'user', content: attachmentsToContentBlocks(prompt, attachments) },
256
263
  };
257
264
  this.debugLog?.logRawEvent({ ...userMsg, _direction: 'stdin' });
258
265
  this.process.stdin.write(JSON.stringify(userMsg) + '\n');
@@ -353,8 +360,9 @@ export class ClaudeCliProvider {
353
360
  sandboxed: opts.sandboxed,
354
361
  bypassFlagPath: opts.bypassFlagPath,
355
362
  contextWindow: opts.contextWindow,
363
+ reasoningEffort: opts.reasoningEffort,
356
364
  });
357
- return this.spawnAndConsume(args, opts.cwd, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow);
365
+ return this.spawnAndConsume(args, opts.cwd, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow, opts.attachments);
358
366
  }
359
367
  async resumeSession(opts, cardBuilder, callbacks) {
360
368
  const args = this.buildCliArgs({
@@ -367,15 +375,16 @@ export class ClaudeCliProvider {
367
375
  sandboxed: opts.sandboxed,
368
376
  bypassFlagPath: opts.bypassFlagPath,
369
377
  contextWindow: opts.contextWindow,
378
+ reasoningEffort: opts.reasoningEffort,
370
379
  });
371
- return this.spawnAndConsume(args, opts.cwd, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow);
380
+ return this.spawnAndConsume(args, opts.cwd, opts.permissionLevel, opts.sandboxed, opts.prompt, cardBuilder, callbacks, opts.model, opts.contextWindow, opts.attachments);
372
381
  }
373
382
  // ── Private: CLI Args ──
374
383
  buildCliArgs(opts) {
375
384
  return buildClaudeCliArgs({ ...opts, ownDir: __ownDir });
376
385
  }
377
386
  // ── Private: Spawn & Consume ──
378
- async spawnAndConsume(args, cwd, _level, _sandboxed, prompt, cardBuilder, callbacks, _model, contextWindow) {
387
+ async spawnAndConsume(args, cwd, _level, _sandboxed, prompt, cardBuilder, callbacks, _model, contextWindow, attachments) {
379
388
  const claudeBin = getClaudeBin();
380
389
  const proc = spawn(claudeBin, args, {
381
390
  cwd,
@@ -403,7 +412,7 @@ export class ClaudeCliProvider {
403
412
  // Send user message immediately — CLI needs stdin before emitting init
404
413
  const userMsg = {
405
414
  type: 'user',
406
- message: { role: 'user', content: prompt },
415
+ message: { role: 'user', content: attachmentsToContentBlocks(prompt, attachments) },
407
416
  };
408
417
  proc.stdin.write(JSON.stringify(userMsg) + '\n');
409
418
  // Buffer all stdout lines until init is received, then replay them into consumeStream.
@@ -455,12 +464,21 @@ export class ClaudeCliProvider {
455
464
  debugLog.logRawEvent({ ...userMsg, _direction: 'stdin' });
456
465
  // Update the cardBuilder sessionId (it may have been created with a placeholder)
457
466
  cardBuilder.updateSessionId(sessionId);
467
+ // Persist attachments to disk BEFORE the stream consumer fires the
468
+ // userMessage card with real attachment UUIDs. See claudeSdkProvider
469
+ // for the full reasoning — short version: chips on other tabs (and our
470
+ // own that miss the local cache prime) issue `attachment:fetch` as
471
+ // soon as they see the card; if persistence is in-flight, the agent
472
+ // returns `attachment_not_found` and the chip renders as "Unavailable".
473
+ if (attachments && attachments.length > 0) {
474
+ await persistAttachments(sessionId, attachments);
475
+ }
458
476
  // Fire and forget the stream consumer — pass the same readline interface
459
- this.consumeStream(sessionId, rl, bufferedLines, cliSession, cardBuilder, callbacks, prompt, debugLog);
477
+ this.consumeStream(sessionId, rl, bufferedLines, cliSession, cardBuilder, callbacks, prompt, debugLog, attachments);
460
478
  return { sessionId, session: cliSession };
461
479
  }
462
480
  // ── Private: Stream Consumer ──
463
- async consumeStream(sessionId, rl, bufferedLines, cliSession, cb, callbacks, prompt, debugLog) {
481
+ async consumeStream(sessionId, rl, bufferedLines, cliSession, cb, callbacks, prompt, debugLog, attachments) {
464
482
  cliSession.resultEmitted = false;
465
483
  let textBuffer = '';
466
484
  let bufferTimer = null;
@@ -473,8 +491,8 @@ export class ClaudeCliProvider {
473
491
  // Record + emit the initial user prompt so other PWA tabs subscribed to
474
492
  // this session see it in real time. The sending tab dedupes the
475
493
  // optimistic card it already rendered (by text + recent timestamp).
476
- if (prompt) {
477
- const userCardEvent = cb.userMessage(prompt);
494
+ if (prompt || (attachments && attachments.length > 0)) {
495
+ const userCardEvent = cb.userMessage(prompt ?? '', attachments);
478
496
  emitCard(userCardEvent);
479
497
  }
480
498
  const flushText = () => {