@kirkchinese/dsh-citeciter 0.2.0 → 0.3.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 (35) hide show
  1. package/README.md +65 -38
  2. package/README.zh.md +59 -51
  3. package/lib/client.js +15928 -1067
  4. package/lib/index.js +1094 -242
  5. package/lib/topic-CjNNXSWB.js +211 -0
  6. package/lib/typert-common-CPi6bVCr.js +32 -0
  7. package/lib/typert.host.js +30 -11
  8. package/lib/typert.remote-client.js +2 -2
  9. package/lib/types/client/citation.d.ts +10 -0
  10. package/lib/types/client/companion-controller.d.ts +37 -0
  11. package/lib/types/client/components/CiteCiterSettings.d.ts +7 -0
  12. package/lib/types/client/components/CitePanel.d.ts +7 -10
  13. package/lib/types/client/components/SelectionMenu.d.ts +6 -11
  14. package/lib/types/client/index.d.ts +2 -2
  15. package/lib/types/client/markdown-source-map.d.ts +16 -0
  16. package/lib/types/client/response-guard.d.ts +4 -0
  17. package/lib/types/client/types.d.ts +16 -31
  18. package/lib/types/index.d.ts +33 -22
  19. package/lib/types/observer.d.ts +44 -0
  20. package/lib/types/topic-runtime.d.ts +50 -0
  21. package/lib/types/topic.d.ts +419 -0
  22. package/lib/types/typert-common.d.ts +177 -69
  23. package/lib/types/typert.host.d.ts +445 -58
  24. package/lib/types/typert.remote-client.d.ts +3 -8
  25. package/package.json +58 -32
  26. package/lib/thread-D7ig_Lk7.js +0 -68
  27. package/lib/typert-common-CLPMRe7a.js +0 -51
  28. package/lib/types/client/explainer-controller.d.ts +0 -31
  29. package/lib/types/client/explainer.d.ts +0 -5
  30. package/lib/types/client/thread.d.ts +0 -22
  31. package/lib/types/client/transcript.d.ts +0 -14
  32. package/lib/types/projection.d.ts +0 -4
  33. package/lib/types/read-only.d.ts +0 -13
  34. package/lib/types/thread.d.ts +0 -107
  35. package/lib/types/validation.d.ts +0 -4
@@ -0,0 +1,50 @@
1
+ import { Context } from '@deepseek-ai/cordis';
2
+ import { type CiteCiterRequest, type CiteCiterResponse, type CiteCiterSettings } from './topic.ts';
3
+ /** One process-local private DSH tree with standard Session logs and Agent loop. */
4
+ export declare class TopicRuntime {
5
+ private readonly host;
6
+ private readonly settings;
7
+ private readonly runtime;
8
+ private readonly index;
9
+ private readonly fibers;
10
+ private readonly handles;
11
+ private readonly selections;
12
+ private readonly opening;
13
+ private readonly ready;
14
+ private disposal;
15
+ private releasing;
16
+ private releaseLlm;
17
+ private releaseFs;
18
+ private releaseSandboxPolicy;
19
+ private hasSourceFiles;
20
+ private closed;
21
+ /** @param host - owning DSH context. @param settings - current user preferences. */
22
+ constructor(host: Context, settings?: () => CiteCiterSettings);
23
+ /** Wait until every private DSH service has started. */
24
+ initialize(): Promise<void>;
25
+ /** Execute one validated browser command against private Topics. */
26
+ request(rawRequest: CiteCiterRequest): Promise<CiteCiterResponse>;
27
+ /** Stop every owned Agent and plugin fiber before releasing bridged services. */
28
+ dispose(): Promise<void>;
29
+ private disposeOwned;
30
+ private start;
31
+ private releaseRuntime;
32
+ private releaseOwnedRuntime;
33
+ private create;
34
+ private createHandle;
35
+ private setupAgent;
36
+ private sourceTool;
37
+ private ensureHandle;
38
+ private ask;
39
+ private stop;
40
+ private rename;
41
+ private archive;
42
+ private delete;
43
+ private removeSessionArtifact;
44
+ private selectModel;
45
+ private models;
46
+ private list;
47
+ private readLog;
48
+ private sourceAvailable;
49
+ private snapshot;
50
+ }
@@ -0,0 +1,419 @@
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;
6
+ /** Host settings namespace mirrored by the browser settings scope. */
7
+ export declare const CITECITER_SETTINGS_NAMESPACE: "citeciter";
8
+ /** Topic-scoped system prompt section. */
9
+ export declare const TUTOR_SECTION_NAME: "@kirkchinese/dsh-citeciter:tutor";
10
+ /** Topic-scoped, user-role Citation context. */
11
+ export declare const CITATION_CONTEXT_NAME: "@kirkchinese/dsh-citeciter:citation";
12
+ export declare const topicModeSchema: z.ZodEnum<{
13
+ observer: "observer";
14
+ "exact-fork": "exact-fork";
15
+ }>;
16
+ export type TopicMode = z.infer<typeof topicModeSchema>;
17
+ /** User preferences applied to new Topics and source reads. */
18
+ export declare const citeCiterSettingsSchema: z.ZodObject<{
19
+ defaultMode: z.ZodEnum<{
20
+ observer: "observer";
21
+ "exact-when-available": "exact-when-available";
22
+ }>;
23
+ includeSourceReasoning: z.ZodBoolean;
24
+ allowSourceFiles: z.ZodBoolean;
25
+ panelWidthPercent: z.ZodNumber;
26
+ reopenLastTopic: z.ZodBoolean;
27
+ }, z.core.$strict>;
28
+ export type CiteCiterSettings = z.infer<typeof citeCiterSettingsSchema>;
29
+ /** Settings used before an optional DSH settings provider becomes available. */
30
+ export declare const DEFAULT_CITECITER_SETTINGS: CiteCiterSettings;
31
+ /** Host-verifiable Markdown evidence plus the browser-visible quote used by the UI. */
32
+ export declare const citationDraftSchema: z.ZodObject<{
33
+ sourceSessionId: z.ZodString;
34
+ anchorSeq: z.ZodNumber;
35
+ startOffset: z.ZodNumber;
36
+ endOffset: z.ZodNumber;
37
+ sourceText: z.ZodString;
38
+ displayText: z.ZodString;
39
+ prefixText: z.ZodString;
40
+ suffixText: z.ZodString;
41
+ selectionFingerprint: z.ZodString;
42
+ }, z.core.$strict>;
43
+ /** Browser-captured selection submitted for authoritative Host validation. */
44
+ export type CitationDraft = z.infer<typeof citationDraftSchema>;
45
+ export declare const citationRecordSchema: z.ZodObject<{
46
+ sourceSessionId: z.ZodString;
47
+ anchorSeq: z.ZodNumber;
48
+ startOffset: z.ZodNumber;
49
+ endOffset: z.ZodNumber;
50
+ sourceText: z.ZodString;
51
+ displayText: z.ZodString;
52
+ prefixText: z.ZodString;
53
+ suffixText: z.ZodString;
54
+ selectionFingerprint: z.ZodString;
55
+ schemaVersion: z.ZodLiteral<3>;
56
+ createdAt: z.ZodNumber;
57
+ }, z.core.$strict>;
58
+ /** Immutable evidence identity owned by one Topic. */
59
+ export type CitationRecord = z.infer<typeof citationRecordSchema>;
60
+ export declare const modelConfigSchema: z.ZodObject<{
61
+ provider: z.ZodString;
62
+ model: z.ZodString;
63
+ reasoningEffort: z.ZodOptional<z.ZodString>;
64
+ temperature: z.ZodOptional<z.ZodNumber>;
65
+ maxTokens: z.ZodOptional<z.ZodNumber>;
66
+ stop: z.ZodOptional<z.ZodArray<z.ZodString>>;
67
+ }, z.core.$strict>;
68
+ export type TopicModelConfig = z.infer<typeof modelConfigSchema>;
69
+ export declare const topicMetadataSchema: z.ZodObject<{
70
+ schemaVersion: z.ZodLiteral<1>;
71
+ topicId: z.ZodNumber;
72
+ sessionId: z.ZodString;
73
+ sourceSessionId: z.ZodString;
74
+ sourceCwd: z.ZodString;
75
+ mode: z.ZodEnum<{
76
+ observer: "observer";
77
+ "exact-fork": "exact-fork";
78
+ }>;
79
+ citation: z.ZodObject<{
80
+ sourceSessionId: z.ZodString;
81
+ anchorSeq: z.ZodNumber;
82
+ startOffset: z.ZodNumber;
83
+ endOffset: z.ZodNumber;
84
+ sourceText: z.ZodString;
85
+ displayText: z.ZodString;
86
+ prefixText: z.ZodString;
87
+ suffixText: z.ZodString;
88
+ selectionFingerprint: z.ZodString;
89
+ schemaVersion: z.ZodLiteral<3>;
90
+ createdAt: z.ZodNumber;
91
+ }, z.core.$strict>;
92
+ modelConfig: z.ZodObject<{
93
+ provider: z.ZodString;
94
+ model: z.ZodString;
95
+ reasoningEffort: z.ZodOptional<z.ZodString>;
96
+ temperature: z.ZodOptional<z.ZodNumber>;
97
+ maxTokens: z.ZodOptional<z.ZodNumber>;
98
+ stop: z.ZodOptional<z.ZodArray<z.ZodString>>;
99
+ }, z.core.$strict>;
100
+ forkThroughSeq: z.ZodNullable<z.ZodNumber>;
101
+ temporaryTitle: z.ZodString;
102
+ cachedTitle: z.ZodNullable<z.ZodString>;
103
+ cachedTitleSource: z.ZodNullable<z.ZodEnum<{
104
+ provider: "provider";
105
+ fallback: "fallback";
106
+ user: "user";
107
+ }>>;
108
+ createdAt: z.ZodNumber;
109
+ updatedAt: z.ZodNumber;
110
+ archivedAt: z.ZodNullable<z.ZodNumber>;
111
+ sourceAvailable: z.ZodBoolean;
112
+ }, z.core.$strict>;
113
+ /** Small navigation record stored outside the standard Topic Session log. */
114
+ export type TopicMetadata = z.infer<typeof topicMetadataSchema>;
115
+ export declare const topicSummarySchema: z.ZodObject<{
116
+ topicId: z.ZodNumber;
117
+ sessionId: z.ZodString;
118
+ sourceSessionId: z.ZodString;
119
+ mode: z.ZodEnum<{
120
+ observer: "observer";
121
+ "exact-fork": "exact-fork";
122
+ }>;
123
+ citation: z.ZodObject<{
124
+ sourceSessionId: z.ZodString;
125
+ anchorSeq: z.ZodNumber;
126
+ startOffset: z.ZodNumber;
127
+ endOffset: z.ZodNumber;
128
+ sourceText: z.ZodString;
129
+ displayText: z.ZodString;
130
+ prefixText: z.ZodString;
131
+ suffixText: z.ZodString;
132
+ selectionFingerprint: z.ZodString;
133
+ schemaVersion: z.ZodLiteral<3>;
134
+ createdAt: z.ZodNumber;
135
+ }, z.core.$strict>;
136
+ title: z.ZodString;
137
+ titlePending: z.ZodBoolean;
138
+ createdAt: z.ZodNumber;
139
+ updatedAt: z.ZodNumber;
140
+ archived: z.ZodBoolean;
141
+ running: z.ZodBoolean;
142
+ sourceAvailable: z.ZodBoolean;
143
+ observedThroughSeq: z.ZodNullable<z.ZodNumber>;
144
+ modelConfig: z.ZodObject<{
145
+ provider: z.ZodString;
146
+ model: z.ZodString;
147
+ reasoningEffort: z.ZodOptional<z.ZodString>;
148
+ temperature: z.ZodOptional<z.ZodNumber>;
149
+ maxTokens: z.ZodOptional<z.ZodNumber>;
150
+ stop: z.ZodOptional<z.ZodArray<z.ZodString>>;
151
+ }, z.core.$strict>;
152
+ }, z.core.$strict>;
153
+ export type TopicSummary = z.infer<typeof topicSummarySchema>;
154
+ export declare const topicMessageSchema: z.ZodObject<{
155
+ id: z.ZodString;
156
+ seq: z.ZodNumber;
157
+ role: z.ZodEnum<{
158
+ error: "error";
159
+ user: "user";
160
+ assistant: "assistant";
161
+ }>;
162
+ text: z.ZodString;
163
+ reasoning: z.ZodNullable<z.ZodString>;
164
+ streaming: z.ZodBoolean;
165
+ }, z.core.$strict>;
166
+ export type TopicMessage = z.infer<typeof topicMessageSchema>;
167
+ export declare const topicSnapshotSchema: z.ZodObject<{
168
+ topic: z.ZodObject<{
169
+ topicId: z.ZodNumber;
170
+ sessionId: z.ZodString;
171
+ sourceSessionId: z.ZodString;
172
+ mode: z.ZodEnum<{
173
+ observer: "observer";
174
+ "exact-fork": "exact-fork";
175
+ }>;
176
+ citation: z.ZodObject<{
177
+ sourceSessionId: z.ZodString;
178
+ anchorSeq: z.ZodNumber;
179
+ startOffset: z.ZodNumber;
180
+ endOffset: z.ZodNumber;
181
+ sourceText: z.ZodString;
182
+ displayText: z.ZodString;
183
+ prefixText: z.ZodString;
184
+ suffixText: z.ZodString;
185
+ selectionFingerprint: z.ZodString;
186
+ schemaVersion: z.ZodLiteral<3>;
187
+ createdAt: z.ZodNumber;
188
+ }, z.core.$strict>;
189
+ title: z.ZodString;
190
+ titlePending: z.ZodBoolean;
191
+ createdAt: z.ZodNumber;
192
+ updatedAt: z.ZodNumber;
193
+ archived: z.ZodBoolean;
194
+ running: z.ZodBoolean;
195
+ sourceAvailable: z.ZodBoolean;
196
+ observedThroughSeq: z.ZodNullable<z.ZodNumber>;
197
+ modelConfig: z.ZodObject<{
198
+ provider: z.ZodString;
199
+ model: z.ZodString;
200
+ reasoningEffort: z.ZodOptional<z.ZodString>;
201
+ temperature: z.ZodOptional<z.ZodNumber>;
202
+ maxTokens: z.ZodOptional<z.ZodNumber>;
203
+ stop: z.ZodOptional<z.ZodArray<z.ZodString>>;
204
+ }, z.core.$strict>;
205
+ }, z.core.$strict>;
206
+ messages: z.ZodArray<z.ZodObject<{
207
+ id: z.ZodString;
208
+ seq: z.ZodNumber;
209
+ role: z.ZodEnum<{
210
+ error: "error";
211
+ user: "user";
212
+ assistant: "assistant";
213
+ }>;
214
+ text: z.ZodString;
215
+ reasoning: z.ZodNullable<z.ZodString>;
216
+ streaming: z.ZodBoolean;
217
+ }, z.core.$strict>>;
218
+ error: z.ZodNullable<z.ZodString>;
219
+ }, z.core.$strict>;
220
+ export type TopicSnapshot = z.infer<typeof topicSnapshotSchema>;
221
+ export declare const modelOptionSchema: z.ZodObject<{
222
+ id: z.ZodString;
223
+ name: z.ZodString;
224
+ description: z.ZodOptional<z.ZodString>;
225
+ reasoningEfforts: z.ZodArray<z.ZodObject<{
226
+ id: z.ZodString;
227
+ name: z.ZodString;
228
+ }, z.core.$strict>>;
229
+ }, z.core.$strict>;
230
+ export declare const providerOptionSchema: z.ZodObject<{
231
+ id: z.ZodString;
232
+ name: z.ZodString;
233
+ models: z.ZodArray<z.ZodObject<{
234
+ id: z.ZodString;
235
+ name: z.ZodString;
236
+ description: z.ZodOptional<z.ZodString>;
237
+ reasoningEfforts: z.ZodArray<z.ZodObject<{
238
+ id: z.ZodString;
239
+ name: z.ZodString;
240
+ }, z.core.$strict>>;
241
+ }, z.core.$strict>>;
242
+ }, z.core.$strict>;
243
+ export type ProviderOption = z.infer<typeof providerOptionSchema>;
244
+ /** One strict direct-RPC command for the private CiteCiter runtime. */
245
+ export declare const citeCiterRequestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
246
+ action: z.ZodLiteral<"create">;
247
+ citation: z.ZodObject<{
248
+ sourceSessionId: z.ZodString;
249
+ anchorSeq: z.ZodNumber;
250
+ startOffset: z.ZodNumber;
251
+ endOffset: z.ZodNumber;
252
+ sourceText: z.ZodString;
253
+ displayText: z.ZodString;
254
+ prefixText: z.ZodString;
255
+ suffixText: z.ZodString;
256
+ selectionFingerprint: z.ZodString;
257
+ }, z.core.$strict>;
258
+ question: z.ZodString;
259
+ mode: z.ZodEnum<{
260
+ observer: "observer";
261
+ "exact-fork": "exact-fork";
262
+ "exact-when-available": "exact-when-available";
263
+ }>;
264
+ }, z.core.$strict>, z.ZodObject<{
265
+ action: z.ZodLiteral<"list">;
266
+ sourceSessionId: z.ZodString;
267
+ includeArchived: z.ZodOptional<z.ZodBoolean>;
268
+ }, z.core.$strict>, z.ZodObject<{
269
+ action: z.ZodLiteral<"get">;
270
+ topicSessionId: z.ZodString;
271
+ }, z.core.$strict>, z.ZodObject<{
272
+ action: z.ZodLiteral<"ask">;
273
+ topicSessionId: z.ZodString;
274
+ question: z.ZodString;
275
+ }, z.core.$strict>, z.ZodObject<{
276
+ action: z.ZodLiteral<"stop">;
277
+ topicSessionId: z.ZodString;
278
+ }, z.core.$strict>, z.ZodObject<{
279
+ action: z.ZodLiteral<"rename">;
280
+ topicSessionId: z.ZodString;
281
+ title: z.ZodString;
282
+ }, z.core.$strict>, z.ZodObject<{
283
+ action: z.ZodLiteral<"archive">;
284
+ topicSessionId: z.ZodString;
285
+ archived: z.ZodBoolean;
286
+ }, z.core.$strict>, z.ZodObject<{
287
+ action: z.ZodLiteral<"delete">;
288
+ topicSessionId: z.ZodString;
289
+ confirmSessionId: z.ZodString;
290
+ }, z.core.$strict>, z.ZodObject<{
291
+ action: z.ZodLiteral<"models">;
292
+ }, z.core.$strict>, z.ZodObject<{
293
+ action: z.ZodLiteral<"select-model">;
294
+ topicSessionId: z.ZodString;
295
+ provider: z.ZodString;
296
+ model: z.ZodString;
297
+ reasoningEffort: z.ZodNullable<z.ZodString>;
298
+ }, z.core.$strict>], "action">;
299
+ export type CiteCiterRequest = z.infer<typeof citeCiterRequestSchema>;
300
+ /** Strict response union returned by the single Remote command endpoint. */
301
+ export declare const citeCiterResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
302
+ kind: z.ZodLiteral<"topic">;
303
+ topic: z.ZodObject<{
304
+ topic: z.ZodObject<{
305
+ topicId: z.ZodNumber;
306
+ sessionId: z.ZodString;
307
+ sourceSessionId: z.ZodString;
308
+ mode: z.ZodEnum<{
309
+ observer: "observer";
310
+ "exact-fork": "exact-fork";
311
+ }>;
312
+ citation: z.ZodObject<{
313
+ sourceSessionId: z.ZodString;
314
+ anchorSeq: z.ZodNumber;
315
+ startOffset: z.ZodNumber;
316
+ endOffset: z.ZodNumber;
317
+ sourceText: z.ZodString;
318
+ displayText: z.ZodString;
319
+ prefixText: z.ZodString;
320
+ suffixText: z.ZodString;
321
+ selectionFingerprint: z.ZodString;
322
+ schemaVersion: z.ZodLiteral<3>;
323
+ createdAt: z.ZodNumber;
324
+ }, z.core.$strict>;
325
+ title: z.ZodString;
326
+ titlePending: z.ZodBoolean;
327
+ createdAt: z.ZodNumber;
328
+ updatedAt: z.ZodNumber;
329
+ archived: z.ZodBoolean;
330
+ running: z.ZodBoolean;
331
+ sourceAvailable: z.ZodBoolean;
332
+ observedThroughSeq: z.ZodNullable<z.ZodNumber>;
333
+ modelConfig: z.ZodObject<{
334
+ provider: z.ZodString;
335
+ model: z.ZodString;
336
+ reasoningEffort: z.ZodOptional<z.ZodString>;
337
+ temperature: z.ZodOptional<z.ZodNumber>;
338
+ maxTokens: z.ZodOptional<z.ZodNumber>;
339
+ stop: z.ZodOptional<z.ZodArray<z.ZodString>>;
340
+ }, z.core.$strict>;
341
+ }, z.core.$strict>;
342
+ messages: z.ZodArray<z.ZodObject<{
343
+ id: z.ZodString;
344
+ seq: z.ZodNumber;
345
+ role: z.ZodEnum<{
346
+ error: "error";
347
+ user: "user";
348
+ assistant: "assistant";
349
+ }>;
350
+ text: z.ZodString;
351
+ reasoning: z.ZodNullable<z.ZodString>;
352
+ streaming: z.ZodBoolean;
353
+ }, z.core.$strict>>;
354
+ error: z.ZodNullable<z.ZodString>;
355
+ }, z.core.$strict>;
356
+ }, z.core.$strict>, z.ZodObject<{
357
+ kind: z.ZodLiteral<"topics">;
358
+ topics: z.ZodArray<z.ZodObject<{
359
+ topicId: z.ZodNumber;
360
+ sessionId: z.ZodString;
361
+ sourceSessionId: z.ZodString;
362
+ mode: z.ZodEnum<{
363
+ observer: "observer";
364
+ "exact-fork": "exact-fork";
365
+ }>;
366
+ citation: z.ZodObject<{
367
+ sourceSessionId: z.ZodString;
368
+ anchorSeq: z.ZodNumber;
369
+ startOffset: z.ZodNumber;
370
+ endOffset: z.ZodNumber;
371
+ sourceText: z.ZodString;
372
+ displayText: z.ZodString;
373
+ prefixText: z.ZodString;
374
+ suffixText: z.ZodString;
375
+ selectionFingerprint: z.ZodString;
376
+ schemaVersion: z.ZodLiteral<3>;
377
+ createdAt: z.ZodNumber;
378
+ }, z.core.$strict>;
379
+ title: z.ZodString;
380
+ titlePending: z.ZodBoolean;
381
+ createdAt: z.ZodNumber;
382
+ updatedAt: z.ZodNumber;
383
+ archived: z.ZodBoolean;
384
+ running: z.ZodBoolean;
385
+ sourceAvailable: z.ZodBoolean;
386
+ observedThroughSeq: z.ZodNullable<z.ZodNumber>;
387
+ modelConfig: z.ZodObject<{
388
+ provider: z.ZodString;
389
+ model: z.ZodString;
390
+ reasoningEffort: z.ZodOptional<z.ZodString>;
391
+ temperature: z.ZodOptional<z.ZodNumber>;
392
+ maxTokens: z.ZodOptional<z.ZodNumber>;
393
+ stop: z.ZodOptional<z.ZodArray<z.ZodString>>;
394
+ }, z.core.$strict>;
395
+ }, z.core.$strict>>;
396
+ }, z.core.$strict>, z.ZodObject<{
397
+ kind: z.ZodLiteral<"models">;
398
+ providers: z.ZodArray<z.ZodObject<{
399
+ id: z.ZodString;
400
+ name: z.ZodString;
401
+ models: z.ZodArray<z.ZodObject<{
402
+ id: z.ZodString;
403
+ name: z.ZodString;
404
+ description: z.ZodOptional<z.ZodString>;
405
+ reasoningEfforts: z.ZodArray<z.ZodObject<{
406
+ id: z.ZodString;
407
+ name: z.ZodString;
408
+ }, z.core.$strict>>;
409
+ }, z.core.$strict>>;
410
+ }, z.core.$strict>>;
411
+ }, z.core.$strict>, z.ZodObject<{
412
+ kind: z.ZodLiteral<"deleted">;
413
+ sessionId: z.ZodString;
414
+ }, z.core.$strict>], "kind">;
415
+ export type CiteCiterResponse = z.infer<typeof citeCiterResponseSchema>;
416
+ /** Fields whose canonical serialization defines selection identity. */
417
+ export declare function canonicalCitationIdentity(citation: Omit<CitationDraft, 'selectionFingerprint'>): string;
418
+ /** Render the immutable Citation as explicitly untrusted user-role context. */
419
+ export declare function renderCitationContext(citation: CitationRecord): string;