@kirkchinese/dsh-citeciter 0.4.3 → 0.5.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 (42) hide show
  1. package/README.md +36 -27
  2. package/README.zh.md +36 -27
  3. package/lib/client.js +32043 -2462
  4. package/lib/index.js +1260 -116
  5. package/lib/{typert-common-4_cbghYz.js → typert-common-DKqYKnRO.js} +23 -3
  6. package/lib/typert.host.js +7 -3
  7. package/lib/typert.remote-client.js +2 -2
  8. package/lib/types/board.d.ts +237 -0
  9. package/lib/types/client/companion-controller.d.ts +10 -4
  10. package/lib/types/client/components/BlackboardWorkspace.d.ts +16 -0
  11. package/lib/types/client/components/BoardView.d.ts +12 -0
  12. package/lib/types/client/components/CiteCiterSettings.d.ts +3 -1
  13. package/lib/types/client/components/CitePanel.d.ts +5 -1
  14. package/lib/types/client/components/DocumentReader.d.ts +5 -0
  15. package/lib/types/client/components/SelectionMenu.d.ts +5 -1
  16. package/lib/types/client/components/UpdateNotice.d.ts +11 -0
  17. package/lib/types/client/conversation-dom.d.ts +9 -1
  18. package/lib/types/client/entries.d.ts +60 -0
  19. package/lib/types/client/entry-ids.d.ts +3 -0
  20. package/lib/types/client/hotkeys.d.ts +19 -0
  21. package/lib/types/client/reader-controller.d.ts +33 -0
  22. package/lib/types/client/reader-selection.d.ts +12 -0
  23. package/lib/types/client/request-guard.d.ts +24 -1
  24. package/lib/types/client/rich-content.d.ts +6 -0
  25. package/lib/types/client/selection.d.ts +4 -2
  26. package/lib/types/client/topic-presentation.d.ts +15 -0
  27. package/lib/types/client/types.d.ts +36 -1
  28. package/lib/types/client/update-controller.d.ts +57 -0
  29. package/lib/types/documents.d.ts +45 -0
  30. package/lib/types/evidence-text.d.ts +29 -0
  31. package/lib/types/index.d.ts +13 -14
  32. package/lib/types/observer.d.ts +26 -1
  33. package/lib/types/service.d.ts +81 -0
  34. package/lib/types/topic-runtime.d.ts +302 -4
  35. package/lib/types/topic.d.ts +604 -43
  36. package/lib/types/typert-common.d.ts +278 -11
  37. package/lib/types/typert.host.d.ts +669 -34
  38. package/lib/types/typert.remote-client.d.ts +3 -0
  39. package/lib/types/update.d.ts +68 -0
  40. package/lib/update-u9-6c_qp.js +1072 -0
  41. package/package.json +7 -4
  42. package/lib/topic-BVNCaVbJ.js +0 -307
@@ -1,8 +1,10 @@
1
1
  import { z } from 'zod';
2
- /** Durable Citation version used by Observer Topics. */
3
- export declare const CITATION_SCHEMA_VERSION: 3;
4
- /** Navigation metadata version. Chat history remains in the DSH Session log. */
5
- export declare const TOPIC_METADATA_SCHEMA_VERSION: 1;
2
+ /** Durable Citation version used by Observer Topics. v4 adds the EvidenceRef entry discriminator. */
3
+ export declare const CITATION_SCHEMA_VERSION: 4;
4
+ /** Navigation metadata version. v2 permits source-bound Topics without a selected Citation. */
5
+ export declare const TOPIC_METADATA_SCHEMA_VERSION: 2;
6
+ /** Scenario applied when neither the creator nor the stored metadata selects one. */
7
+ export declare const DEFAULT_TOPIC_SCENARIO: "qa";
6
8
  /** Host settings namespace mirrored by the browser settings scope. */
7
9
  export declare const CITECITER_SETTINGS_NAMESPACE: "citeciter";
8
10
  /** Topic-scoped system prompt section. */
@@ -14,6 +16,25 @@ export declare const topicModeSchema: z.ZodEnum<{
14
16
  "exact-fork": "exact-fork";
15
17
  }>;
16
18
  export type TopicMode = z.infer<typeof topicModeSchema>;
19
+ /**
20
+ * Topic turn-content scenario. Orthogonal to {@link TopicMode}: mode describes
21
+ * the source-session timing relation, scenario selects the assembled tool set,
22
+ * prompt sections, and future loop decorations for this Topic.
23
+ */
24
+ export declare const topicScenarioSchema: z.ZodEnum<{
25
+ qa: "qa";
26
+ present: "present";
27
+ read: "read";
28
+ investigate: "investigate";
29
+ }>;
30
+ export type TopicScenario = z.infer<typeof topicScenarioSchema>;
31
+ /** One user-editable prompt template shown beside the selection popover. */
32
+ export declare const promptTemplateSchema: z.ZodObject<{
33
+ id: z.ZodString;
34
+ label: z.ZodString;
35
+ text: z.ZodString;
36
+ }, z.core.$strict>;
37
+ export type PromptTemplate = z.infer<typeof promptTemplateSchema>;
17
38
  /** User preferences applied to new Topics and source reads. */
18
39
  export declare const citeCiterSettingsSchema: z.ZodObject<{
19
40
  defaultMode: z.ZodEnum<{
@@ -24,6 +45,16 @@ export declare const citeCiterSettingsSchema: z.ZodObject<{
24
45
  allowSourceFiles: z.ZodBoolean;
25
46
  panelWidthPercent: z.ZodNumber;
26
47
  reopenLastTopic: z.ZodBoolean;
48
+ tutorPrompt: z.ZodOptional<z.ZodString>;
49
+ followupQuestions: z.ZodOptional<z.ZodBoolean>;
50
+ promptTemplates: z.ZodOptional<z.ZodArray<z.ZodObject<{
51
+ id: z.ZodString;
52
+ label: z.ZodString;
53
+ text: z.ZodString;
54
+ }, z.core.$strict>>>;
55
+ shortcutOpenPanel: z.ZodOptional<z.ZodString>;
56
+ boardAnimations: z.ZodOptional<z.ZodBoolean>;
57
+ updateNotifications: z.ZodOptional<z.ZodBoolean>;
27
58
  }, z.core.$strict>;
28
59
  export type CiteCiterSettings = z.infer<typeof citeCiterSettingsSchema>;
29
60
  /** Settings used before an optional DSH settings provider becomes available. */
@@ -52,7 +83,64 @@ export declare const citationDraftSchema: z.ZodObject<{
52
83
  }, z.core.$strict>;
53
84
  /** Exact Citation retained for durable data and legacy 0.3.1 requests. */
54
85
  export type CitationDraft = z.infer<typeof citationDraftSchema>;
86
+ /**
87
+ * Evidence anchor discriminator for one durable Citation. `anchorSeq` mirrors
88
+ * the record-level coordinate; the canonical schema enforces equality.
89
+ */
90
+ export declare const citationEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
91
+ kind: z.ZodLiteral<"assistant-message">;
92
+ anchorSeq: z.ZodNumber;
93
+ }, z.core.$strict>, z.ZodObject<{
94
+ kind: z.ZodLiteral<"tool-result">;
95
+ anchorSeq: z.ZodNumber;
96
+ callId: z.ZodString;
97
+ toolName: z.ZodString;
98
+ projection: z.ZodEnum<{
99
+ "result-text": "result-text";
100
+ terminal: "terminal";
101
+ diff: "diff";
102
+ }>;
103
+ fileIndex: z.ZodOptional<z.ZodNumber>;
104
+ side: z.ZodOptional<z.ZodEnum<{
105
+ old: "old";
106
+ new: "new";
107
+ }>>;
108
+ }, z.core.$strict>, z.ZodObject<{
109
+ kind: z.ZodLiteral<"document-range">;
110
+ documentId: z.ZodString;
111
+ startOffset: z.ZodNumber;
112
+ endOffset: z.ZodNumber;
113
+ }, z.core.$strict>], "kind">;
114
+ /** One anchor kind plus the tool-result coordinates that identify the evidence. */
115
+ export type CitationEntry = z.infer<typeof citationEntrySchema>;
116
+ /** Canonical v4 Citation: the shared text projection plus one EvidenceRef entry. */
55
117
  export declare const citationRecordSchema: z.ZodObject<{
118
+ entry: z.ZodDiscriminatedUnion<[z.ZodObject<{
119
+ kind: z.ZodLiteral<"assistant-message">;
120
+ anchorSeq: z.ZodNumber;
121
+ }, z.core.$strict>, z.ZodObject<{
122
+ kind: z.ZodLiteral<"tool-result">;
123
+ anchorSeq: z.ZodNumber;
124
+ callId: z.ZodString;
125
+ toolName: z.ZodString;
126
+ projection: z.ZodEnum<{
127
+ "result-text": "result-text";
128
+ terminal: "terminal";
129
+ diff: "diff";
130
+ }>;
131
+ fileIndex: z.ZodOptional<z.ZodNumber>;
132
+ side: z.ZodOptional<z.ZodEnum<{
133
+ old: "old";
134
+ new: "new";
135
+ }>>;
136
+ }, z.core.$strict>, z.ZodObject<{
137
+ kind: z.ZodLiteral<"document-range">;
138
+ documentId: z.ZodString;
139
+ startOffset: z.ZodNumber;
140
+ endOffset: z.ZodNumber;
141
+ }, z.core.$strict>], "kind">;
142
+ selectionFingerprint: z.ZodString;
143
+ createdAt: z.ZodNumber;
56
144
  sourceSessionId: z.ZodString;
57
145
  anchorSeq: z.ZodNumber;
58
146
  startOffset: z.ZodNumber;
@@ -61,12 +149,63 @@ export declare const citationRecordSchema: z.ZodObject<{
61
149
  displayText: z.ZodString;
62
150
  prefixText: z.ZodString;
63
151
  suffixText: z.ZodString;
152
+ schemaVersion: z.ZodLiteral<4>;
153
+ }, z.core.$strict>;
154
+ /** Immutable EvidenceRef identity owned by one Topic. */
155
+ export type CitationRecord = z.infer<typeof citationRecordSchema>;
156
+ /** Verified evidence fields before the durable record adds version, time, and fingerprint. */
157
+ export type CitationEvidence = Omit<CitationRecord, 'schemaVersion' | 'createdAt' | 'selectionFingerprint'>;
158
+ /** On-disk Citation written by v3 (no entry) or v4. */
159
+ declare const citationRecordFileSchema: z.ZodObject<{
160
+ entry: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
161
+ kind: z.ZodLiteral<"assistant-message">;
162
+ anchorSeq: z.ZodNumber;
163
+ }, z.core.$strict>, z.ZodObject<{
164
+ kind: z.ZodLiteral<"tool-result">;
165
+ anchorSeq: z.ZodNumber;
166
+ callId: z.ZodString;
167
+ toolName: z.ZodString;
168
+ projection: z.ZodEnum<{
169
+ "result-text": "result-text";
170
+ terminal: "terminal";
171
+ diff: "diff";
172
+ }>;
173
+ fileIndex: z.ZodOptional<z.ZodNumber>;
174
+ side: z.ZodOptional<z.ZodEnum<{
175
+ old: "old";
176
+ new: "new";
177
+ }>>;
178
+ }, z.core.$strict>, z.ZodObject<{
179
+ kind: z.ZodLiteral<"document-range">;
180
+ documentId: z.ZodString;
181
+ startOffset: z.ZodNumber;
182
+ endOffset: z.ZodNumber;
183
+ }, z.core.$strict>], "kind">>;
64
184
  selectionFingerprint: z.ZodString;
65
- schemaVersion: z.ZodLiteral<3>;
66
185
  createdAt: z.ZodNumber;
186
+ sourceSessionId: z.ZodString;
187
+ anchorSeq: z.ZodNumber;
188
+ startOffset: z.ZodNumber;
189
+ endOffset: z.ZodNumber;
190
+ sourceText: z.ZodString;
191
+ displayText: z.ZodString;
192
+ prefixText: z.ZodString;
193
+ suffixText: z.ZodString;
194
+ schemaVersion: z.ZodUnion<readonly [z.ZodLiteral<3>, z.ZodLiteral<4>]>;
67
195
  }, z.core.$strict>;
68
- /** Immutable evidence identity owned by one Topic. */
69
- export type CitationRecord = z.infer<typeof citationRecordSchema>;
196
+ type CitationRecordFile = z.infer<typeof citationRecordFileSchema>;
197
+ /**
198
+ * Normalize one durable Citation file record to canonical v4.
199
+ * @param raw - parsed v3 or v4 file record.
200
+ * @returns canonical v4 record; v3 synthesizes its assistant-message entry.
201
+ */
202
+ export declare function normalizeCitationRecord(raw: CitationRecordFile): CitationRecord;
203
+ /**
204
+ * Parse a durable Citation written by v3 or v4.
205
+ * @param raw - stored Citation value.
206
+ * @returns canonical v4 CitationRecord.
207
+ */
208
+ export declare function parseCitationRecord(raw: unknown): CitationRecord;
70
209
  export declare const modelConfigSchema: z.ZodObject<{
71
210
  provider: z.ZodString;
72
211
  model: z.ZodString;
@@ -76,8 +215,52 @@ export declare const modelConfigSchema: z.ZodObject<{
76
215
  stop: z.ZodOptional<z.ZodArray<z.ZodString>>;
77
216
  }, z.core.$strict>;
78
217
  export type TopicModelConfig = z.infer<typeof modelConfigSchema>;
218
+ /** Canonical Topic metadata committed by the current runtime. */
79
219
  export declare const topicMetadataSchema: z.ZodObject<{
80
- schemaVersion: z.ZodLiteral<1>;
220
+ citation: z.ZodNullable<z.ZodObject<{
221
+ entry: z.ZodDiscriminatedUnion<[z.ZodObject<{
222
+ kind: z.ZodLiteral<"assistant-message">;
223
+ anchorSeq: z.ZodNumber;
224
+ }, z.core.$strict>, z.ZodObject<{
225
+ kind: z.ZodLiteral<"tool-result">;
226
+ anchorSeq: z.ZodNumber;
227
+ callId: z.ZodString;
228
+ toolName: z.ZodString;
229
+ projection: z.ZodEnum<{
230
+ "result-text": "result-text";
231
+ terminal: "terminal";
232
+ diff: "diff";
233
+ }>;
234
+ fileIndex: z.ZodOptional<z.ZodNumber>;
235
+ side: z.ZodOptional<z.ZodEnum<{
236
+ old: "old";
237
+ new: "new";
238
+ }>>;
239
+ }, z.core.$strict>, z.ZodObject<{
240
+ kind: z.ZodLiteral<"document-range">;
241
+ documentId: z.ZodString;
242
+ startOffset: z.ZodNumber;
243
+ endOffset: z.ZodNumber;
244
+ }, z.core.$strict>], "kind">;
245
+ selectionFingerprint: z.ZodString;
246
+ createdAt: z.ZodNumber;
247
+ sourceSessionId: z.ZodString;
248
+ anchorSeq: z.ZodNumber;
249
+ startOffset: z.ZodNumber;
250
+ endOffset: z.ZodNumber;
251
+ sourceText: z.ZodString;
252
+ displayText: z.ZodString;
253
+ prefixText: z.ZodString;
254
+ suffixText: z.ZodString;
255
+ schemaVersion: z.ZodLiteral<4>;
256
+ }, z.core.$strict>>;
257
+ scenario: z.ZodEnum<{
258
+ qa: "qa";
259
+ present: "present";
260
+ read: "read";
261
+ investigate: "investigate";
262
+ }>;
263
+ documentId: z.ZodNullable<z.ZodString>;
81
264
  topicId: z.ZodNumber;
82
265
  createRequestId: z.ZodOptional<z.ZodString>;
83
266
  sessionId: z.ZodString;
@@ -87,19 +270,6 @@ export declare const topicMetadataSchema: z.ZodObject<{
87
270
  observer: "observer";
88
271
  "exact-fork": "exact-fork";
89
272
  }>;
90
- citation: z.ZodObject<{
91
- sourceSessionId: z.ZodString;
92
- anchorSeq: z.ZodNumber;
93
- startOffset: z.ZodNumber;
94
- endOffset: z.ZodNumber;
95
- sourceText: z.ZodString;
96
- displayText: z.ZodString;
97
- prefixText: z.ZodString;
98
- suffixText: z.ZodString;
99
- selectionFingerprint: z.ZodString;
100
- schemaVersion: z.ZodLiteral<3>;
101
- createdAt: z.ZodNumber;
102
- }, z.core.$strict>;
103
273
  modelConfig: z.ZodObject<{
104
274
  provider: z.ZodString;
105
275
  model: z.ZodString;
@@ -122,9 +292,17 @@ export declare const topicMetadataSchema: z.ZodObject<{
122
292
  archivedAt: z.ZodNullable<z.ZodNumber>;
123
293
  sourceAvailable: z.ZodBoolean;
124
294
  observedThroughSeq: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
295
+ schemaVersion: z.ZodLiteral<2>;
125
296
  }, z.core.$strict>;
126
297
  /** Small navigation record stored outside the standard Topic Session log. */
127
298
  export type TopicMetadata = z.infer<typeof topicMetadataSchema>;
299
+ /**
300
+ * Parse one on-disk Topic metadata record, normalizing legacy v3 Citations and
301
+ * missing scenario/document fields to their current defaults.
302
+ * @param raw - stored metadata value.
303
+ * @returns canonical TopicMetadata.
304
+ */
305
+ export declare function parseTopicMetadataFile(raw: unknown): TopicMetadata;
128
306
  export declare const topicSummarySchema: z.ZodObject<{
129
307
  topicId: z.ZodNumber;
130
308
  sessionId: z.ZodString;
@@ -133,7 +311,40 @@ export declare const topicSummarySchema: z.ZodObject<{
133
311
  observer: "observer";
134
312
  "exact-fork": "exact-fork";
135
313
  }>;
136
- citation: z.ZodObject<{
314
+ scenario: z.ZodEnum<{
315
+ qa: "qa";
316
+ present: "present";
317
+ read: "read";
318
+ investigate: "investigate";
319
+ }>;
320
+ documentId: z.ZodNullable<z.ZodString>;
321
+ citation: z.ZodNullable<z.ZodObject<{
322
+ entry: z.ZodDiscriminatedUnion<[z.ZodObject<{
323
+ kind: z.ZodLiteral<"assistant-message">;
324
+ anchorSeq: z.ZodNumber;
325
+ }, z.core.$strict>, z.ZodObject<{
326
+ kind: z.ZodLiteral<"tool-result">;
327
+ anchorSeq: z.ZodNumber;
328
+ callId: z.ZodString;
329
+ toolName: z.ZodString;
330
+ projection: z.ZodEnum<{
331
+ "result-text": "result-text";
332
+ terminal: "terminal";
333
+ diff: "diff";
334
+ }>;
335
+ fileIndex: z.ZodOptional<z.ZodNumber>;
336
+ side: z.ZodOptional<z.ZodEnum<{
337
+ old: "old";
338
+ new: "new";
339
+ }>>;
340
+ }, z.core.$strict>, z.ZodObject<{
341
+ kind: z.ZodLiteral<"document-range">;
342
+ documentId: z.ZodString;
343
+ startOffset: z.ZodNumber;
344
+ endOffset: z.ZodNumber;
345
+ }, z.core.$strict>], "kind">;
346
+ selectionFingerprint: z.ZodString;
347
+ createdAt: z.ZodNumber;
137
348
  sourceSessionId: z.ZodString;
138
349
  anchorSeq: z.ZodNumber;
139
350
  startOffset: z.ZodNumber;
@@ -142,10 +353,8 @@ export declare const topicSummarySchema: z.ZodObject<{
142
353
  displayText: z.ZodString;
143
354
  prefixText: z.ZodString;
144
355
  suffixText: z.ZodString;
145
- selectionFingerprint: z.ZodString;
146
- schemaVersion: z.ZodLiteral<3>;
147
- createdAt: z.ZodNumber;
148
- }, z.core.$strict>;
356
+ schemaVersion: z.ZodLiteral<4>;
357
+ }, z.core.$strict>>;
149
358
  title: z.ZodString;
150
359
  titlePending: z.ZodBoolean;
151
360
  createdAt: z.ZodNumber;
@@ -249,7 +458,40 @@ export declare const topicSnapshotSchema: z.ZodObject<{
249
458
  observer: "observer";
250
459
  "exact-fork": "exact-fork";
251
460
  }>;
252
- citation: z.ZodObject<{
461
+ scenario: z.ZodEnum<{
462
+ qa: "qa";
463
+ present: "present";
464
+ read: "read";
465
+ investigate: "investigate";
466
+ }>;
467
+ documentId: z.ZodNullable<z.ZodString>;
468
+ citation: z.ZodNullable<z.ZodObject<{
469
+ entry: z.ZodDiscriminatedUnion<[z.ZodObject<{
470
+ kind: z.ZodLiteral<"assistant-message">;
471
+ anchorSeq: z.ZodNumber;
472
+ }, z.core.$strict>, z.ZodObject<{
473
+ kind: z.ZodLiteral<"tool-result">;
474
+ anchorSeq: z.ZodNumber;
475
+ callId: z.ZodString;
476
+ toolName: z.ZodString;
477
+ projection: z.ZodEnum<{
478
+ "result-text": "result-text";
479
+ terminal: "terminal";
480
+ diff: "diff";
481
+ }>;
482
+ fileIndex: z.ZodOptional<z.ZodNumber>;
483
+ side: z.ZodOptional<z.ZodEnum<{
484
+ old: "old";
485
+ new: "new";
486
+ }>>;
487
+ }, z.core.$strict>, z.ZodObject<{
488
+ kind: z.ZodLiteral<"document-range">;
489
+ documentId: z.ZodString;
490
+ startOffset: z.ZodNumber;
491
+ endOffset: z.ZodNumber;
492
+ }, z.core.$strict>], "kind">;
493
+ selectionFingerprint: z.ZodString;
494
+ createdAt: z.ZodNumber;
253
495
  sourceSessionId: z.ZodString;
254
496
  anchorSeq: z.ZodNumber;
255
497
  startOffset: z.ZodNumber;
@@ -258,10 +500,8 @@ export declare const topicSnapshotSchema: z.ZodObject<{
258
500
  displayText: z.ZodString;
259
501
  prefixText: z.ZodString;
260
502
  suffixText: z.ZodString;
261
- selectionFingerprint: z.ZodString;
262
- schemaVersion: z.ZodLiteral<3>;
263
- createdAt: z.ZodNumber;
264
- }, z.core.$strict>;
503
+ schemaVersion: z.ZodLiteral<4>;
504
+ }, z.core.$strict>>;
265
505
  title: z.ZodString;
266
506
  titlePending: z.ZodBoolean;
267
507
  createdAt: z.ZodNumber;
@@ -332,6 +572,44 @@ export declare const topicSnapshotSchema: z.ZodObject<{
332
572
  }, z.core.$strict>>;
333
573
  }, z.core.$strict>>;
334
574
  error: z.ZodNullable<z.ZodString>;
575
+ board: z.ZodOptional<z.ZodObject<{
576
+ version: z.ZodLiteral<4>;
577
+ revision: z.ZodNumber;
578
+ elements: z.ZodArray<z.ZodObject<{
579
+ id: z.ZodString;
580
+ kind: z.ZodEnum<{
581
+ text: "text";
582
+ markdown: "markdown";
583
+ math: "math";
584
+ svg: "svg";
585
+ html: "html";
586
+ image: "image";
587
+ table: "table";
588
+ }>;
589
+ content: z.ZodString;
590
+ x: z.ZodNumber;
591
+ y: z.ZodNumber;
592
+ w: z.ZodNumber;
593
+ h: z.ZodNumber;
594
+ style: z.ZodObject<{
595
+ color: z.ZodOptional<z.ZodString>;
596
+ fontSize: z.ZodOptional<z.ZodString>;
597
+ }, z.core.$strict>;
598
+ focused: z.ZodBoolean;
599
+ animation: z.ZodOptional<z.ZodObject<{
600
+ name: z.ZodEnum<{
601
+ "fade-in": "fade-in";
602
+ "slide-in": "slide-in";
603
+ pulse: "pulse";
604
+ highlight: "highlight";
605
+ }>;
606
+ durationMs: z.ZodNumber;
607
+ iterations: z.ZodNumber;
608
+ run: z.ZodNumber;
609
+ }, z.core.$strict>>;
610
+ }, z.core.$strict>>;
611
+ invalid: z.ZodNumber;
612
+ }, z.core.$strict>>;
335
613
  }, z.core.$strict>;
336
614
  export type TopicSnapshot = z.infer<typeof topicSnapshotSchema>;
337
615
  export declare const modelOptionSchema: z.ZodObject<{
@@ -357,8 +635,71 @@ export declare const providerOptionSchema: z.ZodObject<{
357
635
  }, z.core.$strict>>;
358
636
  }, z.core.$strict>;
359
637
  export type ProviderOption = z.infer<typeof providerOptionSchema>;
638
+ /** Whole-card tool-result claim; the Host verifies it against the committed `tool/result`. */
639
+ export declare const toolEvidenceClaimSchema: z.ZodObject<{
640
+ sourceSessionId: z.ZodString;
641
+ callId: z.ZodString;
642
+ displayText: z.ZodString;
643
+ projection: z.ZodOptional<z.ZodEnum<{
644
+ "result-text": "result-text";
645
+ terminal: "terminal";
646
+ diff: "diff";
647
+ }>>;
648
+ }, z.core.$strict>;
649
+ /** Browser-submitted claim that anchors one Topic on a committed tool result. */
650
+ export type ToolEvidenceClaim = z.infer<typeof toolEvidenceClaimSchema>;
651
+ /** Browser-submitted claim that anchors one Topic on a CiteCiter document range. */
652
+ export declare const documentEvidenceClaimSchema: z.ZodObject<{
653
+ sourceSessionId: z.ZodString;
654
+ documentId: z.ZodString;
655
+ displayText: z.ZodString;
656
+ prefixText: z.ZodString;
657
+ suffixText: z.ZodString;
658
+ }, z.core.$strict>;
659
+ /** Browser claim whose offsets the Host re-resolves against the stored document text. */
660
+ export type DocumentEvidenceClaim = z.infer<typeof documentEvidenceClaimSchema>;
661
+ /** Document format accepted by the CiteCiter private document library. */
662
+ export declare const documentFormatSchema: z.ZodEnum<{
663
+ text: "text";
664
+ markdown: "markdown";
665
+ }>;
666
+ export type DocumentFormat = z.infer<typeof documentFormatSchema>;
667
+ /** Document-library metadata exposed to the Reader and document Topics. */
668
+ export declare const documentSummarySchema: z.ZodObject<{
669
+ documentId: z.ZodString;
670
+ title: z.ZodString;
671
+ format: z.ZodEnum<{
672
+ text: "text";
673
+ markdown: "markdown";
674
+ }>;
675
+ size: z.ZodNumber;
676
+ importedAt: z.ZodNumber;
677
+ }, z.core.$strict>;
678
+ export type DocumentSummary = z.infer<typeof documentSummarySchema>;
679
+ /** Bounded document content page returned to the Reader. */
680
+ export declare const documentContentSchema: z.ZodObject<{
681
+ documentId: z.ZodString;
682
+ title: z.ZodString;
683
+ format: z.ZodEnum<{
684
+ text: "text";
685
+ markdown: "markdown";
686
+ }>;
687
+ content: z.ZodString;
688
+ truncated: z.ZodBoolean;
689
+ }, z.core.$strict>;
690
+ export type DocumentContent = z.infer<typeof documentContentSchema>;
360
691
  /** One strict direct-RPC command for the private CiteCiter runtime. */
361
692
  export declare const citeCiterRequestSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodObject<{
693
+ action: z.ZodLiteral<"create">;
694
+ requestId: z.ZodString;
695
+ sourceSessionId: z.ZodString;
696
+ question: z.ZodString;
697
+ mode: z.ZodLiteral<"observer">;
698
+ scenario: z.ZodOptional<z.ZodEnum<{
699
+ qa: "qa";
700
+ present: "present";
701
+ }>>;
702
+ }, z.core.$strict>, z.ZodObject<{
362
703
  action: z.ZodLiteral<"create">;
363
704
  requestId: z.ZodString;
364
705
  citation: z.ZodObject<{
@@ -378,6 +719,12 @@ export declare const citeCiterRequestSchema: z.ZodUnion<readonly [z.ZodUnion<rea
378
719
  "exact-fork": "exact-fork";
379
720
  "exact-when-available": "exact-when-available";
380
721
  }>;
722
+ scenario: z.ZodOptional<z.ZodEnum<{
723
+ qa: "qa";
724
+ present: "present";
725
+ read: "read";
726
+ investigate: "investigate";
727
+ }>>;
381
728
  }, z.core.$strict>, z.ZodObject<{
382
729
  action: z.ZodLiteral<"create">;
383
730
  requestId: z.ZodString;
@@ -395,6 +742,59 @@ export declare const citeCiterRequestSchema: z.ZodUnion<readonly [z.ZodUnion<rea
395
742
  "exact-fork": "exact-fork";
396
743
  "exact-when-available": "exact-when-available";
397
744
  }>;
745
+ scenario: z.ZodOptional<z.ZodEnum<{
746
+ qa: "qa";
747
+ present: "present";
748
+ read: "read";
749
+ investigate: "investigate";
750
+ }>>;
751
+ }, z.core.$strict>, z.ZodObject<{
752
+ action: z.ZodLiteral<"create">;
753
+ requestId: z.ZodString;
754
+ toolClaim: z.ZodObject<{
755
+ sourceSessionId: z.ZodString;
756
+ callId: z.ZodString;
757
+ displayText: z.ZodString;
758
+ projection: z.ZodOptional<z.ZodEnum<{
759
+ "result-text": "result-text";
760
+ terminal: "terminal";
761
+ diff: "diff";
762
+ }>>;
763
+ }, z.core.$strict>;
764
+ question: z.ZodString;
765
+ mode: z.ZodEnum<{
766
+ observer: "observer";
767
+ "exact-fork": "exact-fork";
768
+ "exact-when-available": "exact-when-available";
769
+ }>;
770
+ scenario: z.ZodOptional<z.ZodEnum<{
771
+ qa: "qa";
772
+ present: "present";
773
+ read: "read";
774
+ investigate: "investigate";
775
+ }>>;
776
+ }, z.core.$strict>, z.ZodObject<{
777
+ action: z.ZodLiteral<"create">;
778
+ requestId: z.ZodString;
779
+ documentClaim: z.ZodObject<{
780
+ sourceSessionId: z.ZodString;
781
+ documentId: z.ZodString;
782
+ displayText: z.ZodString;
783
+ prefixText: z.ZodString;
784
+ suffixText: z.ZodString;
785
+ }, z.core.$strict>;
786
+ question: z.ZodString;
787
+ mode: z.ZodEnum<{
788
+ observer: "observer";
789
+ "exact-fork": "exact-fork";
790
+ "exact-when-available": "exact-when-available";
791
+ }>;
792
+ scenario: z.ZodOptional<z.ZodEnum<{
793
+ qa: "qa";
794
+ present: "present";
795
+ read: "read";
796
+ investigate: "investigate";
797
+ }>>;
398
798
  }, z.core.$strict>]>, z.ZodDiscriminatedUnion<[z.ZodObject<{
399
799
  action: z.ZodLiteral<"list">;
400
800
  sourceSessionId: z.ZodString;
@@ -454,6 +854,20 @@ export declare const citeCiterRequestSchema: z.ZodUnion<readonly [z.ZodUnion<rea
454
854
  provider: z.ZodString;
455
855
  model: z.ZodString;
456
856
  reasoningEffort: z.ZodNullable<z.ZodString>;
857
+ }, z.core.$strict>, z.ZodObject<{
858
+ action: z.ZodLiteral<"document-import">;
859
+ requestId: z.ZodOptional<z.ZodString>;
860
+ title: z.ZodString;
861
+ format: z.ZodEnum<{
862
+ text: "text";
863
+ markdown: "markdown";
864
+ }>;
865
+ content: z.ZodString;
866
+ }, z.core.$strict>, z.ZodObject<{
867
+ action: z.ZodLiteral<"documents">;
868
+ }, z.core.$strict>, z.ZodObject<{
869
+ action: z.ZodLiteral<"document-get">;
870
+ documentId: z.ZodString;
457
871
  }, z.core.$strict>], "action">]>;
458
872
  export type CiteCiterRequest = z.infer<typeof citeCiterRequestSchema>;
459
873
  /** Strict response union returned by the single Remote command endpoint. */
@@ -468,7 +882,40 @@ export declare const citeCiterResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObje
468
882
  observer: "observer";
469
883
  "exact-fork": "exact-fork";
470
884
  }>;
471
- citation: z.ZodObject<{
885
+ scenario: z.ZodEnum<{
886
+ qa: "qa";
887
+ present: "present";
888
+ read: "read";
889
+ investigate: "investigate";
890
+ }>;
891
+ documentId: z.ZodNullable<z.ZodString>;
892
+ citation: z.ZodNullable<z.ZodObject<{
893
+ entry: z.ZodDiscriminatedUnion<[z.ZodObject<{
894
+ kind: z.ZodLiteral<"assistant-message">;
895
+ anchorSeq: z.ZodNumber;
896
+ }, z.core.$strict>, z.ZodObject<{
897
+ kind: z.ZodLiteral<"tool-result">;
898
+ anchorSeq: z.ZodNumber;
899
+ callId: z.ZodString;
900
+ toolName: z.ZodString;
901
+ projection: z.ZodEnum<{
902
+ "result-text": "result-text";
903
+ terminal: "terminal";
904
+ diff: "diff";
905
+ }>;
906
+ fileIndex: z.ZodOptional<z.ZodNumber>;
907
+ side: z.ZodOptional<z.ZodEnum<{
908
+ old: "old";
909
+ new: "new";
910
+ }>>;
911
+ }, z.core.$strict>, z.ZodObject<{
912
+ kind: z.ZodLiteral<"document-range">;
913
+ documentId: z.ZodString;
914
+ startOffset: z.ZodNumber;
915
+ endOffset: z.ZodNumber;
916
+ }, z.core.$strict>], "kind">;
917
+ selectionFingerprint: z.ZodString;
918
+ createdAt: z.ZodNumber;
472
919
  sourceSessionId: z.ZodString;
473
920
  anchorSeq: z.ZodNumber;
474
921
  startOffset: z.ZodNumber;
@@ -477,10 +924,8 @@ export declare const citeCiterResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObje
477
924
  displayText: z.ZodString;
478
925
  prefixText: z.ZodString;
479
926
  suffixText: z.ZodString;
480
- selectionFingerprint: z.ZodString;
481
- schemaVersion: z.ZodLiteral<3>;
482
- createdAt: z.ZodNumber;
483
- }, z.core.$strict>;
927
+ schemaVersion: z.ZodLiteral<4>;
928
+ }, z.core.$strict>>;
484
929
  title: z.ZodString;
485
930
  titlePending: z.ZodBoolean;
486
931
  createdAt: z.ZodNumber;
@@ -551,6 +996,44 @@ export declare const citeCiterResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObje
551
996
  }, z.core.$strict>>;
552
997
  }, z.core.$strict>>;
553
998
  error: z.ZodNullable<z.ZodString>;
999
+ board: z.ZodOptional<z.ZodObject<{
1000
+ version: z.ZodLiteral<4>;
1001
+ revision: z.ZodNumber;
1002
+ elements: z.ZodArray<z.ZodObject<{
1003
+ id: z.ZodString;
1004
+ kind: z.ZodEnum<{
1005
+ text: "text";
1006
+ markdown: "markdown";
1007
+ math: "math";
1008
+ svg: "svg";
1009
+ html: "html";
1010
+ image: "image";
1011
+ table: "table";
1012
+ }>;
1013
+ content: z.ZodString;
1014
+ x: z.ZodNumber;
1015
+ y: z.ZodNumber;
1016
+ w: z.ZodNumber;
1017
+ h: z.ZodNumber;
1018
+ style: z.ZodObject<{
1019
+ color: z.ZodOptional<z.ZodString>;
1020
+ fontSize: z.ZodOptional<z.ZodString>;
1021
+ }, z.core.$strict>;
1022
+ focused: z.ZodBoolean;
1023
+ animation: z.ZodOptional<z.ZodObject<{
1024
+ name: z.ZodEnum<{
1025
+ "fade-in": "fade-in";
1026
+ "slide-in": "slide-in";
1027
+ pulse: "pulse";
1028
+ highlight: "highlight";
1029
+ }>;
1030
+ durationMs: z.ZodNumber;
1031
+ iterations: z.ZodNumber;
1032
+ run: z.ZodNumber;
1033
+ }, z.core.$strict>>;
1034
+ }, z.core.$strict>>;
1035
+ invalid: z.ZodNumber;
1036
+ }, z.core.$strict>>;
554
1037
  }, z.core.$strict>;
555
1038
  }, z.core.$strict>, z.ZodObject<{
556
1039
  kind: z.ZodLiteral<"topics">;
@@ -562,7 +1045,40 @@ export declare const citeCiterResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObje
562
1045
  observer: "observer";
563
1046
  "exact-fork": "exact-fork";
564
1047
  }>;
565
- citation: z.ZodObject<{
1048
+ scenario: z.ZodEnum<{
1049
+ qa: "qa";
1050
+ present: "present";
1051
+ read: "read";
1052
+ investigate: "investigate";
1053
+ }>;
1054
+ documentId: z.ZodNullable<z.ZodString>;
1055
+ citation: z.ZodNullable<z.ZodObject<{
1056
+ entry: z.ZodDiscriminatedUnion<[z.ZodObject<{
1057
+ kind: z.ZodLiteral<"assistant-message">;
1058
+ anchorSeq: z.ZodNumber;
1059
+ }, z.core.$strict>, z.ZodObject<{
1060
+ kind: z.ZodLiteral<"tool-result">;
1061
+ anchorSeq: z.ZodNumber;
1062
+ callId: z.ZodString;
1063
+ toolName: z.ZodString;
1064
+ projection: z.ZodEnum<{
1065
+ "result-text": "result-text";
1066
+ terminal: "terminal";
1067
+ diff: "diff";
1068
+ }>;
1069
+ fileIndex: z.ZodOptional<z.ZodNumber>;
1070
+ side: z.ZodOptional<z.ZodEnum<{
1071
+ old: "old";
1072
+ new: "new";
1073
+ }>>;
1074
+ }, z.core.$strict>, z.ZodObject<{
1075
+ kind: z.ZodLiteral<"document-range">;
1076
+ documentId: z.ZodString;
1077
+ startOffset: z.ZodNumber;
1078
+ endOffset: z.ZodNumber;
1079
+ }, z.core.$strict>], "kind">;
1080
+ selectionFingerprint: z.ZodString;
1081
+ createdAt: z.ZodNumber;
566
1082
  sourceSessionId: z.ZodString;
567
1083
  anchorSeq: z.ZodNumber;
568
1084
  startOffset: z.ZodNumber;
@@ -571,10 +1087,8 @@ export declare const citeCiterResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObje
571
1087
  displayText: z.ZodString;
572
1088
  prefixText: z.ZodString;
573
1089
  suffixText: z.ZodString;
574
- selectionFingerprint: z.ZodString;
575
- schemaVersion: z.ZodLiteral<3>;
576
- createdAt: z.ZodNumber;
577
- }, z.core.$strict>;
1090
+ schemaVersion: z.ZodLiteral<4>;
1091
+ }, z.core.$strict>>;
578
1092
  title: z.ZodString;
579
1093
  titlePending: z.ZodBoolean;
580
1094
  createdAt: z.ZodNumber;
@@ -610,9 +1124,56 @@ export declare const citeCiterResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObje
610
1124
  }, z.core.$strict>, z.ZodObject<{
611
1125
  kind: z.ZodLiteral<"deleted">;
612
1126
  sessionId: z.ZodString;
1127
+ sourceSessionId: z.ZodString;
1128
+ topicId: z.ZodNumber;
1129
+ cleanup: z.ZodEnum<{
1130
+ complete: "complete";
1131
+ pending: "pending";
1132
+ }>;
1133
+ }, z.core.$strict>, z.ZodObject<{
1134
+ kind: z.ZodLiteral<"document">;
1135
+ document: z.ZodObject<{
1136
+ documentId: z.ZodString;
1137
+ title: z.ZodString;
1138
+ format: z.ZodEnum<{
1139
+ text: "text";
1140
+ markdown: "markdown";
1141
+ }>;
1142
+ size: z.ZodNumber;
1143
+ importedAt: z.ZodNumber;
1144
+ }, z.core.$strict>;
1145
+ }, z.core.$strict>, z.ZodObject<{
1146
+ kind: z.ZodLiteral<"documents">;
1147
+ documents: z.ZodArray<z.ZodObject<{
1148
+ documentId: z.ZodString;
1149
+ title: z.ZodString;
1150
+ format: z.ZodEnum<{
1151
+ text: "text";
1152
+ markdown: "markdown";
1153
+ }>;
1154
+ size: z.ZodNumber;
1155
+ importedAt: z.ZodNumber;
1156
+ }, z.core.$strict>>;
1157
+ }, z.core.$strict>, z.ZodObject<{
1158
+ kind: z.ZodLiteral<"document-content">;
1159
+ document: z.ZodObject<{
1160
+ documentId: z.ZodString;
1161
+ title: z.ZodString;
1162
+ format: z.ZodEnum<{
1163
+ text: "text";
1164
+ markdown: "markdown";
1165
+ }>;
1166
+ content: z.ZodString;
1167
+ truncated: z.ZodBoolean;
1168
+ }, z.core.$strict>;
613
1169
  }, z.core.$strict>], "kind">;
614
1170
  export type CiteCiterResponse = z.infer<typeof citeCiterResponseSchema>;
615
- /** Fields whose canonical serialization defines selection identity. */
616
- export declare function canonicalCitationIdentity(citation: Omit<CitationDraft, 'selectionFingerprint'>): string;
1171
+ /** Fields whose canonical serialization defines evidence identity. */
1172
+ export type CitationIdentity = Omit<CitationDraft, 'selectionFingerprint'> & {
1173
+ readonly entry?: CitationEntry;
1174
+ };
1175
+ /** Serialize the identity-bearing fields. Legacy drafts without an entry keep their v3 identity. */
1176
+ export declare function canonicalCitationIdentity(citation: CitationIdentity): string;
617
1177
  /** Render the immutable Citation as explicitly untrusted user-role context. */
618
1178
  export declare function renderCitationContext(citation: CitationRecord): string;
1179
+ export {};