@researai/deepscientist 1.5.15 → 1.5.16

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 (193) hide show
  1. package/README.md +336 -98
  2. package/bin/ds.js +691 -91
  3. package/docs/en/00_QUICK_START.md +36 -15
  4. package/docs/en/01_SETTINGS_REFERENCE.md +33 -0
  5. package/docs/en/02_START_RESEARCH_GUIDE.md +7 -0
  6. package/docs/en/05_TUI_GUIDE.md +6 -0
  7. package/docs/en/06_RUNTIME_AND_CANVAS.md +4 -3
  8. package/docs/en/09_DOCTOR.md +11 -5
  9. package/docs/en/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +63 -13
  10. package/docs/en/15_CODEX_PROVIDER_SETUP.md +25 -8
  11. package/docs/en/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
  12. package/docs/en/19_LOCAL_BROWSER_AUTH.md +70 -0
  13. package/docs/en/20_WORKSPACE_MODES_GUIDE.md +250 -0
  14. package/docs/en/README.md +18 -0
  15. package/docs/zh/00_QUICK_START.md +36 -15
  16. package/docs/zh/01_SETTINGS_REFERENCE.md +33 -0
  17. package/docs/zh/02_START_RESEARCH_GUIDE.md +7 -0
  18. package/docs/zh/05_TUI_GUIDE.md +6 -0
  19. package/docs/zh/09_DOCTOR.md +11 -5
  20. package/docs/zh/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +63 -13
  21. package/docs/zh/15_CODEX_PROVIDER_SETUP.md +25 -8
  22. package/docs/zh/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
  23. package/docs/zh/19_LOCAL_BROWSER_AUTH.md +68 -0
  24. package/docs/zh/20_WORKSPACE_MODES_GUIDE.md +251 -0
  25. package/docs/zh/README.md +18 -0
  26. package/package.json +1 -1
  27. package/pyproject.toml +1 -1
  28. package/src/deepscientist/__init__.py +1 -1
  29. package/src/deepscientist/acp/envelope.py +6 -0
  30. package/src/deepscientist/artifact/service.py +647 -22
  31. package/src/deepscientist/bash_exec/service.py +234 -9
  32. package/src/deepscientist/cli.py +115 -19
  33. package/src/deepscientist/codex_cli_compat.py +232 -0
  34. package/src/deepscientist/config/models.py +2 -1
  35. package/src/deepscientist/config/service.py +31 -9
  36. package/src/deepscientist/daemon/api/handlers.py +125 -6
  37. package/src/deepscientist/daemon/api/router.py +4 -0
  38. package/src/deepscientist/daemon/app.py +715 -98
  39. package/src/deepscientist/gitops/__init__.py +10 -1
  40. package/src/deepscientist/gitops/diff.py +129 -0
  41. package/src/deepscientist/gitops/service.py +4 -1
  42. package/src/deepscientist/mcp/server.py +39 -0
  43. package/src/deepscientist/prompts/builder.py +255 -32
  44. package/src/deepscientist/quest/layout.py +15 -2
  45. package/src/deepscientist/quest/service.py +295 -43
  46. package/src/deepscientist/quest/stage_views.py +6 -1
  47. package/src/deepscientist/runners/codex.py +86 -31
  48. package/src/deepscientist/skills/__init__.py +2 -2
  49. package/src/deepscientist/skills/installer.py +196 -5
  50. package/src/deepscientist/skills/registry.py +66 -0
  51. package/src/prompts/connectors/qq.md +18 -8
  52. package/src/prompts/connectors/weixin.md +16 -6
  53. package/src/prompts/contracts/shared_interaction.md +12 -1
  54. package/src/prompts/system.md +10 -5
  55. package/src/prompts/system_copilot.md +43 -0
  56. package/src/skills/analysis-campaign/SKILL.md +1 -0
  57. package/src/skills/baseline/SKILL.md +8 -0
  58. package/src/skills/decision/SKILL.md +8 -0
  59. package/src/skills/experiment/SKILL.md +8 -0
  60. package/src/skills/figure-polish/SKILL.md +1 -0
  61. package/src/skills/finalize/SKILL.md +1 -0
  62. package/src/skills/idea/SKILL.md +1 -0
  63. package/src/skills/intake-audit/SKILL.md +8 -0
  64. package/src/skills/mentor/SKILL.md +217 -0
  65. package/src/skills/mentor/references/correction-rules.md +210 -0
  66. package/src/skills/mentor/references/knowledge-profile.md +91 -0
  67. package/src/skills/mentor/references/persona-profile.md +138 -0
  68. package/src/skills/mentor/references/taste-profile.md +128 -0
  69. package/src/skills/mentor/references/thought-style-profile.md +138 -0
  70. package/src/skills/mentor/references/work-profile.md +289 -0
  71. package/src/skills/mentor/references/workflow-profile.md +240 -0
  72. package/src/skills/optimize/SKILL.md +1 -0
  73. package/src/skills/rebuttal/SKILL.md +1 -0
  74. package/src/skills/review/SKILL.md +1 -0
  75. package/src/skills/scout/SKILL.md +8 -0
  76. package/src/skills/write/SKILL.md +1 -0
  77. package/src/tui/dist/app/AppContainer.js +19 -11
  78. package/src/tui/dist/index.js +4 -1
  79. package/src/tui/dist/lib/api.js +33 -3
  80. package/src/tui/package.json +1 -1
  81. package/src/ui/dist/assets/AiManusChatView-COFACy7V.js +204 -0
  82. package/src/ui/dist/assets/AnalysisPlugin-DnSm0GZn.js +1 -0
  83. package/src/ui/dist/assets/CliPlugin-CvwCmDQ5.js +109 -0
  84. package/src/ui/dist/assets/CodeEditorPlugin-cOqSa0xq.js +2 -0
  85. package/src/ui/dist/assets/CodeViewerPlugin-itb0tltR.js +270 -0
  86. package/src/ui/dist/assets/DocViewerPlugin-DqKkiCI6.js +7 -0
  87. package/src/ui/dist/assets/GitCommitViewerPlugin-DVgNHBCS.js +1 -0
  88. package/src/ui/dist/assets/GitDiffViewerPlugin-DxL2ezFG.js +6 -0
  89. package/src/ui/dist/assets/GitSnapshotViewer-B_RQm1YZ.js +30 -0
  90. package/src/ui/dist/assets/ImageViewerPlugin-tHqlXY3n.js +26 -0
  91. package/src/ui/dist/assets/LabCopilotPanel-ClMbq5Yu.js +14 -0
  92. package/src/ui/dist/assets/LabPlugin-L_SuE8ow.js +22 -0
  93. package/src/ui/dist/assets/LatexPlugin-B495DTXC.js +25 -0
  94. package/src/ui/dist/assets/MarkdownViewerPlugin-DG28-61B.js +128 -0
  95. package/src/ui/dist/assets/MarketplacePlugin-BiOGT-Kj.js +13 -0
  96. package/src/ui/dist/assets/{NotebookEditor-CccQYZjX.css → NotebookEditor-BHH8rdGj.css} +1 -1
  97. package/src/ui/dist/assets/NotebookEditor-BOr3x3Ej.css +1 -0
  98. package/src/ui/dist/assets/NotebookEditor-C-4Kt1p9.js +81 -0
  99. package/src/ui/dist/assets/NotebookEditor-CVsj8h_T.js +361 -0
  100. package/src/ui/dist/assets/PdfLoader-CASDQmxJ.js +16 -0
  101. package/src/ui/dist/assets/PdfLoader-Cy5jtWrr.css +1 -0
  102. package/src/ui/dist/assets/PdfMarkdownPlugin-BFhwoKsY.js +1 -0
  103. package/src/ui/dist/assets/PdfViewerPlugin-DcOzU9vd.js +17 -0
  104. package/src/ui/dist/assets/PdfViewerPlugin-nwwE-fjJ.css +1 -0
  105. package/src/ui/dist/assets/SearchPlugin-CHj7M58O.js +16 -0
  106. package/src/ui/dist/assets/SearchPlugin-DA4en4hK.css +1 -0
  107. package/src/ui/dist/assets/TextViewerPlugin-CB4DYfWO.js +54 -0
  108. package/src/ui/dist/assets/VNCViewer-CjlbyCB3.js +11 -0
  109. package/src/ui/dist/assets/bot-CFkZY-JP.js +6 -0
  110. package/src/ui/dist/assets/browser-CTB2jwNe.js +8 -0
  111. package/src/ui/dist/assets/chevron-up-Dq5ofbht.js +6 -0
  112. package/src/ui/dist/assets/code-DLC6G24T.js +6 -0
  113. package/src/ui/dist/assets/file-content-Dv4LoZec.js +1 -0
  114. package/src/ui/dist/assets/file-diff-panel-Denq-lC3.js +1 -0
  115. package/src/ui/dist/assets/file-jump-queue-DA-SdG__.js +1 -0
  116. package/src/ui/dist/assets/file-socket-Cu4Qln7Y.js +1 -0
  117. package/src/ui/dist/assets/git-commit-horizontal-BUh6G52n.js +6 -0
  118. package/src/ui/dist/assets/image-B9HUUddG.js +6 -0
  119. package/src/ui/dist/assets/index-B2B1sg-M.js +1 -0
  120. package/src/ui/dist/assets/index-Cgla8biy.css +33 -0
  121. package/src/ui/dist/assets/index-DRyx7vAc.js +1 -0
  122. package/src/ui/dist/assets/index-Gbl53BNp.js +2496 -0
  123. package/src/ui/dist/assets/index-wQ7RIIRd.js +11 -0
  124. package/src/ui/dist/assets/monaco-CiHMMNH_.js +1 -0
  125. package/src/ui/dist/assets/pdf-effect-queue-ZtnHFCAi.js +6 -0
  126. package/src/ui/dist/assets/plugin-monaco-C8UgLomw.js +19 -0
  127. package/src/ui/dist/assets/plugin-notebook-HbW2K-1c.js +169 -0
  128. package/src/ui/dist/assets/plugin-pdf-CR8hgQBV.js +357 -0
  129. package/src/ui/dist/assets/plugin-terminal-MXFIPun8.js +227 -0
  130. package/src/ui/dist/assets/popover-DL6h35vr.js +1 -0
  131. package/src/ui/dist/assets/project-sync-CsX08Qno.js +1 -0
  132. package/src/ui/dist/assets/select-DvmXt1yY.js +11 -0
  133. package/src/ui/dist/assets/sigma-7jpXazui.js +6 -0
  134. package/src/ui/dist/assets/trash-xA7kFt8i.js +11 -0
  135. package/src/ui/dist/assets/useCliAccess-DsMwDjOp.js +1 -0
  136. package/src/ui/dist/assets/useFileDiffOverlay-FuhcnKiw.js +1 -0
  137. package/src/ui/dist/assets/wrap-text-CwMn-iqb.js +11 -0
  138. package/src/ui/dist/assets/zoom-out-R-GWEhzS.js +11 -0
  139. package/src/ui/dist/index.html +5 -2
  140. package/src/ui/dist/assets/AiManusChatView-DDjbFnbt.js +0 -26597
  141. package/src/ui/dist/assets/AnalysisPlugin-Yb5IdmaU.js +0 -123
  142. package/src/ui/dist/assets/CliPlugin-e64sreyu.js +0 -31037
  143. package/src/ui/dist/assets/CodeEditorPlugin-C4D2TIkU.js +0 -427
  144. package/src/ui/dist/assets/CodeViewerPlugin-BVoNZIvC.js +0 -905
  145. package/src/ui/dist/assets/DocViewerPlugin-CLChbllo.js +0 -278
  146. package/src/ui/dist/assets/GitDiffViewerPlugin-C4xeFyFQ.js +0 -2661
  147. package/src/ui/dist/assets/ImageViewerPlugin-OiMUAcLi.js +0 -500
  148. package/src/ui/dist/assets/LabCopilotPanel-BjD2ThQF.js +0 -4104
  149. package/src/ui/dist/assets/LabPlugin-DQPg-NrB.js +0 -2677
  150. package/src/ui/dist/assets/LatexPlugin-CI05XAV9.js +0 -1792
  151. package/src/ui/dist/assets/MarkdownViewerPlugin-DpeBLYZf.js +0 -308
  152. package/src/ui/dist/assets/MarketplacePlugin-DolE58Q2.js +0 -413
  153. package/src/ui/dist/assets/NotebookEditor-7Qm2rSWD.js +0 -4214
  154. package/src/ui/dist/assets/NotebookEditor-C1kWaxKi.js +0 -84873
  155. package/src/ui/dist/assets/NotebookEditor-C3VQ7ylN.css +0 -1405
  156. package/src/ui/dist/assets/PdfLoader-BfOHw8Zw.js +0 -25468
  157. package/src/ui/dist/assets/PdfLoader-C-Y707R3.css +0 -49
  158. package/src/ui/dist/assets/PdfMarkdownPlugin-BulDREv1.js +0 -409
  159. package/src/ui/dist/assets/PdfViewerPlugin-C-daaOaL.js +0 -3095
  160. package/src/ui/dist/assets/PdfViewerPlugin-DQ11QcSf.css +0 -3627
  161. package/src/ui/dist/assets/SearchPlugin-CjpaiJ3A.js +0 -741
  162. package/src/ui/dist/assets/SearchPlugin-DDMrGDkh.css +0 -379
  163. package/src/ui/dist/assets/TextViewerPlugin-BxIyqPQC.js +0 -472
  164. package/src/ui/dist/assets/VNCViewer-HAg9mF7M.js +0 -18821
  165. package/src/ui/dist/assets/awareness-C0NPR2Dj.js +0 -292
  166. package/src/ui/dist/assets/bot-0DYntytV.js +0 -21
  167. package/src/ui/dist/assets/browser-BAcuE0Xj.js +0 -2895
  168. package/src/ui/dist/assets/code-B20Slj_w.js +0 -17
  169. package/src/ui/dist/assets/file-content-DT24KFma.js +0 -377
  170. package/src/ui/dist/assets/file-diff-panel-DK13YPql.js +0 -92
  171. package/src/ui/dist/assets/file-jump-queue-r5XKgJEV.js +0 -16
  172. package/src/ui/dist/assets/file-socket-B4T2o4nR.js +0 -58
  173. package/src/ui/dist/assets/function-B5QZkkHC.js +0 -1895
  174. package/src/ui/dist/assets/image-DSeR_sDS.js +0 -18
  175. package/src/ui/dist/assets/index-BrFje2Uk.js +0 -120
  176. package/src/ui/dist/assets/index-BwRJaoTl.js +0 -25
  177. package/src/ui/dist/assets/index-D_E4281X.js +0 -221322
  178. package/src/ui/dist/assets/index-DnYB3xb1.js +0 -159
  179. package/src/ui/dist/assets/index-G7AcWcMu.css +0 -12594
  180. package/src/ui/dist/assets/monaco-LExaAN3Y.js +0 -623
  181. package/src/ui/dist/assets/pdf-effect-queue-BJk5okWJ.js +0 -47
  182. package/src/ui/dist/assets/pdf_viewer-e0g1is2C.js +0 -8206
  183. package/src/ui/dist/assets/popover-D3Gg_FoV.js +0 -476
  184. package/src/ui/dist/assets/project-sync-C_ygLlVU.js +0 -297
  185. package/src/ui/dist/assets/select-CpAK6uWm.js +0 -1690
  186. package/src/ui/dist/assets/sigma-DEccaSgk.js +0 -22
  187. package/src/ui/dist/assets/square-check-big-uUfyVsbD.js +0 -17
  188. package/src/ui/dist/assets/trash-CXvwwSe8.js +0 -32
  189. package/src/ui/dist/assets/useCliAccess-Bnop4mgR.js +0 -957
  190. package/src/ui/dist/assets/useFileDiffOverlay-B8eUAX0I.js +0 -53
  191. package/src/ui/dist/assets/wrap-text-9vbOBpkW.js +0 -35
  192. package/src/ui/dist/assets/yjs-DncrqiZ8.js +0 -11243
  193. package/src/ui/dist/assets/zoom-out-BgVMmOW4.js +0 -34
@@ -1,292 +0,0 @@
1
- import { O as Observable, f as floor, g as getUnixTime, e as equalityDeep, r as readVarUint, a as readVarString, w as writeVarUint, b as writeVarString, t as toUint8Array, c as createEncoder, d as createDecoder } from './function-B5QZkkHC.js';
2
-
3
- /**
4
- * @module awareness-protocol
5
- */
6
-
7
-
8
- const outdatedTimeout = 30000;
9
-
10
- /**
11
- * @typedef {Object} MetaClientState
12
- * @property {number} MetaClientState.clock
13
- * @property {number} MetaClientState.lastUpdated unix timestamp
14
- */
15
-
16
- /**
17
- * The Awareness class implements a simple shared state protocol that can be used for non-persistent data like awareness information
18
- * (cursor, username, status, ..). Each client can update its own local state and listen to state changes of
19
- * remote clients. Every client may set a state of a remote peer to `null` to mark the client as offline.
20
- *
21
- * Each client is identified by a unique client id (something we borrow from `doc.clientID`). A client can override
22
- * its own state by propagating a message with an increasing timestamp (`clock`). If such a message is received, it is
23
- * applied if the known state of that client is older than the new state (`clock < newClock`). If a client thinks that
24
- * a remote client is offline, it may propagate a message with
25
- * `{ clock: currentClientClock, state: null, client: remoteClient }`. If such a
26
- * message is received, and the known clock of that client equals the received clock, it will override the state with `null`.
27
- *
28
- * Before a client disconnects, it should propagate a `null` state with an updated clock.
29
- *
30
- * Awareness states must be updated every 30 seconds. Otherwise the Awareness instance will delete the client state.
31
- *
32
- * @extends {Observable<string>}
33
- */
34
- class Awareness extends Observable {
35
- /**
36
- * @param {Y.Doc} doc
37
- */
38
- constructor (doc) {
39
- super();
40
- this.doc = doc;
41
- /**
42
- * @type {number}
43
- */
44
- this.clientID = doc.clientID;
45
- /**
46
- * Maps from client id to client state
47
- * @type {Map<number, Object<string, any>>}
48
- */
49
- this.states = new Map();
50
- /**
51
- * @type {Map<number, MetaClientState>}
52
- */
53
- this.meta = new Map();
54
- this._checkInterval = /** @type {any} */ (setInterval(() => {
55
- const now = getUnixTime();
56
- if (this.getLocalState() !== null && (outdatedTimeout / 2 <= now - /** @type {{lastUpdated:number}} */ (this.meta.get(this.clientID)).lastUpdated)) {
57
- // renew local clock
58
- this.setLocalState(this.getLocalState());
59
- }
60
- /**
61
- * @type {Array<number>}
62
- */
63
- const remove = [];
64
- this.meta.forEach((meta, clientid) => {
65
- if (clientid !== this.clientID && outdatedTimeout <= now - meta.lastUpdated && this.states.has(clientid)) {
66
- remove.push(clientid);
67
- }
68
- });
69
- if (remove.length > 0) {
70
- removeAwarenessStates(this, remove, 'timeout');
71
- }
72
- }, floor(outdatedTimeout / 10)));
73
- doc.on('destroy', () => {
74
- this.destroy();
75
- });
76
- this.setLocalState({});
77
- }
78
-
79
- destroy () {
80
- this.emit('destroy', [this]);
81
- this.setLocalState(null);
82
- super.destroy();
83
- clearInterval(this._checkInterval);
84
- }
85
-
86
- /**
87
- * @return {Object<string,any>|null}
88
- */
89
- getLocalState () {
90
- return this.states.get(this.clientID) || null
91
- }
92
-
93
- /**
94
- * @param {Object<string,any>|null} state
95
- */
96
- setLocalState (state) {
97
- const clientID = this.clientID;
98
- const currLocalMeta = this.meta.get(clientID);
99
- const clock = currLocalMeta === undefined ? 0 : currLocalMeta.clock + 1;
100
- const prevState = this.states.get(clientID);
101
- if (state === null) {
102
- this.states.delete(clientID);
103
- } else {
104
- this.states.set(clientID, state);
105
- }
106
- this.meta.set(clientID, {
107
- clock,
108
- lastUpdated: getUnixTime()
109
- });
110
- const added = [];
111
- const updated = [];
112
- const filteredUpdated = [];
113
- const removed = [];
114
- if (state === null) {
115
- removed.push(clientID);
116
- } else if (prevState == null) {
117
- if (state != null) {
118
- added.push(clientID);
119
- }
120
- } else {
121
- updated.push(clientID);
122
- if (!equalityDeep(prevState, state)) {
123
- filteredUpdated.push(clientID);
124
- }
125
- }
126
- if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
127
- this.emit('change', [{ added, updated: filteredUpdated, removed }, 'local']);
128
- }
129
- this.emit('update', [{ added, updated, removed }, 'local']);
130
- }
131
-
132
- /**
133
- * @param {string} field
134
- * @param {any} value
135
- */
136
- setLocalStateField (field, value) {
137
- const state = this.getLocalState();
138
- if (state !== null) {
139
- this.setLocalState({
140
- ...state,
141
- [field]: value
142
- });
143
- }
144
- }
145
-
146
- /**
147
- * @return {Map<number,Object<string,any>>}
148
- */
149
- getStates () {
150
- return this.states
151
- }
152
- }
153
-
154
- /**
155
- * Mark (remote) clients as inactive and remove them from the list of active peers.
156
- * This change will be propagated to remote clients.
157
- *
158
- * @param {Awareness} awareness
159
- * @param {Array<number>} clients
160
- * @param {any} origin
161
- */
162
- const removeAwarenessStates = (awareness, clients, origin) => {
163
- const removed = [];
164
- for (let i = 0; i < clients.length; i++) {
165
- const clientID = clients[i];
166
- if (awareness.states.has(clientID)) {
167
- awareness.states.delete(clientID);
168
- if (clientID === awareness.clientID) {
169
- const curMeta = /** @type {MetaClientState} */ (awareness.meta.get(clientID));
170
- awareness.meta.set(clientID, {
171
- clock: curMeta.clock + 1,
172
- lastUpdated: getUnixTime()
173
- });
174
- }
175
- removed.push(clientID);
176
- }
177
- }
178
- if (removed.length > 0) {
179
- awareness.emit('change', [{ added: [], updated: [], removed }, origin]);
180
- awareness.emit('update', [{ added: [], updated: [], removed }, origin]);
181
- }
182
- };
183
-
184
- /**
185
- * @param {Awareness} awareness
186
- * @param {Array<number>} clients
187
- * @return {Uint8Array}
188
- */
189
- const encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => {
190
- const len = clients.length;
191
- const encoder = createEncoder();
192
- writeVarUint(encoder, len);
193
- for (let i = 0; i < len; i++) {
194
- const clientID = clients[i];
195
- const state = states.get(clientID) || null;
196
- const clock = /** @type {MetaClientState} */ (awareness.meta.get(clientID)).clock;
197
- writeVarUint(encoder, clientID);
198
- writeVarUint(encoder, clock);
199
- writeVarString(encoder, JSON.stringify(state));
200
- }
201
- return toUint8Array(encoder)
202
- };
203
-
204
- /**
205
- * Modify the content of an awareness update before re-encoding it to an awareness update.
206
- *
207
- * This might be useful when you have a central server that wants to ensure that clients
208
- * cant hijack somebody elses identity.
209
- *
210
- * @param {Uint8Array} update
211
- * @param {function(any):any} modify
212
- * @return {Uint8Array}
213
- */
214
- const modifyAwarenessUpdate = (update, modify) => {
215
- const decoder = createDecoder(update);
216
- const encoder = createEncoder();
217
- const len = readVarUint(decoder);
218
- writeVarUint(encoder, len);
219
- for (let i = 0; i < len; i++) {
220
- const clientID = readVarUint(decoder);
221
- const clock = readVarUint(decoder);
222
- const state = JSON.parse(readVarString(decoder));
223
- const modifiedState = modify(state);
224
- writeVarUint(encoder, clientID);
225
- writeVarUint(encoder, clock);
226
- writeVarString(encoder, JSON.stringify(modifiedState));
227
- }
228
- return toUint8Array(encoder)
229
- };
230
-
231
- /**
232
- * @param {Awareness} awareness
233
- * @param {Uint8Array} update
234
- * @param {any} origin This will be added to the emitted change event
235
- */
236
- const applyAwarenessUpdate = (awareness, update, origin) => {
237
- const decoder = createDecoder(update);
238
- const timestamp = getUnixTime();
239
- const added = [];
240
- const updated = [];
241
- const filteredUpdated = [];
242
- const removed = [];
243
- const len = readVarUint(decoder);
244
- for (let i = 0; i < len; i++) {
245
- const clientID = readVarUint(decoder);
246
- let clock = readVarUint(decoder);
247
- const state = JSON.parse(readVarString(decoder));
248
- const clientMeta = awareness.meta.get(clientID);
249
- const prevState = awareness.states.get(clientID);
250
- const currClock = clientMeta === undefined ? 0 : clientMeta.clock;
251
- if (currClock < clock || (currClock === clock && state === null && awareness.states.has(clientID))) {
252
- if (state === null) {
253
- // never let a remote client remove this local state
254
- if (clientID === awareness.clientID && awareness.getLocalState() != null) {
255
- // remote client removed the local state. Do not remote state. Broadcast a message indicating
256
- // that this client still exists by increasing the clock
257
- clock++;
258
- } else {
259
- awareness.states.delete(clientID);
260
- }
261
- } else {
262
- awareness.states.set(clientID, state);
263
- }
264
- awareness.meta.set(clientID, {
265
- clock,
266
- lastUpdated: timestamp
267
- });
268
- if (clientMeta === undefined && state !== null) {
269
- added.push(clientID);
270
- } else if (clientMeta !== undefined && state === null) {
271
- removed.push(clientID);
272
- } else if (state !== null) {
273
- if (!equalityDeep(state, prevState)) {
274
- filteredUpdated.push(clientID);
275
- }
276
- updated.push(clientID);
277
- }
278
- }
279
- }
280
- if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
281
- awareness.emit('change', [{
282
- added, updated: filteredUpdated, removed
283
- }, origin]);
284
- }
285
- if (added.length > 0 || updated.length > 0 || removed.length > 0) {
286
- awareness.emit('update', [{
287
- added, updated, removed
288
- }, origin]);
289
- }
290
- };
291
-
292
- export { Awareness, applyAwarenessUpdate, encodeAwarenessUpdate, modifyAwarenessUpdate, outdatedTimeout, removeAwarenessStates };
@@ -1,21 +0,0 @@
1
- import { w as createLucideIcon } from './index-D_E4281X.js';
2
-
3
- /**
4
- * @license lucide-react v0.511.0 - ISC
5
- *
6
- * This source code is licensed under the ISC license.
7
- * See the LICENSE file in the root directory of this source tree.
8
- */
9
-
10
-
11
- const __iconNode = [
12
- ["path", { d: "M12 8V4H8", key: "hb8ula" }],
13
- ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
14
- ["path", { d: "M2 14h2", key: "vft8re" }],
15
- ["path", { d: "M20 14h2", key: "4cs60a" }],
16
- ["path", { d: "M15 13v2", key: "1xurst" }],
17
- ["path", { d: "M9 13v2", key: "rq6x2g" }]
18
- ];
19
- const Bot = createLucideIcon("bot", __iconNode);
20
-
21
- export { Bot as B };