@archipelagolab/lobi 1.0.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.
- package/CHANGELOG.md +164 -0
- package/ENDOFFILE +0 -0
- package/EOF +0 -0
- package/LICENSE +21 -0
- package/SPEC-SUPPORT.md +116 -0
- package/YAMLEND +0 -0
- package/api.ts +18 -0
- package/archipelagolab-lobi-1.0.0.tgz +0 -0
- package/auth-presence.ts +56 -0
- package/channel-plugin-api.ts +3 -0
- package/cli-metadata.ts +11 -0
- package/contract-api.ts +17 -0
- package/docs/CHECKLIST.md +83 -0
- package/docs/FORK_SDK_GUIDE.md +279 -0
- package/helper-api.ts +3 -0
- package/index.test.ts +61 -0
- package/index.ts +65 -0
- package/openclaw.plugin.json +23 -0
- package/package.json +52 -0
- package/plugin-entry.handlers.runtime.ts +1 -0
- package/runtime-api.ts +54 -0
- package/runtime-heavy-api.ts +1 -0
- package/scripts/migrate-to-lobi.sh +72 -0
- package/secret-contract-api.ts +5 -0
- package/setup-entry.ts +13 -0
- package/src/account-selection.test.ts +124 -0
- package/src/account-selection.ts +226 -0
- package/src/actions.account-propagation.test.ts +251 -0
- package/src/actions.test.ts +251 -0
- package/src/actions.ts +336 -0
- package/src/approval-auth.test.ts +23 -0
- package/src/approval-auth.ts +25 -0
- package/src/approval-handler.runtime.test.ts +46 -0
- package/src/approval-handler.runtime.ts +400 -0
- package/src/approval-ids.ts +6 -0
- package/src/approval-native.test.ts +329 -0
- package/src/approval-native.ts +336 -0
- package/src/approval-reactions.test.ts +107 -0
- package/src/approval-reactions.ts +158 -0
- package/src/auth-precedence.ts +61 -0
- package/src/channel-account-paths.ts +92 -0
- package/src/channel.account-paths.test.ts +102 -0
- package/src/channel.directory.test.ts +601 -0
- package/src/channel.resolve.test.ts +38 -0
- package/src/channel.runtime.ts +16 -0
- package/src/channel.setup.test.ts +269 -0
- package/src/channel.ts +570 -0
- package/src/cli-metadata.ts +19 -0
- package/src/cli.test.ts +1015 -0
- package/src/cli.ts +1198 -0
- package/src/config-adapter.ts +41 -0
- package/src/config-schema.test.ts +90 -0
- package/src/config-schema.ts +114 -0
- package/src/directory-live.test.ts +200 -0
- package/src/directory-live.ts +238 -0
- package/src/doctor-contract.ts +287 -0
- package/src/doctor.test.ts +440 -0
- package/src/doctor.ts +262 -0
- package/src/env-vars.ts +92 -0
- package/src/exec-approval-resolver.test.ts +68 -0
- package/src/exec-approval-resolver.ts +23 -0
- package/src/exec-approvals.test.ts +483 -0
- package/src/exec-approvals.ts +290 -0
- package/src/group-mentions.ts +41 -0
- package/src/legacy-crypto-inspector-availability.test.ts +81 -0
- package/src/legacy-crypto-inspector-availability.ts +60 -0
- package/src/legacy-crypto.test.ts +234 -0
- package/src/legacy-crypto.ts +549 -0
- package/src/legacy-state.test.ts +86 -0
- package/src/legacy-state.ts +156 -0
- package/src/matrix/account-config.ts +150 -0
- package/src/matrix/accounts.readiness.test.ts +27 -0
- package/src/matrix/accounts.test.ts +757 -0
- package/src/matrix/accounts.ts +194 -0
- package/src/matrix/actions/client.test.ts +215 -0
- package/src/matrix/actions/client.ts +31 -0
- package/src/matrix/actions/devices.test.ts +114 -0
- package/src/matrix/actions/devices.ts +34 -0
- package/src/matrix/actions/limits.test.ts +15 -0
- package/src/matrix/actions/limits.ts +6 -0
- package/src/matrix/actions/messages.test.ts +289 -0
- package/src/matrix/actions/messages.ts +123 -0
- package/src/matrix/actions/pins.test.ts +74 -0
- package/src/matrix/actions/pins.ts +64 -0
- package/src/matrix/actions/polls.test.ts +71 -0
- package/src/matrix/actions/polls.ts +109 -0
- package/src/matrix/actions/profile.test.ts +109 -0
- package/src/matrix/actions/profile.ts +37 -0
- package/src/matrix/actions/reactions.test.ts +135 -0
- package/src/matrix/actions/reactions.ts +59 -0
- package/src/matrix/actions/room.test.ts +79 -0
- package/src/matrix/actions/room.ts +71 -0
- package/src/matrix/actions/summary.test.ts +87 -0
- package/src/matrix/actions/summary.ts +88 -0
- package/src/matrix/actions/types.ts +82 -0
- package/src/matrix/actions/verification.test.ts +105 -0
- package/src/matrix/actions/verification.ts +237 -0
- package/src/matrix/actions.ts +37 -0
- package/src/matrix/active-client.ts +26 -0
- package/src/matrix/async-lock.ts +18 -0
- package/src/matrix/backup-health.ts +115 -0
- package/src/matrix/client/config-runtime-api.ts +14 -0
- package/src/matrix/client/config-secret-input.runtime.ts +1 -0
- package/src/matrix/client/config.ts +982 -0
- package/src/matrix/client/create-client.test.ts +115 -0
- package/src/matrix/client/create-client.ts +101 -0
- package/src/matrix/client/env-auth.ts +6 -0
- package/src/matrix/client/file-sync-store.test.ts +265 -0
- package/src/matrix/client/file-sync-store.ts +289 -0
- package/src/matrix/client/logging.ts +123 -0
- package/src/matrix/client/migration-snapshot.runtime.ts +1 -0
- package/src/matrix/client/private-network-host.ts +56 -0
- package/src/matrix/client/runtime.ts +4 -0
- package/src/matrix/client/shared.test.ts +344 -0
- package/src/matrix/client/shared.ts +306 -0
- package/src/matrix/client/storage.test.ts +634 -0
- package/src/matrix/client/storage.ts +544 -0
- package/src/matrix/client/types.ts +50 -0
- package/src/matrix/client-bootstrap.test.ts +84 -0
- package/src/matrix/client-bootstrap.ts +164 -0
- package/src/matrix/client-resolver.test-helpers.ts +147 -0
- package/src/matrix/client.test.ts +1521 -0
- package/src/matrix/client.ts +23 -0
- package/src/matrix/config-paths.ts +31 -0
- package/src/matrix/config-update.test.ts +237 -0
- package/src/matrix/config-update.ts +291 -0
- package/src/matrix/credentials-read.ts +206 -0
- package/src/matrix/credentials-write.runtime.ts +26 -0
- package/src/matrix/credentials.test.ts +501 -0
- package/src/matrix/credentials.ts +95 -0
- package/src/matrix/deps.test.ts +74 -0
- package/src/matrix/deps.ts +225 -0
- package/src/matrix/device-health.test.ts +45 -0
- package/src/matrix/device-health.ts +31 -0
- package/src/matrix/direct-management.test.ts +350 -0
- package/src/matrix/direct-management.ts +347 -0
- package/src/matrix/direct-room.test.ts +61 -0
- package/src/matrix/direct-room.ts +128 -0
- package/src/matrix/draft-stream.test.ts +406 -0
- package/src/matrix/draft-stream.ts +216 -0
- package/src/matrix/encryption-guidance.ts +27 -0
- package/src/matrix/errors.ts +21 -0
- package/src/matrix/format.test.ts +340 -0
- package/src/matrix/format.ts +428 -0
- package/src/matrix/legacy-crypto-inspector.ts +95 -0
- package/src/matrix/media-errors.ts +20 -0
- package/src/matrix/media-text.ts +169 -0
- package/src/matrix/monitor/access-state.test.ts +45 -0
- package/src/matrix/monitor/access-state.ts +77 -0
- package/src/matrix/monitor/ack-config.test.ts +57 -0
- package/src/matrix/monitor/ack-config.ts +26 -0
- package/src/matrix/monitor/allowlist.test.ts +45 -0
- package/src/matrix/monitor/allowlist.ts +94 -0
- package/src/matrix/monitor/auto-join.test.ts +203 -0
- package/src/matrix/monitor/auto-join.ts +86 -0
- package/src/matrix/monitor/config.test.ts +197 -0
- package/src/matrix/monitor/config.ts +303 -0
- package/src/matrix/monitor/context-summary.ts +43 -0
- package/src/matrix/monitor/direct.test.ts +529 -0
- package/src/matrix/monitor/direct.ts +270 -0
- package/src/matrix/monitor/events.test.ts +1524 -0
- package/src/matrix/monitor/events.ts +213 -0
- package/src/matrix/monitor/handler.body-for-agent.test.ts +396 -0
- package/src/matrix/monitor/handler.group-history.test.ts +648 -0
- package/src/matrix/monitor/handler.media-failure.test.ts +267 -0
- package/src/matrix/monitor/handler.test-helpers.ts +308 -0
- package/src/matrix/monitor/handler.test.ts +2952 -0
- package/src/matrix/monitor/handler.thread-root-media.test.ts +82 -0
- package/src/matrix/monitor/handler.ts +1679 -0
- package/src/matrix/monitor/inbound-dedupe.test.ts +146 -0
- package/src/matrix/monitor/inbound-dedupe.ts +267 -0
- package/src/matrix/monitor/index.test.ts +920 -0
- package/src/matrix/monitor/index.ts +434 -0
- package/src/matrix/monitor/legacy-crypto-restore.test.ts +206 -0
- package/src/matrix/monitor/legacy-crypto-restore.ts +139 -0
- package/src/matrix/monitor/location.ts +100 -0
- package/src/matrix/monitor/media.test.ts +159 -0
- package/src/matrix/monitor/media.ts +119 -0
- package/src/matrix/monitor/mentions.test.ts +289 -0
- package/src/matrix/monitor/mentions.ts +177 -0
- package/src/matrix/monitor/reaction-events.test.ts +326 -0
- package/src/matrix/monitor/reaction-events.ts +187 -0
- package/src/matrix/monitor/recent-invite.test.ts +92 -0
- package/src/matrix/monitor/recent-invite.ts +30 -0
- package/src/matrix/monitor/replies.test.ts +265 -0
- package/src/matrix/monitor/replies.ts +136 -0
- package/src/matrix/monitor/reply-context.test.ts +276 -0
- package/src/matrix/monitor/reply-context.ts +92 -0
- package/src/matrix/monitor/room-history.test.ts +258 -0
- package/src/matrix/monitor/room-history.ts +301 -0
- package/src/matrix/monitor/room-info.test.ts +201 -0
- package/src/matrix/monitor/room-info.ts +126 -0
- package/src/matrix/monitor/rooms.test.ts +121 -0
- package/src/matrix/monitor/rooms.ts +52 -0
- package/src/matrix/monitor/route.test.ts +255 -0
- package/src/matrix/monitor/route.ts +178 -0
- package/src/matrix/monitor/runtime-api.ts +31 -0
- package/src/matrix/monitor/startup-verification.test.ts +294 -0
- package/src/matrix/monitor/startup-verification.ts +237 -0
- package/src/matrix/monitor/startup.test.ts +257 -0
- package/src/matrix/monitor/startup.ts +218 -0
- package/src/matrix/monitor/status.ts +111 -0
- package/src/matrix/monitor/sync-lifecycle.test.ts +224 -0
- package/src/matrix/monitor/sync-lifecycle.ts +91 -0
- package/src/matrix/monitor/task-runner.ts +38 -0
- package/src/matrix/monitor/thread-context.test.ts +149 -0
- package/src/matrix/monitor/thread-context.ts +108 -0
- package/src/matrix/monitor/threads.test.ts +68 -0
- package/src/matrix/monitor/threads.ts +85 -0
- package/src/matrix/monitor/types.ts +30 -0
- package/src/matrix/monitor/verification-events.ts +627 -0
- package/src/matrix/monitor/verification-utils.test.ts +47 -0
- package/src/matrix/monitor/verification-utils.ts +46 -0
- package/src/matrix/outbound-media-runtime.ts +1 -0
- package/src/matrix/poll-summary.ts +110 -0
- package/src/matrix/poll-types.test.ts +205 -0
- package/src/matrix/poll-types.ts +433 -0
- package/src/matrix/probe.runtime.ts +4 -0
- package/src/matrix/probe.test.ts +154 -0
- package/src/matrix/probe.ts +96 -0
- package/src/matrix/profile.test.ts +154 -0
- package/src/matrix/profile.ts +184 -0
- package/src/matrix/reaction-common.test.ts +96 -0
- package/src/matrix/reaction-common.ts +147 -0
- package/src/matrix/sdk/crypto-bootstrap.test.ts +505 -0
- package/src/matrix/sdk/crypto-bootstrap.ts +341 -0
- package/src/matrix/sdk/crypto-facade.test.ts +197 -0
- package/src/matrix/sdk/crypto-facade.ts +207 -0
- package/src/matrix/sdk/crypto-node.runtime.test.ts +27 -0
- package/src/matrix/sdk/crypto-node.runtime.ts +9 -0
- package/src/matrix/sdk/crypto-runtime.ts +11 -0
- package/src/matrix/sdk/decrypt-bridge.ts +356 -0
- package/src/matrix/sdk/event-helpers.test.ts +60 -0
- package/src/matrix/sdk/event-helpers.ts +71 -0
- package/src/matrix/sdk/http-client.test.ts +134 -0
- package/src/matrix/sdk/http-client.ts +87 -0
- package/src/matrix/sdk/idb-persistence-lock.ts +51 -0
- package/src/matrix/sdk/idb-persistence.lock-order.test.ts +108 -0
- package/src/matrix/sdk/idb-persistence.test-helpers.ts +88 -0
- package/src/matrix/sdk/idb-persistence.test.ts +149 -0
- package/src/matrix/sdk/idb-persistence.ts +283 -0
- package/src/matrix/sdk/logger.test.ts +25 -0
- package/src/matrix/sdk/logger.ts +108 -0
- package/src/matrix/sdk/read-response-with-limit.ts +19 -0
- package/src/matrix/sdk/recovery-key-store.test.ts +385 -0
- package/src/matrix/sdk/recovery-key-store.ts +430 -0
- package/src/matrix/sdk/transport.test.ts +161 -0
- package/src/matrix/sdk/transport.ts +344 -0
- package/src/matrix/sdk/types.ts +236 -0
- package/src/matrix/sdk/verification-manager.test.ts +509 -0
- package/src/matrix/sdk/verification-manager.ts +694 -0
- package/src/matrix/sdk/verification-status.ts +23 -0
- package/src/matrix/sdk.test.ts +2568 -0
- package/src/matrix/sdk.ts +1789 -0
- package/src/matrix/send/client.test.ts +174 -0
- package/src/matrix/send/client.ts +90 -0
- package/src/matrix/send/formatting.ts +189 -0
- package/src/matrix/send/media.ts +244 -0
- package/src/matrix/send/targets.test.ts +254 -0
- package/src/matrix/send/targets.ts +104 -0
- package/src/matrix/send/types.ts +134 -0
- package/src/matrix/send.test.ts +958 -0
- package/src/matrix/send.ts +609 -0
- package/src/matrix/session-store-metadata.ts +108 -0
- package/src/matrix/startup-abort.ts +44 -0
- package/src/matrix/sync-state.ts +27 -0
- package/src/matrix/target-ids.ts +102 -0
- package/src/matrix/thread-bindings-shared.ts +201 -0
- package/src/matrix/thread-bindings.test.ts +673 -0
- package/src/matrix/thread-bindings.ts +577 -0
- package/src/matrix-migration.runtime.ts +9 -0
- package/src/migration-config.test.ts +228 -0
- package/src/migration-config.ts +243 -0
- package/src/migration-snapshot-backup.ts +117 -0
- package/src/migration-snapshot.test.ts +184 -0
- package/src/migration-snapshot.ts +55 -0
- package/src/onboarding.resolve.test.ts +55 -0
- package/src/onboarding.test-harness.ts +158 -0
- package/src/onboarding.test.ts +665 -0
- package/src/onboarding.ts +773 -0
- package/src/outbound.test.ts +173 -0
- package/src/outbound.ts +78 -0
- package/src/plugin-entry.runtime.js +159 -0
- package/src/plugin-entry.runtime.test.ts +108 -0
- package/src/plugin-entry.runtime.ts +68 -0
- package/src/profile-update.ts +68 -0
- package/src/record-shared.ts +3 -0
- package/src/resolve-targets.test.ts +178 -0
- package/src/resolve-targets.ts +175 -0
- package/src/resolver.ts +21 -0
- package/src/runtime-api.ts +144 -0
- package/src/runtime.ts +7 -0
- package/src/secret-contract.ts +174 -0
- package/src/session-route.test.ts +315 -0
- package/src/session-route.ts +113 -0
- package/src/setup-bootstrap.ts +94 -0
- package/src/setup-config.ts +222 -0
- package/src/setup-contract.ts +89 -0
- package/src/setup-core.test.ts +326 -0
- package/src/setup-core.ts +50 -0
- package/src/setup-surface.ts +4 -0
- package/src/startup-maintenance.test.ts +227 -0
- package/src/startup-maintenance.ts +114 -0
- package/src/storage-paths.ts +92 -0
- package/src/test-helpers.ts +42 -0
- package/src/test-mocks.ts +55 -0
- package/src/test-runtime.ts +72 -0
- package/src/test-support/monitor-route-test-support.ts +8 -0
- package/src/tool-actions.runtime.ts +1 -0
- package/src/tool-actions.test.ts +422 -0
- package/src/tool-actions.ts +498 -0
- package/src/types.ts +230 -0
- package/test-api.ts +2 -0
- package/thread-bindings-runtime.ts +4 -0
- package/tsconfig.json +16 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 2026.4.10
|
|
4
|
+
|
|
5
|
+
### Changes
|
|
6
|
+
|
|
7
|
+
- Version alignment with core OpenClaw release numbers.
|
|
8
|
+
|
|
9
|
+
## 2026.4.8
|
|
10
|
+
|
|
11
|
+
### Changes
|
|
12
|
+
|
|
13
|
+
- Version alignment with core OpenClaw release numbers.
|
|
14
|
+
|
|
15
|
+
## 2026.4.7
|
|
16
|
+
|
|
17
|
+
### Changes
|
|
18
|
+
|
|
19
|
+
- Version alignment with core OpenClaw release numbers.
|
|
20
|
+
|
|
21
|
+
## 2026.4.6
|
|
22
|
+
|
|
23
|
+
### Changes
|
|
24
|
+
|
|
25
|
+
- Version alignment with core OpenClaw release numbers.
|
|
26
|
+
|
|
27
|
+
## 2026.4.5
|
|
28
|
+
|
|
29
|
+
### Changes
|
|
30
|
+
|
|
31
|
+
- Version alignment with core OpenClaw release numbers.
|
|
32
|
+
|
|
33
|
+
## 2026.4.4
|
|
34
|
+
|
|
35
|
+
### Changes
|
|
36
|
+
|
|
37
|
+
- Version alignment with core OpenClaw release numbers.
|
|
38
|
+
|
|
39
|
+
## 2026.4.1-beta.1
|
|
40
|
+
|
|
41
|
+
### Changes
|
|
42
|
+
|
|
43
|
+
- Version alignment with core OpenClaw release numbers.
|
|
44
|
+
|
|
45
|
+
## 2026.4.1
|
|
46
|
+
|
|
47
|
+
### Changes
|
|
48
|
+
|
|
49
|
+
- Version alignment with core OpenClaw release numbers.
|
|
50
|
+
|
|
51
|
+
## 2026.3.31
|
|
52
|
+
|
|
53
|
+
### Changes
|
|
54
|
+
|
|
55
|
+
- Version alignment with core OpenClaw release numbers.
|
|
56
|
+
|
|
57
|
+
## 2026.3.14
|
|
58
|
+
|
|
59
|
+
### Changes
|
|
60
|
+
|
|
61
|
+
- Version alignment with core OpenClaw release numbers.
|
|
62
|
+
|
|
63
|
+
## 2026.3.13
|
|
64
|
+
|
|
65
|
+
### Changes
|
|
66
|
+
|
|
67
|
+
- Version alignment with core OpenClaw release numbers.
|
|
68
|
+
|
|
69
|
+
## 2026.3.12
|
|
70
|
+
|
|
71
|
+
### Changes
|
|
72
|
+
|
|
73
|
+
- Version alignment with core OpenClaw release numbers.
|
|
74
|
+
|
|
75
|
+
## 2026.3.11
|
|
76
|
+
|
|
77
|
+
### Changes
|
|
78
|
+
|
|
79
|
+
- Version alignment with core OpenClaw release numbers.
|
|
80
|
+
|
|
81
|
+
## 2026.3.10
|
|
82
|
+
|
|
83
|
+
### Changes
|
|
84
|
+
|
|
85
|
+
- Version alignment with core OpenClaw release numbers.
|
|
86
|
+
|
|
87
|
+
## 2026.3.9
|
|
88
|
+
|
|
89
|
+
### Changes
|
|
90
|
+
|
|
91
|
+
- Version alignment with core OpenClaw release numbers.
|
|
92
|
+
|
|
93
|
+
## 2026.3.8-beta.1
|
|
94
|
+
|
|
95
|
+
### Changes
|
|
96
|
+
|
|
97
|
+
- Version alignment with core OpenClaw release numbers.
|
|
98
|
+
|
|
99
|
+
## 2026.3.8
|
|
100
|
+
|
|
101
|
+
### Changes
|
|
102
|
+
|
|
103
|
+
- Version alignment with core OpenClaw release numbers.
|
|
104
|
+
|
|
105
|
+
## 2026.3.7
|
|
106
|
+
|
|
107
|
+
### Changes
|
|
108
|
+
|
|
109
|
+
- Version alignment with core OpenClaw release numbers.
|
|
110
|
+
|
|
111
|
+
## 2026.3.3
|
|
112
|
+
|
|
113
|
+
### Changes
|
|
114
|
+
|
|
115
|
+
- Version alignment with core OpenClaw release numbers.
|
|
116
|
+
|
|
117
|
+
## 2026.3.2
|
|
118
|
+
|
|
119
|
+
### Changes
|
|
120
|
+
|
|
121
|
+
- Version alignment with core OpenClaw release numbers.
|
|
122
|
+
|
|
123
|
+
## 2026.3.1
|
|
124
|
+
|
|
125
|
+
### Changes
|
|
126
|
+
|
|
127
|
+
- Version alignment with core OpenClaw release numbers.
|
|
128
|
+
|
|
129
|
+
## 2026.2.26
|
|
130
|
+
|
|
131
|
+
### Changes
|
|
132
|
+
|
|
133
|
+
- Version alignment with core OpenClaw release numbers.
|
|
134
|
+
|
|
135
|
+
## 2026.2.25
|
|
136
|
+
|
|
137
|
+
### Changes
|
|
138
|
+
|
|
139
|
+
- Version alignment with core OpenClaw release numbers.
|
|
140
|
+
|
|
141
|
+
## 2026.2.24
|
|
142
|
+
|
|
143
|
+
### Changes
|
|
144
|
+
|
|
145
|
+
- Version alignment with core OpenClaw release numbers.
|
|
146
|
+
|
|
147
|
+
## 2026.2.22
|
|
148
|
+
|
|
149
|
+
### Changes
|
|
150
|
+
|
|
151
|
+
- Version alignment with core OpenClaw release numbers.
|
|
152
|
+
|
|
153
|
+
## 2026.1.14
|
|
154
|
+
|
|
155
|
+
### Features
|
|
156
|
+
|
|
157
|
+
- Matrix channel plugin with homeserver + user ID auth (access token or password login with device name).
|
|
158
|
+
- Direct messages with pairing/allowlist/open/disabled policies and allowFrom support.
|
|
159
|
+
- Group/room controls: allowlist policy, per-room config, mention gating, auto-reply, per-room skills/system prompts.
|
|
160
|
+
- Threads: replyToMode controls and thread replies (off/inbound/always).
|
|
161
|
+
- Messaging: text chunking, media uploads with size caps, reactions, polls, typing, and message edits/deletes.
|
|
162
|
+
- Actions: read messages, list/remove reactions, pin/unpin/list pins, member info, room info.
|
|
163
|
+
- Auto-join invites with allowlist support.
|
|
164
|
+
- Status + probe reporting for health checks.
|
package/ENDOFFILE
ADDED
|
File without changes
|
package/EOF
ADDED
|
File without changes
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Peter Steinberger
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/SPEC-SUPPORT.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Matrix Spec Support
|
|
2
|
+
|
|
3
|
+
Current Matrix spec/event support tracked for the bundled Matrix plugin.
|
|
4
|
+
|
|
5
|
+
Scope:
|
|
6
|
+
|
|
7
|
+
- code-backed today-state only
|
|
8
|
+
- plugin behavior only; not a claim of full Matrix spec coverage
|
|
9
|
+
- update this file when adding or removing Matrix event/spec support
|
|
10
|
+
|
|
11
|
+
Legend:
|
|
12
|
+
|
|
13
|
+
- `in`: inbound handling
|
|
14
|
+
- `out`: outbound send/edit/emit
|
|
15
|
+
- `tools`: CLI/action/runtime tooling built on that surface
|
|
16
|
+
|
|
17
|
+
## Support Matrix
|
|
18
|
+
|
|
19
|
+
| Surface | Spec / event ids | Support | Notes | Evidence |
|
|
20
|
+
| ------------------------ | -------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
|
|
21
|
+
| Core messages | `m.room.message` | in/out/tools | base text/media message surface | `src/matrix/send/types.ts`, `src/matrix/actions/messages.ts` |
|
|
22
|
+
| Rich text | `org.matrix.custom.html` | out | Markdown rendered to Matrix HTML | `src/matrix/send/formatting.ts` |
|
|
23
|
+
| Replies | `m.in_reply_to` | in/out | reply relation support | `src/matrix/send/formatting.ts` |
|
|
24
|
+
| Edits | `m.replace` | in/out/tools | Matrix edit flow; edit body uses `* <text>` fallback format | `src/matrix/send/types.ts`, `src/matrix/draft-stream.test.ts` |
|
|
25
|
+
| Threads | `m.thread` | in/out/tools | thread send, routing, session/thread policy | `src/matrix/send/types.ts`, `src/matrix/monitor/types.ts`, `src/matrix/monitor/threads.test.ts` |
|
|
26
|
+
| Direct rooms | `m.direct` | in/out/tools | DM routing, cache, repair, outbound target selection | `src/matrix/send/types.ts`, `src/matrix/sdk.ts`, `src/matrix/send/targets.test.ts`, `src/matrix/direct-management.test.ts` |
|
|
27
|
+
| Reactions | `m.reaction`, `m.annotation` | in/out/tools | send, summarize, inbound reaction routing | `src/matrix/reaction-common.ts`, `src/matrix/monitor/reaction-events.test.ts` |
|
|
28
|
+
| Read receipts | `m.read` | out | sent on inbound message receipt | `src/matrix/sdk.ts`, `src/matrix/monitor/handler.ts` |
|
|
29
|
+
| Typing | typing API | out | typing keepalive while reply runs | `src/matrix/sdk.ts`, `src/matrix/send.ts`, `src/matrix/monitor/handler.ts` |
|
|
30
|
+
| Mentions | `m.mentions` | in/out/tools | stable mention metadata on sends/edits/media captions/poll fallback text | `src/matrix/send/formatting.ts`, `src/matrix/monitor/mentions.ts`, `src/matrix/send.test.ts` |
|
|
31
|
+
| Mention link compat | `https://matrix.to/#/...` | in/out | emit + validate visible-label mentions in formatted HTML | `src/matrix/format.ts`, `src/matrix/monitor/mentions.ts` |
|
|
32
|
+
| Polls | `m.poll.start`, `m.poll.response`, `m.poll.end` | in/out/tools | stable poll create/read/vote/summary flow | `src/matrix/poll-types.ts`, `src/matrix/actions/polls.ts`, `src/matrix/poll-summary.ts` |
|
|
33
|
+
| Poll compat | `org.matrix.msc3381.poll.start`, `org.matrix.msc3381.poll.response`, `org.matrix.msc3381.poll.end` | in/out | unstable poll compat still emitted/parsed where needed | `src/matrix/poll-types.ts`, `src/matrix/send.test.ts` |
|
|
34
|
+
| Poll relations | `m.reference` | in/out/tools | poll votes/results linked to root poll event | `src/matrix/poll-types.ts`, `src/matrix/actions/polls.ts`, `src/matrix/poll-summary.ts` |
|
|
35
|
+
| Extensible text fallback | `org.matrix.msc1767.text` | in/out | poll text fallback/compat | `src/matrix/poll-types.ts` |
|
|
36
|
+
| Voice messages | `org.matrix.msc3245.voice` | out | voice-bubble marker on compatible audio sends | `src/matrix/send/media.ts`, `src/matrix/send/types.ts` |
|
|
37
|
+
| Voice audio metadata | `org.matrix.msc1767.audio` | out | duration metadata for voice sends | `src/matrix/send/media.ts`, `src/matrix/send/types.ts` |
|
|
38
|
+
| Location | `m.location`, `geo:` | in | inbound parse to text/context; no outbound location send tracked here | `src/matrix/monitor/types.ts`, `src/matrix/monitor/location.ts`, `src/matrix/monitor/handler.ts` |
|
|
39
|
+
| E2EE room events | `m.room.encrypted` | in/out/tools | encrypted event hydration, decrypt, encrypted media send | `src/matrix/monitor/types.ts`, `src/matrix/sdk.ts`, `docs/channels/matrix.md` |
|
|
40
|
+
| Encrypted media previews | `file`, `thumbnail_file` | out | encrypted thumbnails for encrypted image events | `src/matrix/send/media.ts`, `docs/channels/matrix.md` |
|
|
41
|
+
| Device verification | `m.key.verification.*`, `m.key.verification.request` | in/tools | request/ready/start/SAS/done/cancel notices and CLI flows | `src/matrix/monitor/verification-utils.ts`, `src/matrix/monitor/events.test.ts`, `docs/channels/matrix.md` |
|
|
42
|
+
| Streaming/live markers | `org.matrix.msc4357.live` | out | live draft/edit markers for partial streaming | `src/matrix/send/types.ts`, `src/matrix/send.ts`, `src/matrix/draft-stream.ts` |
|
|
43
|
+
|
|
44
|
+
## Explicit MSCs In Use
|
|
45
|
+
|
|
46
|
+
These MSCs are explicitly referenced in the plugin today:
|
|
47
|
+
|
|
48
|
+
- `MSC3381`: polls
|
|
49
|
+
- `MSC1767`: extensible-events fallback fields used for polls and voice metadata
|
|
50
|
+
- `MSC3245`: voice message marker
|
|
51
|
+
- `MSC4357`: live streaming marker
|
|
52
|
+
|
|
53
|
+
Evidence:
|
|
54
|
+
|
|
55
|
+
- `src/matrix/poll-types.ts`
|
|
56
|
+
- `src/matrix/send/media.ts`
|
|
57
|
+
- `src/matrix/send/types.ts`
|
|
58
|
+
- `src/matrix/draft-stream.ts`
|
|
59
|
+
|
|
60
|
+
## Non-goals
|
|
61
|
+
|
|
62
|
+
This file does not claim:
|
|
63
|
+
|
|
64
|
+
- full client-server API coverage
|
|
65
|
+
- full room-state/event coverage inherited from `matrix-js-sdk`
|
|
66
|
+
- outbound support for any surface not listed above
|
|
67
|
+
|
|
68
|
+
If a new Matrix feature lands, add a row with:
|
|
69
|
+
|
|
70
|
+
1. exact event/spec id
|
|
71
|
+
2. support shape (`in`, `out`, `tools`)
|
|
72
|
+
3. at least one code path proving it
|
|
73
|
+
|
|
74
|
+
## Missing / Candidate Specs
|
|
75
|
+
|
|
76
|
+
Recommended next additions, prioritized by user-visible value and closeness to current code:
|
|
77
|
+
|
|
78
|
+
| Priority | Surface | Spec / event ids | Why add it | Current gap |
|
|
79
|
+
| -------- | ----------------------------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
80
|
+
| high | Sticker messages | `m.sticker` | stable spec; common client surface; we already classify sticker attachments on read paths | no explicit inbound `m.sticker` event handling and no outbound sticker send path |
|
|
81
|
+
| high | Outbound location messages | `m.location`, `geo_uri` | stable spec; docs already say Matrix supports location, but current implementation is inbound-only | no outbound location send/action API |
|
|
82
|
+
| medium | Private + richer read markers | `m.read.private`, `m.fully_read` | stable spec; better privacy and cleaner read-state behavior than public-only `m.read` | current code only sends public `m.read` receipts |
|
|
83
|
+
| medium | Thread-aware receipts | `m.read` with `thread_id` | stable spec; better alignment with Matrix thread UX | current receipt send path has no `thread_id` support |
|
|
84
|
+
| medium | Unread markers | `m.marked_unread` | stable spec; useful for operator workflows and room triage tooling | no room account-data support for unread markers |
|
|
85
|
+
| low | Emote messages | `m.emote` | stable spec; easy parity win for bots/action tools | no explicit send/action support |
|
|
86
|
+
| low | Poll close parity | `m.poll.end`, `org.matrix.msc3381.poll.end` | completes the poll lifecycle on a surface we already parse | plugin parses poll-end events but does not expose an outbound close flow |
|
|
87
|
+
| low | Animated media metadata | `info.is_animated` on `m.image` / `m.sticker` | newer stable metadata; helps clients decide whether to fetch/render animated originals | media info builders do not populate animation metadata |
|
|
88
|
+
|
|
89
|
+
### Why these are listed
|
|
90
|
+
|
|
91
|
+
- `m.sticker` is a stable spec surface in the latest Matrix Client-Server API, and the plugin already has partial sticker awareness in message summarization.
|
|
92
|
+
- `m.location` is a stable spec surface in the latest Matrix Client-Server API. The plugin currently parses inbound location events from `geo_uri`, but does not send them.
|
|
93
|
+
- `m.read.private`, `m.fully_read`, and threaded receipts are stable read-marker/read-receipt surfaces in the latest Matrix Client-Server API. The plugin currently posts plain `m.read` receipts only.
|
|
94
|
+
- `m.marked_unread` is a stable room account-data surface in the latest Matrix Client-Server API and would be useful if Matrix actions grow more operator/client-like room triage controls.
|
|
95
|
+
- `m.emote` is a stable message type and a relatively small addition compared with the items above.
|
|
96
|
+
- `m.poll.end` is already represented in local poll types, so exposing a close-poll send/tool flow is a contained follow-up.
|
|
97
|
+
- `info.is_animated` is a smaller metadata-parity item, but easy to miss once sticker support exists.
|
|
98
|
+
|
|
99
|
+
### Probably not worth prioritizing here
|
|
100
|
+
|
|
101
|
+
- VoIP / `m.call.*`: valid Matrix spec area and a plausible future direction here, just not a near-term priority relative to messaging, receipt, and room-state gaps.
|
|
102
|
+
|
|
103
|
+
### Gap Evidence
|
|
104
|
+
|
|
105
|
+
- sticker partial only: `src/matrix/media-text.ts`
|
|
106
|
+
- location inbound only: `src/matrix/monitor/location.ts`, `src/matrix/monitor/handler.ts`
|
|
107
|
+
- public receipt only: `src/matrix/sdk.ts`, `src/matrix/send.ts`, `src/matrix/monitor/handler.ts`
|
|
108
|
+
- poll-end constants only: `src/matrix/poll-types.ts`
|
|
109
|
+
- no animation metadata emit: `src/matrix/send/media.ts`
|
|
110
|
+
|
|
111
|
+
### External Spec References
|
|
112
|
+
|
|
113
|
+
- latest Matrix Client-Server API: <https://spec.matrix.org/latest/client-server-api/index.html>
|
|
114
|
+
- `m.sticker`: <https://spec.matrix.org/latest/client-server-api/#msticker>
|
|
115
|
+
- `m.location`: <https://spec.matrix.org/latest/client-server-api/#mlocation>
|
|
116
|
+
- receipts and read markers (`m.read.private`, `m.fully_read`, `m.marked_unread`): <https://spec.matrix.org/latest/client-server-api/#receipts>
|
package/YAMLEND
ADDED
|
File without changes
|
package/api.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { matrixPlugin } from "./src/channel.js";
|
|
2
|
+
export * from "./src/setup-core.js";
|
|
3
|
+
export * from "./src/setup-surface.js";
|
|
4
|
+
export * from "./src/account-selection.js";
|
|
5
|
+
export * from "./src/env-vars.js";
|
|
6
|
+
export * from "./src/storage-paths.js";
|
|
7
|
+
export {
|
|
8
|
+
createMatrixThreadBindingManager,
|
|
9
|
+
getMatrixThreadBindingManager,
|
|
10
|
+
resetMatrixThreadBindingsForTests,
|
|
11
|
+
} from "./src/matrix/thread-bindings.js";
|
|
12
|
+
export {
|
|
13
|
+
setMatrixThreadBindingIdleTimeoutBySessionKey,
|
|
14
|
+
setMatrixThreadBindingMaxAgeBySessionKey,
|
|
15
|
+
} from "./src/matrix/thread-bindings-shared.js";
|
|
16
|
+
export { matrixOnboardingAdapter as matrixSetupWizard } from "./src/onboarding.js";
|
|
17
|
+
|
|
18
|
+
export const matrixSessionBindingAdapterChannels = ["matrix"] as const;
|
|
Binary file
|
package/auth-presence.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime";
|
|
5
|
+
import { resolveStateDir } from "openclaw/plugin-sdk/state-paths";
|
|
6
|
+
import {
|
|
7
|
+
resolveMatrixCredentialsDir,
|
|
8
|
+
resolveMatrixCredentialsFilename,
|
|
9
|
+
} from "./src/storage-paths.js";
|
|
10
|
+
|
|
11
|
+
type MatrixAuthPresenceParams =
|
|
12
|
+
| {
|
|
13
|
+
cfg: OpenClawConfig;
|
|
14
|
+
env?: NodeJS.ProcessEnv;
|
|
15
|
+
}
|
|
16
|
+
| OpenClawConfig;
|
|
17
|
+
|
|
18
|
+
function listMatrixCredentialPaths(
|
|
19
|
+
_cfg: OpenClawConfig,
|
|
20
|
+
env: NodeJS.ProcessEnv = process.env,
|
|
21
|
+
): readonly string[] {
|
|
22
|
+
const credentialsDir = resolveMatrixCredentialsDir(resolveStateDir(env, os.homedir));
|
|
23
|
+
const paths = new Set<string>([
|
|
24
|
+
resolveMatrixCredentialsFilename(),
|
|
25
|
+
resolveMatrixCredentialsFilename("default"),
|
|
26
|
+
]);
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
const entries = fs.readdirSync(credentialsDir, { withFileTypes: true });
|
|
30
|
+
for (const entry of entries) {
|
|
31
|
+
if (entry.isFile() && /^credentials(?:-[a-z0-9._-]+)?\.json$/i.test(entry.name)) {
|
|
32
|
+
paths.add(entry.name);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
} catch {
|
|
36
|
+
// Missing credentials directories mean no persisted Matrix auth state.
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return [...paths].map((filename) => path.join(credentialsDir, filename));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function hasAnyLobiAuth(
|
|
43
|
+
params: MatrixAuthPresenceParams,
|
|
44
|
+
env: NodeJS.ProcessEnv = process.env,
|
|
45
|
+
): boolean {
|
|
46
|
+
const cfg = params && typeof params === "object" && "cfg" in params ? params.cfg : params;
|
|
47
|
+
const resolvedEnv =
|
|
48
|
+
params && typeof params === "object" && "cfg" in params ? (params.env ?? env) : env;
|
|
49
|
+
return listMatrixCredentialPaths(cfg, resolvedEnv).some((filePath) => {
|
|
50
|
+
try {
|
|
51
|
+
return fs.existsSync(filePath);
|
|
52
|
+
} catch {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
package/cli-metadata.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
2
|
+
import { registerMatrixCliMetadata } from "./src/cli-metadata.js";
|
|
3
|
+
|
|
4
|
+
export { registerMatrixCliMetadata } from "./src/cli-metadata.js";
|
|
5
|
+
|
|
6
|
+
export default definePluginEntry({
|
|
7
|
+
id: "lobi",
|
|
8
|
+
name: "Lobi",
|
|
9
|
+
description: "Lobi - The official A2A (Agent-to-Agent) messaging platform by Lobisland. Purpose-built for AI agents to communicate and collaborate seamlessly.",
|
|
10
|
+
register: registerMatrixCliMetadata,
|
|
11
|
+
});
|
package/contract-api.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export {
|
|
2
|
+
createMatrixThreadBindingManager,
|
|
3
|
+
resetMatrixThreadBindingsForTests,
|
|
4
|
+
} from "./src/matrix/thread-bindings.js";
|
|
5
|
+
export { setMatrixRuntime } from "./src/runtime.js";
|
|
6
|
+
export { normalizeCompatibilityConfig, legacyConfigRules } from "./src/doctor-contract.js";
|
|
7
|
+
export {
|
|
8
|
+
namedAccountPromotionKeys,
|
|
9
|
+
resolveSingleAccountPromotionTarget,
|
|
10
|
+
singleAccountKeysToMove,
|
|
11
|
+
} from "./src/setup-contract.js";
|
|
12
|
+
export {
|
|
13
|
+
collectRuntimeConfigAssignments,
|
|
14
|
+
secretTargetRegistryEntries,
|
|
15
|
+
} from "./src/secret-contract.js";
|
|
16
|
+
export { matrixSetupAdapter } from "./src/setup-core.js";
|
|
17
|
+
export { matrixSetupWizard } from "./src/setup-surface.js";
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Matrix 到 Lobi 迁移检查清单
|
|
2
|
+
|
|
3
|
+
## 阶段 1: Fork SDK
|
|
4
|
+
|
|
5
|
+
- [ ] Fork matrix-js-sdk 官方仓库
|
|
6
|
+
- [ ] 检出 v41.3.0 标签
|
|
7
|
+
- [ ] 创建 lobi-fork 分支
|
|
8
|
+
- [ ] 执行路径替换脚本
|
|
9
|
+
- [ ] 验证替换结果(无残留 `_matrix` 路径)
|
|
10
|
+
- [ ] 修改 package.json 包名为 `@your-org/lobi-js-sdk`
|
|
11
|
+
- [ ] 构建 SDK
|
|
12
|
+
- [ ] 发布到 npm/registry
|
|
13
|
+
|
|
14
|
+
## 阶段 2: 修改插件代码
|
|
15
|
+
|
|
16
|
+
### package.json 修改
|
|
17
|
+
- [ ] 替换 `matrix-js-sdk` 为 `@your-org/lobi-js-sdk`
|
|
18
|
+
- [ ] 更新版本号
|
|
19
|
+
|
|
20
|
+
### 导入路径替换
|
|
21
|
+
需要修改以下文件中的 `from "matrix-js-sdk` 为 `from "@your-org/lobi-js-sdk`:
|
|
22
|
+
|
|
23
|
+
- [ ] `src/matrix/sdk.ts`
|
|
24
|
+
- [ ] `src/matrix/client/logging.ts`
|
|
25
|
+
- [ ] `src/matrix/client/file-sync-store.ts`
|
|
26
|
+
- [ ] `src/matrix/sdk/decrypt-bridge.ts`
|
|
27
|
+
- [ ] `src/matrix/sdk/verification-manager.ts`
|
|
28
|
+
- [ ] `src/matrix/sdk/crypto-bootstrap.ts`
|
|
29
|
+
- [ ] `src/matrix/sdk/recovery-key-store.ts`
|
|
30
|
+
- [ ] `src/matrix/sdk/event-helpers.ts`
|
|
31
|
+
- [ ] `src/matrix/sdk/crypto-facade.ts`
|
|
32
|
+
|
|
33
|
+
### 硬编码 API 路径替换
|
|
34
|
+
需要修改以下文件中的 `/_matrix/` 为 `/_lobi/`:
|
|
35
|
+
|
|
36
|
+
- [ ] `src/matrix/client/config.ts` (2 处)
|
|
37
|
+
- [ ] Line 143: `/_matrix/client/v3/account/whoami`
|
|
38
|
+
- [ ] Line 860: `/_matrix/client/v3/login`
|
|
39
|
+
|
|
40
|
+
- [ ] `src/matrix/sdk.ts` (7 处)
|
|
41
|
+
- [ ] Line 689: `/_matrix/client/v3/account/whoami`
|
|
42
|
+
- [ ] Line 882: `/_matrix/client/v1/media/download/...`
|
|
43
|
+
- [ ] Line 891: `/_matrix/media/v3/download/...`
|
|
44
|
+
- [ ] Line 969: `/_matrix/client/v3/rooms/.../receipt/m.read/...`
|
|
45
|
+
- [ ] Line 1288: `/_matrix/client/v3/room_keys/version/...`
|
|
46
|
+
- [ ] Line 1361: `/_matrix/client/v3/keys/query`
|
|
47
|
+
- [ ] Line 1624: `/_matrix/client/v3/room_keys/version`
|
|
48
|
+
|
|
49
|
+
- [ ] `src/directory-live.ts` (4 处)
|
|
50
|
+
- [ ] Line 126: `/_matrix/client/v3/user_directory/search`
|
|
51
|
+
- [ ] Line 158: `/_matrix/client/v3/directory/room/...`
|
|
52
|
+
- [ ] Line 173: `/_matrix/client/v3/rooms/.../state/m.room.name`
|
|
53
|
+
- [ ] Line 214: `/_matrix/client/v3/joined_rooms`
|
|
54
|
+
|
|
55
|
+
- [ ] `src/matrix/actions/messages.ts` (1 处)
|
|
56
|
+
- [ ] Line 86: `/_matrix/client/v3/rooms/.../messages`
|
|
57
|
+
|
|
58
|
+
- [ ] `src/matrix/reaction-common.ts` (1 处)
|
|
59
|
+
- [ ] Line 61: `/_matrix/client/v1/rooms/.../relations/...`
|
|
60
|
+
|
|
61
|
+
## 阶段 3: 安装与构建
|
|
62
|
+
|
|
63
|
+
- [ ] 删除 node_modules 和 lock 文件
|
|
64
|
+
- [ ] 运行 `pnpm install`
|
|
65
|
+
- [ ] 运行 `pnpm build`
|
|
66
|
+
- [ ] 检查构建输出无错误
|
|
67
|
+
|
|
68
|
+
## 阶段 4: 测试验证
|
|
69
|
+
|
|
70
|
+
- [ ] 运行单元测试
|
|
71
|
+
- [ ] 配置 Lobi 服务器连接
|
|
72
|
+
- [ ] 测试登录功能
|
|
73
|
+
- [ ] 测试消息发送
|
|
74
|
+
- [ ] 测试消息接收
|
|
75
|
+
- [ ] 测试房间操作
|
|
76
|
+
- [ ] 测试加密功能(如启用)
|
|
77
|
+
|
|
78
|
+
## 已知问题与注意事项
|
|
79
|
+
|
|
80
|
+
1. **加密模块**: 检查 `@matrix-org/matrix-sdk-crypto-nodejs` 是否也包含硬编码路径
|
|
81
|
+
2. **媒体下载**: SDK 内部可能使用 `/_matrix/media/v3/download` 路径
|
|
82
|
+
3. **版本升级**: 记录当前使用的 SDK 版本 (v41.3.0)
|
|
83
|
+
4. **API 兼容性**: 确认 Lobi 与 Matrix 协议的兼容性
|