@khorsheed/dsh-reader 0.3.0 → 0.3.1

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 (87) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.en.md +26 -121
  3. package/README.i18n.yaml +3 -3
  4. package/README.md +26 -121
  5. package/cordis.patch.yml +7 -0
  6. package/lib/client.js +29054 -6698
  7. package/lib/index.js +3416 -334
  8. package/lib/typert.host.js +2145 -259
  9. package/lib/typert.remote-client.d.ts +97 -3
  10. package/lib/typert.remote-client.js +1590 -250
  11. package/lib/types/captions.d.ts +99 -0
  12. package/lib/types/captions.js +236 -0
  13. package/lib/types/client/MediaPlayer.d.ts +55 -0
  14. package/lib/types/client/MediaPlayer.js +106 -0
  15. package/lib/types/client/NotesView.d.ts +57 -0
  16. package/lib/types/client/NotesView.js +124 -0
  17. package/lib/types/client/ReaderPane.d.ts +20 -3
  18. package/lib/types/client/ReaderPane.js +860 -164
  19. package/lib/types/client/SpeakerLegend.d.ts +18 -0
  20. package/lib/types/client/SpeakerLegend.js +26 -0
  21. package/lib/types/client/canvas-sync.d.ts +84 -0
  22. package/lib/types/client/canvas-sync.js +59 -0
  23. package/lib/types/client/contract.d.ts +130 -3
  24. package/lib/types/client/extract-article.d.ts +38 -1
  25. package/lib/types/client/extract-article.js +501 -28
  26. package/lib/types/client/icons.d.ts +1 -1
  27. package/lib/types/client/icons.js +1 -1
  28. package/lib/types/client/index.js +81 -2
  29. package/lib/types/client/locales.d.ts +279 -11
  30. package/lib/types/client/locales.js +278 -10
  31. package/lib/types/client/notes.d.ts +142 -0
  32. package/lib/types/client/notes.js +334 -0
  33. package/lib/types/client/parse-rss.js +40 -0
  34. package/lib/types/client/preset-visibility.d.ts +93 -0
  35. package/lib/types/client/preset-visibility.js +115 -0
  36. package/lib/types/client/selectors.d.ts +5 -0
  37. package/lib/types/client/selectors.js +5 -0
  38. package/lib/types/client/session.d.ts +21 -1
  39. package/lib/types/client/session.js +12 -0
  40. package/lib/types/client/store.js +4 -1
  41. package/lib/types/client/translate.d.ts +26 -1
  42. package/lib/types/client/translate.js +29 -12
  43. package/lib/types/client/useLocalTranscript.d.ts +43 -0
  44. package/lib/types/client/useLocalTranscript.js +129 -0
  45. package/lib/types/client/useMedia.d.ts +68 -0
  46. package/lib/types/client/useMedia.js +299 -0
  47. package/lib/types/client/useMediaStates.d.ts +9 -0
  48. package/lib/types/client/useMediaStates.js +43 -0
  49. package/lib/types/client/useNotes.d.ts +110 -0
  50. package/lib/types/client/useNotes.js +423 -0
  51. package/lib/types/client/usePolish.d.ts +47 -0
  52. package/lib/types/client/usePolish.js +162 -0
  53. package/lib/types/index.d.ts +6 -0
  54. package/lib/types/index.js +3 -0
  55. package/lib/types/local-transcribe.d.ts +171 -0
  56. package/lib/types/local-transcribe.js +473 -0
  57. package/lib/types/media-host.d.ts +91 -0
  58. package/lib/types/media-host.js +230 -0
  59. package/lib/types/media.d.ts +100 -0
  60. package/lib/types/media.js +207 -0
  61. package/lib/types/notes-types.d.ts +158 -0
  62. package/lib/types/notes-types.js +8 -0
  63. package/lib/types/notes.d.ts +213 -0
  64. package/lib/types/notes.js +718 -0
  65. package/lib/types/polish.d.ts +41 -0
  66. package/lib/types/polish.js +136 -0
  67. package/lib/types/remote.d.ts +118 -0
  68. package/lib/types/remote.js +151 -1
  69. package/lib/types/service.d.ts +71 -1
  70. package/lib/types/service.js +280 -59
  71. package/lib/types/skill.d.ts +20 -0
  72. package/lib/types/skill.js +78 -0
  73. package/lib/types/store.js +30 -8
  74. package/lib/types/tool.d.ts +23 -0
  75. package/lib/types/tool.js +40 -0
  76. package/lib/types/tools.d.ts +69 -0
  77. package/lib/types/tools.js +400 -0
  78. package/lib/types/types.d.ts +87 -0
  79. package/lib/types/types.js +66 -0
  80. package/lib/types/xiaoyuzhou.d.ts +43 -0
  81. package/lib/types/xiaoyuzhou.js +134 -0
  82. package/lib/types/ytdlp.d.ts +111 -0
  83. package/lib/types/ytdlp.js +269 -0
  84. package/package.json +29 -20
  85. package/lib/invariant.js +0 -38
  86. package/lib/types/invariant.d.ts +0 -29
  87. package/lib/types/invariant.js +0 -38
@@ -1,19 +1,27 @@
1
1
  /* Generated by @deepseek-ai/dsh-typert-generator from the Host FaceModel — do not edit. */
2
2
  import type {
3
3
  RemoteResult,
4
- TypertRemoteContribution,
4
+ TypertRemoteInfo,
5
+ TypertRemoteMethod,
5
6
  } from '@deepseek-ai/dsh-typert-protocol'
6
- import type { ReaderAddFailure, ReaderAddOutcome, ReaderAddRefusal, ReaderAnnotationOutcome, ReaderBackfillCandidate, ReaderBody, ReaderCapabilities, ReaderEntryBodyView, ReaderEntryFetchState, ReaderEntryTranslationView, ReaderImageResult, ReaderMutationOutcome, ReaderRecentEntry, ReaderRefreshResult, ReaderSentenceLearn, ReaderSourceSummary, ReaderStorageStats, ReaderTag } from '@khorsheed/dsh-reader/types'
7
+ import type { LocalTranscriptStatus, MediaCardStates, ReaderAddFailure, ReaderAddOutcome, ReaderAddRefusal, ReaderAnnotationOutcome, ReaderBackfillCandidate, ReaderBody, ReaderCapabilities, ReaderEntryBodyView, ReaderEntryFetchState, ReaderEntryIdentity, ReaderEntryNotes, ReaderEntryTranslationView, ReaderImageResult, ReaderMedia, ReaderMutationOutcome, ReaderNote, ReaderNoteInput, ReaderNoteOutcome, ReaderPolishView, ReaderRecentEntry, ReaderRefreshResult, ReaderSentenceLearn, ReaderSourceSummary, ReaderStorageStats, ReaderTag } from '@khorsheed/dsh-reader/types'
7
8
 
8
9
  declare module '@deepseek-ai/dsh-typert-protocol' {
9
10
  interface TypertRemoteNamespace$726561646572 {
11
+ addNote: (request: ReaderNoteInput) => Promise<RemoteResult<ReaderNote | 'empty' | 'full'>>
12
+ addReply: (request: { entryId: string; noteId: string; text: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
10
13
  addSource: (request: { url: string; label?: string; }) => Promise<RemoteResult<ReaderAddOutcome | ReaderAddRefusal | ReaderAddFailure>>
14
+ cancelLocalTranscript: (request: { entryId: string; force: boolean; }) => Promise<RemoteResult<LocalTranscriptStatus>>
11
15
  capabilities: () => Promise<RemoteResult<ReaderCapabilities>>
12
16
  clearRecent: () => Promise<RemoteResult<{ removed: number; }>>
13
17
  clearTranslations: () => Promise<RemoteResult<{ clearedEntries: number; clearedMemory: boolean; }>>
14
18
  createTag: (request: { name: string; }) => Promise<RemoteResult<ReaderTag | ReaderAnnotationOutcome>>
19
+ deleteDiscussion: (request: { entryId: string; discussionId: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
20
+ deleteNote: (request: { entryId: string; noteId: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
15
21
  deleteTag: (request: { id: string; }) => Promise<RemoteResult<ReaderAnnotationOutcome>>
22
+ editReply: (request: { entryId: string; noteId: string; index: number; text: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
16
23
  entryFetchStates: (request: { entryIds: readonly string[]; }) => Promise<RemoteResult<{ states: Record<string, ReaderEntryFetchState>; }>>
24
+ entryNotes: (request: { entryId: string; }) => Promise<RemoteResult<{ entry?: ReaderEntryNotes; }>>
17
25
  entryTags: (request: { entryId: string; }) => Promise<RemoteResult<{ tags: ReaderTag[]; }>>
18
26
  fetchEntryBody: (request: { entryId: string; url: string; }) => Promise<RemoteResult<{ entryId: string; url?: string; raw?: string; rawFile?: string; truncated?: boolean; error?: string; }>>
19
27
  fetchImage: (request: { url: string; }) => Promise<RemoteResult<ReaderImageResult>>
@@ -28,26 +36,46 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
28
36
  listRecent: () => Promise<RemoteResult<{ entries: ReaderRecentEntry[]; }>>
29
37
  listSources: () => Promise<RemoteResult<{ sources: ReaderSourceSummary[]; }>>
30
38
  listTags: () => Promise<RemoteResult<{ tags: ReaderTag[]; counts: Record<string, number>; }>>
39
+ localTranscript: (request: { entryId: string; }) => Promise<RemoteResult<LocalTranscriptStatus>>
40
+ markSynced: (request: { entryId: string; noteId?: string; discussionId?: string; canvasId: string; cardId: string; canvasTitle: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
41
+ mediaStates: (request: { entryIds: string[]; }) => Promise<RemoteResult<MediaCardStates>>
42
+ mediaTranscript: (request: { entryId: string; url: string; }) => Promise<RemoteResult<{ entryId: string; html?: string; captions: 'platform' | 'none' | 'failed'; language?: string; error?: string; }>>
43
+ nameSpeaker: (request: { entryId: string; speaker: number; name: string; }) => Promise<RemoteResult<Record<string, string>>>
44
+ noteCounts: () => Promise<RemoteResult<{ counts: Record<string, number>; }>>
45
+ polish: (request: { entryId: string; }) => Promise<RemoteResult<ReaderPolishView | null>>
31
46
  pruneTags: () => Promise<RemoteResult<{ removed: number; }>>
32
47
  quoteToSideChat: (request: { contextKey: string; label: string; text: string; }) => Promise<RemoteResult<'ok' | 'unavailable'>>
48
+ recordDiscussion: (request: ReaderEntryIdentity & { sessionId: string; sessionTitle?: string; }) => Promise<RemoteResult<'ok' | 'empty'>>
33
49
  recordRead: (request: { entryId: string; sourceId: string; title: string; url?: string; }) => Promise<RemoteResult<{ entries: number; }>>
34
50
  refresh: (request: { ids?: string[]; }) => Promise<RemoteResult<{ results: ReaderRefreshResult[]; }>>
35
51
  rememberSentences: (request: { pair: string; entries: readonly ReaderSentenceLearn[]; recalled?: readonly ReaderSentenceLearn[]; entryId?: string; bodyHash?: string; }) => Promise<RemoteResult<{ stored: number; }>>
36
52
  removeSource: (request: { id: string; entryIds?: readonly string[]; }) => Promise<RemoteResult<ReaderMutationOutcome>>
37
53
  renameTag: (request: { id: string; name: string; }) => Promise<RemoteResult<ReaderAnnotationOutcome>>
38
54
  setCachePolicy: (request: { ttlHours: number; maxEntries?: number; translationBudgetChars?: number; }) => Promise<RemoteResult<ReaderAnnotationOutcome>>
55
+ setPolishOff: (request: { entryId: string; paragraph: number; off: boolean; }) => Promise<RemoteResult<ReaderPolishView | null>>
56
+ snapshotEntry: (request: ReaderEntryIdentity & { paragraphs: string[]; }) => Promise<RemoteResult<'ok' | 'empty'>>
57
+ speakerNames: (request: { entryId: string; }) => Promise<RemoteResult<Record<string, string>>>
58
+ startLocalTranscript: (request: { entryId: string; url: string; media: ReaderMedia; title?: string; confirmModels?: boolean; }) => Promise<RemoteResult<LocalTranscriptStatus>>
39
59
  storeEntryBody: (request: { entryId: string; url: string; html: string; truncated?: boolean; scriptFigures?: number; bodyHash?: string; title?: string; excerpt?: string; }) => Promise<RemoteResult<ReaderEntryBodyView>>
40
60
  tagEntry: (request: { entryId: string; tagId: string; on: boolean; }) => Promise<RemoteResult<ReaderAnnotationOutcome>>
61
+ updateNote: (request: { entryId: string; noteId: string; comment: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
41
62
  updateSource: (request: { id: string; enabled?: boolean; label?: string; url?: string; timeOfDay?: string; }) => Promise<RemoteResult<ReaderMutationOutcome>>
42
63
  }
43
64
  interface TypertRemoteMap {
65
+ 'reader/addNote': (request: ReaderNoteInput) => Promise<RemoteResult<ReaderNote | 'empty' | 'full'>>
66
+ 'reader/addReply': (request: { entryId: string; noteId: string; text: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
44
67
  'reader/addSource': (request: { url: string; label?: string; }) => Promise<RemoteResult<ReaderAddOutcome | ReaderAddRefusal | ReaderAddFailure>>
68
+ 'reader/cancelLocalTranscript': (request: { entryId: string; force: boolean; }) => Promise<RemoteResult<LocalTranscriptStatus>>
45
69
  'reader/capabilities': () => Promise<RemoteResult<ReaderCapabilities>>
46
70
  'reader/clearRecent': () => Promise<RemoteResult<{ removed: number; }>>
47
71
  'reader/clearTranslations': () => Promise<RemoteResult<{ clearedEntries: number; clearedMemory: boolean; }>>
48
72
  'reader/createTag': (request: { name: string; }) => Promise<RemoteResult<ReaderTag | ReaderAnnotationOutcome>>
73
+ 'reader/deleteDiscussion': (request: { entryId: string; discussionId: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
74
+ 'reader/deleteNote': (request: { entryId: string; noteId: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
49
75
  'reader/deleteTag': (request: { id: string; }) => Promise<RemoteResult<ReaderAnnotationOutcome>>
76
+ 'reader/editReply': (request: { entryId: string; noteId: string; index: number; text: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
50
77
  'reader/entryFetchStates': (request: { entryIds: readonly string[]; }) => Promise<RemoteResult<{ states: Record<string, ReaderEntryFetchState>; }>>
78
+ 'reader/entryNotes': (request: { entryId: string; }) => Promise<RemoteResult<{ entry?: ReaderEntryNotes; }>>
51
79
  'reader/entryTags': (request: { entryId: string; }) => Promise<RemoteResult<{ tags: ReaderTag[]; }>>
52
80
  'reader/fetchEntryBody': (request: { entryId: string; url: string; }) => Promise<RemoteResult<{ entryId: string; url?: string; raw?: string; rawFile?: string; truncated?: boolean; error?: string; }>>
53
81
  'reader/fetchImage': (request: { url: string; }) => Promise<RemoteResult<ReaderImageResult>>
@@ -62,16 +90,29 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
62
90
  'reader/listRecent': () => Promise<RemoteResult<{ entries: ReaderRecentEntry[]; }>>
63
91
  'reader/listSources': () => Promise<RemoteResult<{ sources: ReaderSourceSummary[]; }>>
64
92
  'reader/listTags': () => Promise<RemoteResult<{ tags: ReaderTag[]; counts: Record<string, number>; }>>
93
+ 'reader/localTranscript': (request: { entryId: string; }) => Promise<RemoteResult<LocalTranscriptStatus>>
94
+ 'reader/markSynced': (request: { entryId: string; noteId?: string; discussionId?: string; canvasId: string; cardId: string; canvasTitle: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
95
+ 'reader/mediaStates': (request: { entryIds: string[]; }) => Promise<RemoteResult<MediaCardStates>>
96
+ 'reader/mediaTranscript': (request: { entryId: string; url: string; }) => Promise<RemoteResult<{ entryId: string; html?: string; captions: 'platform' | 'none' | 'failed'; language?: string; error?: string; }>>
97
+ 'reader/nameSpeaker': (request: { entryId: string; speaker: number; name: string; }) => Promise<RemoteResult<Record<string, string>>>
98
+ 'reader/noteCounts': () => Promise<RemoteResult<{ counts: Record<string, number>; }>>
99
+ 'reader/polish': (request: { entryId: string; }) => Promise<RemoteResult<ReaderPolishView | null>>
65
100
  'reader/pruneTags': () => Promise<RemoteResult<{ removed: number; }>>
66
101
  'reader/quoteToSideChat': (request: { contextKey: string; label: string; text: string; }) => Promise<RemoteResult<'ok' | 'unavailable'>>
102
+ 'reader/recordDiscussion': (request: ReaderEntryIdentity & { sessionId: string; sessionTitle?: string; }) => Promise<RemoteResult<'ok' | 'empty'>>
67
103
  'reader/recordRead': (request: { entryId: string; sourceId: string; title: string; url?: string; }) => Promise<RemoteResult<{ entries: number; }>>
68
104
  'reader/refresh': (request: { ids?: string[]; }) => Promise<RemoteResult<{ results: ReaderRefreshResult[]; }>>
69
105
  'reader/rememberSentences': (request: { pair: string; entries: readonly ReaderSentenceLearn[]; recalled?: readonly ReaderSentenceLearn[]; entryId?: string; bodyHash?: string; }) => Promise<RemoteResult<{ stored: number; }>>
70
106
  'reader/removeSource': (request: { id: string; entryIds?: readonly string[]; }) => Promise<RemoteResult<ReaderMutationOutcome>>
71
107
  'reader/renameTag': (request: { id: string; name: string; }) => Promise<RemoteResult<ReaderAnnotationOutcome>>
72
108
  'reader/setCachePolicy': (request: { ttlHours: number; maxEntries?: number; translationBudgetChars?: number; }) => Promise<RemoteResult<ReaderAnnotationOutcome>>
109
+ 'reader/setPolishOff': (request: { entryId: string; paragraph: number; off: boolean; }) => Promise<RemoteResult<ReaderPolishView | null>>
110
+ 'reader/snapshotEntry': (request: ReaderEntryIdentity & { paragraphs: string[]; }) => Promise<RemoteResult<'ok' | 'empty'>>
111
+ 'reader/speakerNames': (request: { entryId: string; }) => Promise<RemoteResult<Record<string, string>>>
112
+ 'reader/startLocalTranscript': (request: { entryId: string; url: string; media: ReaderMedia; title?: string; confirmModels?: boolean; }) => Promise<RemoteResult<LocalTranscriptStatus>>
73
113
  'reader/storeEntryBody': (request: { entryId: string; url: string; html: string; truncated?: boolean; scriptFigures?: number; bodyHash?: string; title?: string; excerpt?: string; }) => Promise<RemoteResult<ReaderEntryBodyView>>
74
114
  'reader/tagEntry': (request: { entryId: string; tagId: string; on: boolean; }) => Promise<RemoteResult<ReaderAnnotationOutcome>>
115
+ 'reader/updateNote': (request: { entryId: string; noteId: string; comment: string; }) => Promise<RemoteResult<ReaderNoteOutcome>>
75
116
  'reader/updateSource': (request: { id: string; enabled?: boolean; label?: string; url?: string; timeOfDay?: string; }) => Promise<RemoteResult<ReaderMutationOutcome>>
76
117
  }
77
118
  interface TypertRemoteNamespaceMap {
@@ -79,6 +120,59 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
79
120
  }
80
121
  }
81
122
 
82
- export declare const TYPERT_REMOTE: TypertRemoteContribution
123
+ export declare const TYPERT_REMOTE: TypertRemoteInfo<{
124
+ readonly 'reader/addNote': TypertRemoteMethod<{ readonly 'request': ReaderNoteInput }, ReaderNote | 'empty' | 'full'>
125
+ readonly 'reader/addReply': TypertRemoteMethod<{ readonly 'request': { entryId: string; noteId: string; text: string; } }, ReaderNoteOutcome>
126
+ readonly 'reader/addSource': TypertRemoteMethod<{ readonly 'request': { url: string; label?: string; } }, ReaderAddOutcome | ReaderAddRefusal | ReaderAddFailure>
127
+ readonly 'reader/cancelLocalTranscript': TypertRemoteMethod<{ readonly 'request': { entryId: string; force: boolean; } }, LocalTranscriptStatus>
128
+ readonly 'reader/capabilities': TypertRemoteMethod<{ }, ReaderCapabilities>
129
+ readonly 'reader/clearRecent': TypertRemoteMethod<{ }, { removed: number; }>
130
+ readonly 'reader/clearTranslations': TypertRemoteMethod<{ }, { clearedEntries: number; clearedMemory: boolean; }>
131
+ readonly 'reader/createTag': TypertRemoteMethod<{ readonly 'request': { name: string; } }, ReaderTag | ReaderAnnotationOutcome>
132
+ readonly 'reader/deleteDiscussion': TypertRemoteMethod<{ readonly 'request': { entryId: string; discussionId: string; } }, ReaderNoteOutcome>
133
+ readonly 'reader/deleteNote': TypertRemoteMethod<{ readonly 'request': { entryId: string; noteId: string; } }, ReaderNoteOutcome>
134
+ readonly 'reader/deleteTag': TypertRemoteMethod<{ readonly 'request': { id: string; } }, ReaderAnnotationOutcome>
135
+ readonly 'reader/editReply': TypertRemoteMethod<{ readonly 'request': { entryId: string; noteId: string; index: number; text: string; } }, ReaderNoteOutcome>
136
+ readonly 'reader/entryFetchStates': TypertRemoteMethod<{ readonly 'request': { entryIds: readonly string[]; } }, { states: Record<string, ReaderEntryFetchState>; }>
137
+ readonly 'reader/entryNotes': TypertRemoteMethod<{ readonly 'request': { entryId: string; } }, { entry?: ReaderEntryNotes; }>
138
+ readonly 'reader/entryTags': TypertRemoteMethod<{ readonly 'request': { entryId: string; } }, { tags: ReaderTag[]; }>
139
+ readonly 'reader/fetchEntryBody': TypertRemoteMethod<{ readonly 'request': { entryId: string; url: string; } }, { entryId: string; url?: string; raw?: string; rawFile?: string; truncated?: boolean; error?: string; }>
140
+ readonly 'reader/fetchImage': TypertRemoteMethod<{ readonly 'request': { url: string; } }, ReaderImageResult>
141
+ readonly 'reader/getBodies': TypertRemoteMethod<{ readonly 'request': { ids: string[]; } }, { bodies: ReaderBody[]; }>
142
+ readonly 'reader/getCachePolicy': TypertRemoteMethod<{ }, { ttlHours: number; maxEntries: number; translationBudgetChars: number; }>
143
+ readonly 'reader/getEntryBody': TypertRemoteMethod<{ readonly 'request': { entryId: string; url: string; feedHtml?: string; } }, ReaderEntryBodyView>
144
+ readonly 'reader/getEntryTranslation': TypertRemoteMethod<{ readonly 'request': { entryId: string; } }, { translation?: ReaderEntryTranslationView; }>
145
+ readonly 'reader/getRawBody': TypertRemoteMethod<{ readonly 'request': { entryId: string; } }, { entryId: string; raw?: string; url?: string; truncated?: boolean; error?: string; }>
146
+ readonly 'reader/getSentenceTranslations': TypertRemoteMethod<{ readonly 'request': { pair: string; hashes: readonly string[]; } }, { translations: Record<string, string>; }>
147
+ readonly 'reader/getStorageStats': TypertRemoteMethod<{ }, ReaderStorageStats>
148
+ readonly 'reader/listBackfillCandidates': TypertRemoteMethod<{ readonly 'request': { entries: readonly { entryId: string; url: string; label: string; hasBody: boolean; }[]; limit?: number; } }, { candidates: ReaderBackfillCandidate[]; }>
149
+ readonly 'reader/listRecent': TypertRemoteMethod<{ }, { entries: ReaderRecentEntry[]; }>
150
+ readonly 'reader/listSources': TypertRemoteMethod<{ }, { sources: ReaderSourceSummary[]; }>
151
+ readonly 'reader/listTags': TypertRemoteMethod<{ }, { tags: ReaderTag[]; counts: Record<string, number>; }>
152
+ readonly 'reader/localTranscript': TypertRemoteMethod<{ readonly 'request': { entryId: string; } }, LocalTranscriptStatus>
153
+ readonly 'reader/markSynced': TypertRemoteMethod<{ readonly 'request': { entryId: string; noteId?: string; discussionId?: string; canvasId: string; cardId: string; canvasTitle: string; } }, ReaderNoteOutcome>
154
+ readonly 'reader/mediaStates': TypertRemoteMethod<{ readonly 'request': { entryIds: string[]; } }, MediaCardStates>
155
+ readonly 'reader/mediaTranscript': TypertRemoteMethod<{ readonly 'request': { entryId: string; url: string; } }, { entryId: string; html?: string; captions: 'platform' | 'none' | 'failed'; language?: string; error?: string; }>
156
+ readonly 'reader/nameSpeaker': TypertRemoteMethod<{ readonly 'request': { entryId: string; speaker: number; name: string; } }, Record<string, string>>
157
+ readonly 'reader/noteCounts': TypertRemoteMethod<{ }, { counts: Record<string, number>; }>
158
+ readonly 'reader/polish': TypertRemoteMethod<{ readonly 'request': { entryId: string; } }, ReaderPolishView | null>
159
+ readonly 'reader/pruneTags': TypertRemoteMethod<{ }, { removed: number; }>
160
+ readonly 'reader/quoteToSideChat': TypertRemoteMethod<{ readonly 'request': { contextKey: string; label: string; text: string; } }, 'ok' | 'unavailable'>
161
+ readonly 'reader/recordDiscussion': TypertRemoteMethod<{ readonly 'request': ReaderEntryIdentity & { sessionId: string; sessionTitle?: string; } }, 'ok' | 'empty'>
162
+ readonly 'reader/recordRead': TypertRemoteMethod<{ readonly 'request': { entryId: string; sourceId: string; title: string; url?: string; } }, { entries: number; }>
163
+ readonly 'reader/refresh': TypertRemoteMethod<{ readonly 'request': { ids?: string[]; } }, { results: ReaderRefreshResult[]; }>
164
+ readonly 'reader/rememberSentences': TypertRemoteMethod<{ readonly 'request': { pair: string; entries: readonly ReaderSentenceLearn[]; recalled?: readonly ReaderSentenceLearn[]; entryId?: string; bodyHash?: string; } }, { stored: number; }>
165
+ readonly 'reader/removeSource': TypertRemoteMethod<{ readonly 'request': { id: string; entryIds?: readonly string[]; } }, ReaderMutationOutcome>
166
+ readonly 'reader/renameTag': TypertRemoteMethod<{ readonly 'request': { id: string; name: string; } }, ReaderAnnotationOutcome>
167
+ readonly 'reader/setCachePolicy': TypertRemoteMethod<{ readonly 'request': { ttlHours: number; maxEntries?: number; translationBudgetChars?: number; } }, ReaderAnnotationOutcome>
168
+ readonly 'reader/setPolishOff': TypertRemoteMethod<{ readonly 'request': { entryId: string; paragraph: number; off: boolean; } }, ReaderPolishView | null>
169
+ readonly 'reader/snapshotEntry': TypertRemoteMethod<{ readonly 'request': ReaderEntryIdentity & { paragraphs: string[]; } }, 'ok' | 'empty'>
170
+ readonly 'reader/speakerNames': TypertRemoteMethod<{ readonly 'request': { entryId: string; } }, Record<string, string>>
171
+ readonly 'reader/startLocalTranscript': TypertRemoteMethod<{ readonly 'request': { entryId: string; url: string; media: ReaderMedia; title?: string; confirmModels?: boolean; } }, LocalTranscriptStatus>
172
+ readonly 'reader/storeEntryBody': TypertRemoteMethod<{ readonly 'request': { entryId: string; url: string; html: string; truncated?: boolean; scriptFigures?: number; bodyHash?: string; title?: string; excerpt?: string; } }, ReaderEntryBodyView>
173
+ readonly 'reader/tagEntry': TypertRemoteMethod<{ readonly 'request': { entryId: string; tagId: string; on: boolean; } }, ReaderAnnotationOutcome>
174
+ readonly 'reader/updateNote': TypertRemoteMethod<{ readonly 'request': { entryId: string; noteId: string; comment: string; } }, ReaderNoteOutcome>
175
+ readonly 'reader/updateSource': TypertRemoteMethod<{ readonly 'request': { id: string; enabled?: boolean; label?: string; url?: string; timeOfDay?: string; } }, ReaderMutationOutcome>
176
+ }>
83
177
  export default TYPERT_REMOTE
84
178
  //# sourceMappingURL=typert.remote-client.d.ts.map