@zhin.js/adapter-satori 1.0.1 → 1.1.2

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 (69) hide show
  1. package/CHANGELOG.md +912 -0
  2. package/README.md +60 -38
  3. package/adapters/satori/index.js +38 -0
  4. package/adapters/satori/index.ts +49 -0
  5. package/commands/satori/endpoint/add/[id]/index.js +3 -0
  6. package/commands/satori/endpoint/add/[id]/index.ts +3 -0
  7. package/commands/satori/endpoint/definition.js +19 -0
  8. package/commands/satori/endpoint/definition.ts +19 -0
  9. package/commands/satori/endpoint/list/index.js +3 -0
  10. package/commands/satori/endpoint/list/index.ts +3 -0
  11. package/commands/satori/endpoint/remove/[id]/index.js +3 -0
  12. package/commands/satori/endpoint/remove/[id]/index.ts +3 -0
  13. package/lib/client.d.ts +18 -0
  14. package/lib/client.js +21 -0
  15. package/lib/endpoint.d.ts +56 -0
  16. package/lib/endpoint.js +472 -0
  17. package/lib/index.d.ts +8 -18
  18. package/lib/index.js +6 -25
  19. package/lib/protocol.d.ts +148 -0
  20. package/lib/protocol.js +230 -0
  21. package/lib/satori-runtime-state.d.ts +1 -0
  22. package/lib/satori-runtime-state.js +6 -0
  23. package/lib/webhook.d.ts +12 -0
  24. package/lib/webhook.js +60 -0
  25. package/lib/ws.d.ts +13 -0
  26. package/lib/ws.js +5 -0
  27. package/package.json +68 -17
  28. package/plugin.js +14 -0
  29. package/schema.json +109 -0
  30. package/src/client.ts +57 -0
  31. package/src/endpoint.ts +580 -0
  32. package/src/index.ts +61 -35
  33. package/src/protocol.ts +353 -0
  34. package/src/satori-runtime-state.ts +7 -0
  35. package/src/webhook.ts +79 -0
  36. package/src/ws.ts +22 -0
  37. package/lib/adapter.d.ts +0 -17
  38. package/lib/adapter.d.ts.map +0 -1
  39. package/lib/adapter.js +0 -35
  40. package/lib/adapter.js.map +0 -1
  41. package/lib/api.d.ts +0 -15
  42. package/lib/api.d.ts.map +0 -1
  43. package/lib/api.js +0 -37
  44. package/lib/api.js.map +0 -1
  45. package/lib/endpoint-webhook.d.ts +0 -27
  46. package/lib/endpoint-webhook.d.ts.map +0 -1
  47. package/lib/endpoint-webhook.js +0 -99
  48. package/lib/endpoint-webhook.js.map +0 -1
  49. package/lib/endpoint-ws.d.ts +0 -30
  50. package/lib/endpoint-ws.d.ts.map +0 -1
  51. package/lib/endpoint-ws.js +0 -195
  52. package/lib/endpoint-ws.js.map +0 -1
  53. package/lib/index.d.ts.map +0 -1
  54. package/lib/index.js.map +0 -1
  55. package/lib/types.d.ts +0 -91
  56. package/lib/types.d.ts.map +0 -1
  57. package/lib/types.js +0 -13
  58. package/lib/types.js.map +0 -1
  59. package/lib/utils.d.ts +0 -40
  60. package/lib/utils.d.ts.map +0 -1
  61. package/lib/utils.js +0 -33
  62. package/lib/utils.js.map +0 -1
  63. package/skills/satori/SKILL.md +0 -33
  64. package/src/adapter.ts +0 -48
  65. package/src/api.ts +0 -48
  66. package/src/endpoint-webhook.ts +0 -117
  67. package/src/endpoint-ws.ts +0 -214
  68. package/src/types.ts +0 -91
  69. package/src/utils.ts +0 -64
package/CHANGELOG.md ADDED
@@ -0,0 +1,912 @@
1
+ # @zhin.js/adapter-satori
2
+
3
+ ## 1.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - a9e4a40: Derive Command user routes only from explicit `commands/**/*/index.ts(x)` entry paths instead of prepending the plugin owner. Child plugins can now publish top-level static or dynamic commands, while duplicate routes across owners fail during generation construction. Adapter endpoint commands move to explicit paths such as `commands/qq/endpoint/list/index.ts` and are invoked as `qq endpoint list`.
8
+ - 8740059: Standardize TypeScript capabilities on named module directories such as `commands/foo/index.ts`, `middlewares/audit/index.ts`, `handlers/message-receive/index.ts`, `pages/workroom/index.tsx`, and `mcps/filesystem/index.ts`. Only the fixed `index` entry is discovered; sibling files remain private helpers.
9
+
10
+ Command route segments come from directories, while `[name]`, `[[name]]`, `[...name]`, and `[[...name]]` directories declare dynamic parameters. Plugin owners do not enter the route unless their config explicitly sets `commandNamespace`; Endpoint `commandPrefix` remains platform-owned and defaults to an empty string.
11
+
12
+ Migrate the built-in adapters, plugins, examples, generators, migration tooling, hot reload classification, Agent authoring surfaces, documentation, and release artifacts to the explicit entry convention.
13
+
14
+ Make Tool ownership and progressive disclosure explicit across all four supported locations: plugin-public `tools/`, Agent-private `agents/<name>/tools/`, Skill-private `skills/<name>/tools/`, and Agent-Skill-private `agents/<name>/skills/<name>/tools/`. Move adapter and group-suite operations that require domain instructions into their owning Skills so `load_skill` is the only path that unlocks their schemas.
15
+
16
+ Remove the package-root `agent/` convention. Public capabilities now use named package-root directories, schedules use `schedules/<name>/index.ts` or `plugin.ts` injection, MCP connections use `mcps/<name>/index.ts`, Prompt Sections use `prompt-sections/<name>/index.ts`, Agent definitions use `agents/<name>/`, and permission vocabulary is published as `PERMITS.md`.
17
+
18
+ - 25a845a: Unify Skills on `skills/<name>/SKILL.md`, support Agent-private Skills and nested Skill-private Tools, publish and mount existing plugin Skills, add governed Skill metadata and Turn access filtering, unlock only already-admitted same-owner Tools, and make `on-risk` and `once` approval behavior precise.
19
+ - 4380cf9: Colocate adapter command definitions and Agent Skill handlers with their owning capabilities, and provide a shared validated platform permission constructor.
20
+ - 2acae54: Require the canonical expanded Satori endpoint configuration. The protocol no longer reinterprets nested `endpoints` or reads endpoint identity, base URL, and token from `process.env`. The public config type is now `SatoriEndpointConfig`, and each schema entry uses `id` as its identity.
21
+ - 5c3858e: Make `@zhin.js/im-contract` the explicit zero-dependency owner of transport identities, canonical segments, media guards, conversation facts, stores, and delivery contracts. Platform adapters now read media contracts from that foundation instead of reaching through Core.
22
+ - Updated dependencies [c861789]
23
+ - Updated dependencies [1414ccb]
24
+ - Updated dependencies [743d470]
25
+ - Updated dependencies [62dee52]
26
+ - Updated dependencies [cd54131]
27
+ - Updated dependencies [244e475]
28
+ - Updated dependencies [a9e4a40]
29
+ - Updated dependencies [5855db7]
30
+ - Updated dependencies [ec921d2]
31
+ - Updated dependencies [8740059]
32
+ - Updated dependencies [25a845a]
33
+ - Updated dependencies [103f2c3]
34
+ - Updated dependencies [9110ab8]
35
+ - Updated dependencies [cd2a888]
36
+ - Updated dependencies [eb3227a]
37
+ - Updated dependencies [b853dba]
38
+ - Updated dependencies [e561309]
39
+ - Updated dependencies [d4c6175]
40
+ - Updated dependencies [7a0e1ca]
41
+ - Updated dependencies [103b5d3]
42
+ - Updated dependencies [5a7a7f7]
43
+ - Updated dependencies [b076eae]
44
+ - Updated dependencies [73a24b7]
45
+ - Updated dependencies [2dbbc15]
46
+ - Updated dependencies [1cb1163]
47
+ - Updated dependencies [be3061e]
48
+ - Updated dependencies [75f8332]
49
+ - Updated dependencies [81935e2]
50
+ - Updated dependencies [f9ed01b]
51
+ - Updated dependencies [ac0ab50]
52
+ - Updated dependencies [5140ce1]
53
+ - Updated dependencies [522d75f]
54
+ - Updated dependencies [a7611b3]
55
+ - Updated dependencies [8823044]
56
+ - Updated dependencies [379439b]
57
+ - Updated dependencies [11c9352]
58
+ - Updated dependencies [6b70e46]
59
+ - Updated dependencies [135ac91]
60
+ - Updated dependencies [140cf0f]
61
+ - Updated dependencies [251e4d2]
62
+ - Updated dependencies [203ad34]
63
+ - Updated dependencies [e6c5113]
64
+ - Updated dependencies [e0f6478]
65
+ - Updated dependencies [baef56b]
66
+ - Updated dependencies [da0a8e3]
67
+ - Updated dependencies [2fd8017]
68
+ - Updated dependencies [5c3858e]
69
+ - Updated dependencies [507d602]
70
+ - Updated dependencies [df9f76b]
71
+ - @zhin.js/core@1.1.37
72
+ - @zhin.js/host-http@1.1.1
73
+ - @zhin.js/adapter@1.1.14
74
+ - @zhin.js/feature-kit@1.1.1
75
+ - @zhin.js/skill@1.1.1
76
+ - @zhin.js/logger@1.1.1
77
+ - @zhin.js/im-contract@1.1.1
78
+
79
+ ## 1.1.1
80
+
81
+ ### Patch Changes
82
+
83
+ - Updated dependencies [769e67f]
84
+ - @zhin.js/adapter@1.1.13
85
+ - @zhin.js/core@1.1.36
86
+
87
+ ## 1.1.0
88
+
89
+ ### Minor Changes
90
+
91
+ - 1fc6270: Reset all 88 published official packages onto the owner-governed 1.1.x stable line. Packages whose historical 1.1.0 version is still available publish as 1.1.0; packages where npm permanently reserves that version use the next available 1.1.x patch. Historical higher version lines remain installable but are superseded, and routine releases after this reset are patch-only.
92
+
93
+ ### Patch Changes
94
+
95
+ - a34bf91: Publish internal peer dependencies as compatible caret ranges instead of exact versions, preventing compatible internal minor releases from forcing unrelated major bumps.
96
+ - Updated dependencies [1fc6270]
97
+ - @zhin.js/adapter@1.1.12
98
+ - @zhin.js/core@1.1.35
99
+ - @zhin.js/feature-kit@1.1.0
100
+ - @zhin.js/host-http@1.1.0
101
+ - @zhin.js/im-contract@1.1.0
102
+ - @zhin.js/logger@1.1.0
103
+
104
+ ## 7.0.1
105
+
106
+ ### Patch Changes
107
+
108
+ - Updated dependencies [f7ee28d]
109
+ - @zhin.js/adapter@1.2.2
110
+ - @zhin.js/core@1.5.16
111
+ - zhin.js@7.0.1
112
+
113
+ ## 7.0.0
114
+
115
+ ### Patch Changes
116
+
117
+ - zhin.js@7.0.0
118
+
119
+ ## 6.0.5
120
+
121
+ ### Patch Changes
122
+
123
+ - Updated dependencies [a728a20]
124
+ - @zhin.js/host-http@1.0.17
125
+ - zhin.js@6.0.15
126
+
127
+ ## 6.0.4
128
+
129
+ ### Patch Changes
130
+
131
+ - Updated dependencies [fcbff21]
132
+ - @zhin.js/host-http@1.0.16
133
+ - zhin.js@6.0.15
134
+
135
+ ## 6.0.3
136
+
137
+ ### Patch Changes
138
+
139
+ - Updated dependencies [d85eddd]
140
+ - @zhin.js/host-http@1.0.15
141
+ - @zhin.js/core@1.5.15
142
+ - zhin.js@6.0.15
143
+
144
+ ## 6.0.2
145
+
146
+ ### Patch Changes
147
+
148
+ - Updated dependencies [a5ee497]
149
+ - Updated dependencies [ba7e17a]
150
+ - Updated dependencies [7108d0b]
151
+ - @zhin.js/host-http@1.0.14
152
+ - @zhin.js/core@1.5.15
153
+ - zhin.js@6.0.15
154
+
155
+ ## 6.0.1
156
+
157
+ ### Patch Changes
158
+
159
+ - 4e8117c: Expose the published imhelper protocol Clients from every Endpoint, preserve native action responses, and route host-owned HTTP, WebSocket, and raw ingress through the Client APIs. Add the shared `ClientEndpoint` deep base so concrete transports inherit one open-gated Client event bridge, and move reverse WebSocket lifecycle and heartbeat cleanup onto the common lifecycle state machine.
160
+ - 1fc78bc: Unify native platform Client access behind the literal `adapter` discriminant. Handlers infer both native events and Clients, while command, inbound/outbound middleware, and both Agent tool authoring surfaces expose the exact operation-scoped Client through a lazy `$client` getter. Definitions without `adapter` keep `$client` typed as `unknown`, and runtime dispatch rejects adapter mismatches before resolving the Client. Bundled platform tools now use this single path instead of model-provided endpoint ids and adapter-specific dependency wrappers. Every adapter registers one Client/EventMap contract, and protocol adapters including NapCat, Milky, OneBot and Satori now produce transport-independent Client objects rather than letting Endpoint instances impersonate Clients.
161
+ - 2ca9a52: Upgrade the protocol Clients to imhelper 1.0.7, keep receiver ownership exclusively in Endpoint through manual mode, expose structured protocol errors, and support canonical non-message Client events.
162
+ - Updated dependencies [4e8117c]
163
+ - Updated dependencies [54bfd6b]
164
+ - Updated dependencies [12025ee]
165
+ - Updated dependencies [09b14d6]
166
+ - Updated dependencies [1fc78bc]
167
+ - @zhin.js/adapter@1.2.1
168
+ - @zhin.js/core@1.5.14
169
+ - @zhin.js/host-http@1.0.13
170
+ - @zhin.js/command@1.0.16
171
+ - @zhin.js/logger@1.0.77
172
+ - zhin.js@6.0.14
173
+ - @zhin.js/feature-kit@1.0.13
174
+
175
+ ## 6.0.0
176
+
177
+ ### Patch Changes
178
+
179
+ - f2c532f: Expose exact per-Endpoint message operations through one validated Adapter capability model, route Core control calls through declared active capabilities, and connect existing recall, edit, reaction, and typing implementations across platform adapters.
180
+ - Updated dependencies [b10d058]
181
+ - Updated dependencies [f2c532f]
182
+ - @zhin.js/host-http@1.0.12
183
+ - @zhin.js/adapter@1.2.0
184
+ - @zhin.js/core@1.5.13
185
+ - zhin.js@6.0.13
186
+
187
+ ## 5.0.13
188
+
189
+ ### Patch Changes
190
+
191
+ - 5969c5b: Add SideEventGateway so adapters forward notice/request/system into HandlerIndex. HandlerContext now exposes only generation-safe capabilities and prompt ports; live Endpoint escape hatches are removed.
192
+ - Updated dependencies [5969c5b]
193
+ - Updated dependencies [d336a3f]
194
+ - Updated dependencies [5969c5b]
195
+ - Updated dependencies [5969c5b]
196
+ - Updated dependencies [974772e]
197
+ - Updated dependencies [5969c5b]
198
+ - Updated dependencies [2f786bd]
199
+ - Updated dependencies [1312ca0]
200
+ - Updated dependencies [985fa22]
201
+ - @zhin.js/im-contract@1.0.4
202
+ - @zhin.js/core@1.5.12
203
+ - @zhin.js/adapter@1.1.11
204
+ - @zhin.js/host-http@1.0.11
205
+ - @zhin.js/command@1.0.15
206
+ - zhin.js@6.0.12
207
+
208
+ ## 5.0.12
209
+
210
+ ### Patch Changes
211
+
212
+ - @zhin.js/core@1.5.11
213
+ - zhin.js@6.0.11
214
+
215
+ ## 5.0.11
216
+
217
+ ### Patch Changes
218
+
219
+ - 3556601: Declare Stable Feature packages referenced by `zhin.features` as optional `peerDependencies` on official plugins/adapters (`@zhin.js/runtime` ≥1.0.12 requires features to be declared in deps/peers). Keeps authoring via `zhin.js` facades without installing Feature implementation packages into `dependencies`, and removes the need for consumer postinstall peer-patch scripts. `zhin new` scaffolds the same peer shape.
220
+ - @zhin.js/core@1.5.10
221
+ - zhin.js@6.0.10
222
+
223
+ ## 5.0.10
224
+
225
+ ### Patch Changes
226
+
227
+ - eb84b77: fix: 更新文档,建立正确的依赖关系
228
+ - Updated dependencies [d3920e9]
229
+ - @zhin.js/core@1.5.10
230
+ - zhin.js@6.0.10
231
+ - @zhin.js/adapter@1.1.10
232
+
233
+ ## 5.0.9
234
+
235
+ ### Patch Changes
236
+
237
+ - Updated dependencies [e4757a8]
238
+ - Updated dependencies [c3c0ebf]
239
+ - @zhin.js/command@1.0.13
240
+ - @zhin.js/host-http@1.0.10
241
+ - @zhin.js/core@1.5.9
242
+ - @zhin.js/adapter@1.1.9
243
+ - zhin.js@6.0.9
244
+
245
+ ## 5.0.8
246
+
247
+ ### Patch Changes
248
+
249
+ - Updated dependencies [63253bb]
250
+ - Updated dependencies [8e973dc]
251
+ - Updated dependencies [953cfe1]
252
+ - Updated dependencies [0e73866]
253
+ - @zhin.js/plugin-runtime@1.1.6
254
+ - @zhin.js/core@1.5.8
255
+ - @zhin.js/adapter@1.1.8
256
+ - @zhin.js/host-http@1.0.9
257
+ - zhin.js@6.0.8
258
+ - @zhin.js/command@1.0.12
259
+
260
+ ## 5.0.7
261
+
262
+ ### Patch Changes
263
+
264
+ - Updated dependencies [36cb1ca]
265
+ - @zhin.js/core@1.5.7
266
+ - zhin.js@6.0.7
267
+
268
+ ## 5.0.6
269
+
270
+ ### Patch Changes
271
+
272
+ - Updated dependencies [7945544]
273
+ - @zhin.js/command@1.0.11
274
+ - @zhin.js/adapter@1.1.7
275
+ - @zhin.js/core@1.5.6
276
+ - zhin.js@6.0.6
277
+
278
+ ## 5.0.5
279
+
280
+ ### Patch Changes
281
+
282
+ - Updated dependencies [2d0a622]
283
+ - @zhin.js/command@1.0.10
284
+ - @zhin.js/adapter@1.1.7
285
+ - @zhin.js/core@1.5.5
286
+ - zhin.js@6.0.5
287
+
288
+ ## 5.0.4
289
+
290
+ ### Patch Changes
291
+
292
+ - Updated dependencies [0de46a8]
293
+ - Updated dependencies [c106ecc]
294
+ - Updated dependencies [ca92e03]
295
+ - Updated dependencies [b0f37ae]
296
+ - Updated dependencies [ba08a2f]
297
+ - Updated dependencies [daffd4c]
298
+ - Updated dependencies [36c7400]
299
+ - Updated dependencies [162fa34]
300
+ - Updated dependencies [e40b048]
301
+ - Updated dependencies [f1708c3]
302
+ - Updated dependencies [e53444f]
303
+ - Updated dependencies [92b0dd7]
304
+ - Updated dependencies [a7df753]
305
+ - @zhin.js/host-http@1.0.8
306
+ - @zhin.js/im-contract@1.0.3
307
+ - @zhin.js/adapter@1.1.7
308
+ - @zhin.js/plugin-runtime@1.1.5
309
+ - @zhin.js/command@1.0.9
310
+ - @zhin.js/core@1.5.4
311
+ - zhin.js@6.0.4
312
+
313
+ ## 5.0.3
314
+
315
+ ### Patch Changes
316
+
317
+ - f8c7a54: fix: im
318
+ - Updated dependencies [f8c7a54]
319
+ - @zhin.js/logger@1.0.76
320
+ - @zhin.js/host-http@1.0.7
321
+ - @zhin.js/adapter@1.1.6
322
+ - @zhin.js/command@1.0.8
323
+ - @zhin.js/core@1.5.3
324
+ - @zhin.js/im-contract@1.0.2
325
+ - @zhin.js/plugin-runtime@1.1.4
326
+ - zhin.js@6.0.3
327
+
328
+ ## 5.0.2
329
+
330
+ ### Patch Changes
331
+
332
+ - Updated dependencies [afc0e66]
333
+ - Updated dependencies [2e41ad5]
334
+ - Updated dependencies [9f57124]
335
+ - @zhin.js/core@1.5.2
336
+ - @zhin.js/adapter@1.1.5
337
+ - @zhin.js/im-contract@1.0.1
338
+ - @zhin.js/plugin-runtime@1.1.3
339
+ - @zhin.js/command@1.0.7
340
+ - @zhin.js/host-http@1.0.6
341
+ - zhin.js@6.0.2
342
+
343
+ ## 5.0.1
344
+
345
+ ### Patch Changes
346
+
347
+ - Updated dependencies [c8f4d45]
348
+ - @zhin.js/plugin-runtime@1.1.2
349
+ - @zhin.js/host-http@1.0.5
350
+ - @zhin.js/adapter@1.1.4
351
+ - @zhin.js/command@1.0.6
352
+ - @zhin.js/core@1.5.1
353
+ - zhin.js@6.0.1
354
+
355
+ ## 5.0.0
356
+
357
+ ### Patch Changes
358
+
359
+ - 4fbff5d: feat!: 多模态双向 Segment 一贯制(BREAKING,无兼容层)
360
+
361
+ 全框架唯一媒体表达统一为 canonical `Segment` + `MediaRef{kind: url|path|base64|file, value, mime_type?, file_name?, size?}`,新增 audio/video/file 段类型;所有第二形状(legacy `data.url/file/base64` 字段、`mediaRefFromLegacyData`/`mediaRefToLegacyFields` 桥、双写)全部删除。
362
+
363
+ - **core**:`SendContent` 一等支持 `Segment[]`;endpoint 出站载荷只含 canonical 段;`resolveOutboundMediaPolicy` 改为纯声明驱动(adapter definition `segments.outboundMedia`),内置策略表删除,未声明回退 `url-or-text`;`ImageContent` 旧桥删除。
364
+ - **ai**:新增 `MediaContentBlock`/`MediaBlockRef`(Segment 同构)与 `UserMessage.media`(当前 turn 媒体,**不持久化**——存储层自动剥离);`createUserMessage(text, media?)` 签名变更(`ImageContent` 删除);provider 边界序列化器 `filterMediaBlocksForProvider` + 能力表(缺省 image-only,不支持类型降级占位文本);ai-sdk 桥媒体块 → SDK image/file parts。
365
+ - **agent**:入站 turn 注入(`turn/inbound-media.ts`)——commMessage 媒体段 → 当前 turn `UserMessage.media`;图片 path 物化、音频默认 STT(`@zhin.js/speech` 可选,失败降级占位)、视频/文件占位;`publishOutboundElements` 产出 canonical Segment;`transcribeAudioPayload` 导出。
366
+ - **cli**:`bridgeRuntimeMessage` 回复链路媒体段透传,不再压平为文本(`$reply` 直达 normalize → adapter)。
367
+ - **全部 20 个平台适配器**:出站媒体只消费 `data.media`(url 直发 / base64 直发 / 平台上传 / 读盘),入站媒体产出 canonical `data.media`;`segments.outboundMedia` 声明与实际消费逐一核对修正;QQ 入站新增 canonical segments(image/audio/video/file/mention/face/reply),图片/语音/视频不再丢失。
368
+
369
+ 迁移:适配器/插件产媒体一律用 `{ type, data: { media: MediaRef } }`;发送 legacy `data.url/file/base64` 形状的段会被 warn 丢弃。
370
+
371
+ - Updated dependencies [7c1e63a]
372
+ - Updated dependencies [4fbff5d]
373
+ - Updated dependencies [5b94d9c]
374
+ - @zhin.js/command@1.0.5
375
+ - @zhin.js/adapter@1.1.3
376
+ - @zhin.js/core@1.5.0
377
+ - zhin.js@6.0.0
378
+
379
+ ## 4.0.4
380
+
381
+ ### Patch Changes
382
+
383
+ - Updated dependencies [d8bf702]
384
+ - @zhin.js/host-http@1.0.4
385
+ - @zhin.js/core@1.4.3
386
+ - zhin.js@5.0.3
387
+
388
+ ## 4.0.3
389
+
390
+ ### Patch Changes
391
+
392
+ - Updated dependencies [45b3256]
393
+ - @zhin.js/core@1.4.3
394
+ - zhin.js@5.0.3
395
+
396
+ ## 4.0.2
397
+
398
+ ### Patch Changes
399
+
400
+ - d5cd4aa: Publish Plugin Runtime entry points and convention modules as JavaScript so
401
+ installed npm plugins load on Node without TypeScript stripping. Workspace
402
+ development continues to prefer TypeScript sources for local HMR.
403
+
404
+ Remove the unconsumed legacy game hub APIs from game-kit; game navigation and
405
+ records now use ordinary convention commands owned by the game hub plugin.
406
+
407
+ - Updated dependencies [d5cd4aa]
408
+ - @zhin.js/command@1.0.4
409
+ - zhin.js@5.0.2
410
+ - @zhin.js/adapter@1.1.2
411
+ - @zhin.js/core@1.4.2
412
+
413
+ ## 4.0.1
414
+
415
+ ### Patch Changes
416
+
417
+ - 5691aba: 第二轮全量审计修复批(8 面 ~60 bug):
418
+
419
+ - **安全**:email 附件路径穿越修复(basename + downloadPath 约束);lark/telegram/satori webhook 鉴权(缺密钥告警、timingSafeEqual、±5min 时效窗、chat_type 修正);onebot wss/webhook 缺 token 告警;qq webhook 改原始字节验签;renderJsx/JSX 转义注入修复;console runtime token 401 死循环。
420
+ - **P0 功能**:sandbox 多 endpoint 解析 + WS 路径隔离;short-url expand(undici opaqueredirect)改 follow;AI 压缩摘要失败不再静默丢历史(熔断恢复生效);console-ui 实时推送事件名归一化 + IndexedDB schema 对齐;process-monitor 热重载不再误判崩溃。
421
+ - **生命周期**:email IMAP 断线重连 + 在飞锁;onebot11/12 start 失败清理;line replyToken TTL + push 兜底;wechat-mp token 过期重试 + MsgId 去重;weixin-ilink buf 推进/防抖写盘/媒体 TTL/QR abort;satori PONG 看门狗;退避自毁修复。
422
+ - **游戏**:text-adventure 终局 restart 复活 + requires 服务端校验;tic-tac-toe PvP 占用/restart/队列清理/TTL;idiom-chain/word-riddle 闲聊不扣失误;别名中间件不劫持普通聊天。
423
+ - **共享库**:schema falsy 默认值/date/tuple/union 修复;database parseCondition Date/未知操作符、sqlite TEXT 往返、query 分派、belongsToMany 方言、migration dry-run;schedule DST 回拨死循环、重复 id 去重、flush 串行化;game-kit fallback 编号/onboarding 提示/尾缀边界/活引用拷贝。
424
+ - **渲染语音**:fetch 全部超时 + 渲染并发闸;sanitizeHtml form 保文本;STT 扩展名映射 + 删临时文件;TTS 未知 provider 报错;emojiCache LRU 负缓存/fontCache style/clearFonts 恢复;register 错误分类收窄。
425
+
426
+ - 078e3f7: 架构统一批(AURA):
427
+
428
+ - **EndpointLifecycle 基座**(@zhin.js/adapter 新增 `createEndpointLifecycle`):WS/SSE 端点的 start 失败复位、仅曾 open 才退避重连(指数+jitter 可配)、stop 不重连、PONG 看门狗、定时器集中清理、陈旧事件防叠套;napcat/milky/onebot11/onebot12/satori 已迁移(删除各自手写状态机),从此同类竞态在结构上不可能再犯。
429
+ - **Generation-store**(@zhin.js/plugin-runtime 新增 `createGenerationStore`):模块级运行时状态的一等能力,provide 自动挂 lifecycle 反注册(代际结束自动清理);lottery deps 与 rss db 已迁移,公开 API 兼容。
430
+ - **Resolver 管线收敛**(@zhin.js/runtime):解析规则统一为 local path → workspace → node_modules 单管线;optional 引用对所有 PackageResolutionError 容错(消除 message 前缀补丁)。
431
+ - **工具目录准入统一**(@zhin.js/agent):RegisteredToolSource 与 ExternalToolSource 共用同一 `canAccessTool` 准入(platforms/scopes/permissions/hidden 四元组全链路透传),同名覆盖 warn;AgentToolRegistration 补 platforms/scopes。两条注册通道(静态约定 vs 动态注册)职责边界已文档化。
432
+
433
+ - 74b035c: endpoint 管理命令扩展至 18/20 适配器:kook / discord / github(private_key 支持内联文件路径)/ icqq(bindFlow 登记式 add + `icqq login` 引导)/ dingtalk / lark / line / satori / wechat-mp / wecom / weixin-ilink 接入 `endpoint list/add/remove`(字段对齐各自 schema,凭据写 `.env`)。email(smtp/imap 嵌套对象)与 sandbox(无凭据)暂不接。
434
+ - 09d4f25: Console 社交读取面(management 语义端口)多平台落地:napcat/onebot11/onebot12/milky(好友+群+群成员,OneBot 标准动作);discord/kook/satori(guild+频道+成员,分页聚合,id 保精度留字符串);slack(workspace 成员+public channels+conversations.members);line(群/room 成员分页+profile 回退);wechat-mp(followers openid);weixin-ilink(context_token 对端推导);lark(chats+members 全分页)。`EndpointFriend.user_id`/`EndpointGroup.group_id` 放宽为 `number | string`(雪花 id 不丢精度)。telegram/wecom/dingtalk/github/email/sandbox 注明平台无列表面暂不接。
435
+ - Updated dependencies [cdf64e7]
436
+ - Updated dependencies [2d0a159]
437
+ - Updated dependencies [5691aba]
438
+ - Updated dependencies [078e3f7]
439
+ - Updated dependencies [50497a5]
440
+ - Updated dependencies [9c997b2]
441
+ - Updated dependencies [09d4f25]
442
+ - Updated dependencies [43485a9]
443
+ - Updated dependencies [f0ec5ab]
444
+ - Updated dependencies [3e925d0]
445
+ - Updated dependencies [fa66c4c]
446
+ - Updated dependencies [fa66c4c]
447
+ - Updated dependencies [6cb6152]
448
+ - @zhin.js/command@1.0.3
449
+ - @zhin.js/plugin-runtime@1.1.1
450
+ - @zhin.js/host-http@1.0.3
451
+ - zhin.js@5.0.1
452
+ - @zhin.js/adapter@1.1.1
453
+ - @zhin.js/core@1.4.1
454
+
455
+ ## 4.0.0
456
+
457
+ ### Patch Changes
458
+
459
+ - 7db69c1: 命令前缀改为适配器配置项:`MessageDispatcher` 不再硬编码 `/`,默认按消息所属适配器实例 config 的 `commandPrefix` 解析(默认 `''` 无前缀,任意文本按命令匹配),`endpoints[i].commandPrefix` 逐项覆盖;`ImRuntime({ commandPrefix })` 仍可设全局静态前缀。全部 20 个平台适配器 schema 新增 `commandPrefix` 属性。
460
+
461
+ BREAKING(行为变化):未配置时命令不再需要 `/` 前缀——原 `/zt` 写法不再命中,直接发 `zt` 即可;需要斜杠风格的适配器请在配置里显式设 `commandPrefix: '/'`。
462
+
463
+ - 713445c: 适配器配置格式定稿(不兼容旧格式):`plugins.<adapter>` 顶层仅共享字段 + `commandPrefix`,`endpoints[i]` 携带 endpoint 级字段(`name` + 凭据,各 schema 已类型化),`endpoints` 为必填(icqq 另需顶层 `master`);icqq 新增 `trusted` 列表(顶层/逐项均可)。scaffold-wizard 全部字段式与自定义 configure() 产出改为新格式,examples(full-bot / qq-games-bot)与 20 个适配器 README 同步迁移。
464
+ - Updated dependencies [7db69c1]
465
+ - Updated dependencies [e5c84ed]
466
+ - Updated dependencies [3ea84a0]
467
+ - Updated dependencies [1ddcd70]
468
+ - Updated dependencies [ac9da66]
469
+ - @zhin.js/core@1.4.0
470
+ - @zhin.js/adapter@1.1.0
471
+ - @zhin.js/plugin-runtime@1.1.0
472
+ - @zhin.js/host-http@1.0.2
473
+ - zhin.js@5.0.0
474
+
475
+ ## 3.0.3
476
+
477
+ ### Patch Changes
478
+
479
+ - cc5c94d: 约定式插件运行时迁移(breaking):插件与适配器由 `usePlugin()` / `extends Adapter` 迁移为 `definePlugin` / `defineAdapter` + `plugin.ts` + 约定目录(`adapters/`、`commands/`、`components/`、`tools/` 等)。
480
+
481
+ - 新增约定式运行时包:`@zhin.js/plugin-runtime`、`@zhin.js/adapter`、`@zhin.js/runtime`、`@zhin.js/host-http`(首版 1.0.0 走 init-publish,不在本 changeset 内 bump)。
482
+ - 全部 20 个平台适配器改为约定式 `defineAdapter`,旧 `usePlugin` / `extends Adapter` / `segment-mapper` 生产入口已删除;onebot11 反向 WSS、onebot12 webhook/wss、milky sse/webhook/wss、satori webhook、kook webhook、qq webhook/middleware 等 slice 1 推迟的连接模式已补齐。
483
+ - 游戏 / 工具 / 服务插件同步迁移到约定目录结构。
484
+ - CLI 增加 plugin-runtime host installer(http/database/outbound/schedule/console 等)。
485
+
486
+ 后续加固(同批):
487
+
488
+ - CLI:`zhin runtime start --daemon`(pidfile/崩溃拉起/风暴保护),orphan watchdog 防僵尸进程;legacy `zhin dev` / `zhin start` 已移除(含 `zhin restart`),`zhin stop` 兼容新 daemon。
489
+ - 安全:builtin 工具统一走 `security/policy-facade.ts` 的 `runToolPolicies`(声明式策略表,deny 优先);审计日志 close flush + 背压队列;`splitCompoundCommand` 引号感知、`extractCommandName` 去引号堵绕过。
490
+ - 日志:Logger 双堆栈修复、本地时区、`getLogger` 挂树(`setLevel` 递归生效)、第三方库(log4js/discord)桥接、启动人读总结。
491
+ - 结构:`plugins/games/shared` 迁为 `packages/game-kit`(`@zhin.js/game-kit`);死目录 `plugins/adapters/common` 删除。
492
+ - 脚手架:`create-zhin-app` / `zhin new` / scaffold-wizard 生成物改为 Plugin Runtime 形态(minimal-bot 同构,新配置格式)。
493
+ - Console:endpoint.list 真实名称与 phase、schema:get-all 按 instanceKey 映射、db:\* 接 DatabaseHost。
494
+
495
+ 注:按仓库发布惯例(见 1bb345dd2),本次 breaking 迁移统一使用 patch,避免 zhin.js 5.0 级联。
496
+
497
+ - 447f3e2: 迁移缺口修复(legacy 功能对齐):
498
+
499
+ - html 段出站规范化:经 `@zhin.js/html-renderer` 渲染为 image 段(sandbox 豁免、无渲染器时降级文本),修复真实平台 `[object Object]`。
500
+ - 群聊 @ 触发 AI:适配器入站标注 `metadata.mentioned`(icqq/qq/slack/onebot11/onebot12/napcat/milky/discord/telegram/kook/dingtalk/satori),`matchAiTrigger` 补齐 ignorePrefixes/respondToAt/respondToPrivate/keywords(默认值与 legacy 对齐)。
501
+ - im_transcripts 全量流水恢复写入(chat_history 工具可用);群聊旁听上下文回迁。
502
+ - `ai.trigger.timeout/thinkingMessage/errorTemplate` 生效;masters/trusted 角色解析对齐 legacy。
503
+ - `Message.sender` 统一为用户 ID(onebot11/12、napcat、milky 原误传显示名);quote_id 经 metadata 接入 AI 引用上下文。
504
+
505
+ - Updated dependencies [16ec4e8]
506
+ - Updated dependencies [cc5c94d]
507
+ - Updated dependencies [447f3e2]
508
+ - @zhin.js/core@1.3.5
509
+ - @zhin.js/host-http@1.0.1
510
+ - zhin.js@4.1.3
511
+ - @zhin.js/logger@1.0.75
512
+ - @zhin.js/plugin-runtime@1.0.1
513
+ - @zhin.js/adapter@1.0.1
514
+
515
+ ## 3.0.2
516
+
517
+ ### Patch Changes
518
+
519
+ - 872c583: fix: 代码格式优化
520
+ - Updated dependencies [872c583]
521
+ - Updated dependencies [872c583]
522
+ - @zhin.js/host-router@2.0.3
523
+ - zhin.js@4.1.2
524
+
525
+ ## 3.0.1
526
+
527
+ ### Patch Changes
528
+
529
+ - 5cc9c03: fix: ai 优化
530
+ - b9b3881: fix: 增加游戏引擎以及部分游戏
531
+ - Updated dependencies [5cc9c03]
532
+ - Updated dependencies [7700903]
533
+ - @zhin.js/host-router@2.0.2
534
+ - zhin.js@4.1.1
535
+
536
+ ## 3.0.0
537
+
538
+ ### Patch Changes
539
+
540
+ - c4575c9: fix: 输入输出优化,文档优化
541
+ - Updated dependencies [c4575c9]
542
+ - Updated dependencies [c4575c9]
543
+ - @zhin.js/host-router@2.0.1
544
+ - zhin.js@4.1.0
545
+
546
+ ## 2.0.1
547
+
548
+ ### Patch Changes
549
+
550
+ - Updated dependencies [ae5239c]
551
+ - zhin.js@4.0.1
552
+ - @zhin.js/host-router@2.0.0
553
+
554
+ ## 2.0.0
555
+
556
+ ### Patch Changes
557
+
558
+ - zhin.js@3.0.0
559
+ - @zhin.js/host-router@2.0.0
560
+
561
+ ## 1.0.1
562
+
563
+ ### Patch Changes
564
+
565
+ - d8def69: fix: 性能优化
566
+ - 2ef4896: fix: 更新概念 Bot=>Endpoint,已适配后续更多的业务场景;统一角色权限
567
+ - Updated dependencies [d8def69]
568
+ - Updated dependencies [2ef4896]
569
+ - @zhin.js/host-router@1.0.1
570
+ - zhin.js@2.0.1
571
+
572
+ ## 1.0.0
573
+
574
+ ### Patch Changes
575
+
576
+ - zhin.js@2.0.0
577
+ - @zhin.js/host-router@1.0.0
578
+
579
+ ## 0.0.42
580
+
581
+ ### Patch Changes
582
+
583
+ - Updated dependencies [d8547d2]
584
+ - zhin.js@1.0.92
585
+ - @zhin.js/host-router@0.0.3
586
+
587
+ ## 0.0.41
588
+
589
+ ### Patch Changes
590
+
591
+ - Updated dependencies [3735e96]
592
+ - zhin.js@1.0.91
593
+ - @zhin.js/host-router@0.0.3
594
+
595
+ ## 0.0.40
596
+
597
+ ### Patch Changes
598
+
599
+ - c8f8207: fix: 修复内存泄露问题
600
+ - Updated dependencies [c8f8207]
601
+ - @zhin.js/host-router@0.0.3
602
+ - zhin.js@1.0.90
603
+
604
+ ## 0.0.39
605
+
606
+ ### Patch Changes
607
+
608
+ - Updated dependencies [c78d2cd]
609
+ - @zhin.js/host-router@0.0.2
610
+ - zhin.js@1.0.89
611
+
612
+ ## 0.0.38
613
+
614
+ ### Patch Changes
615
+
616
+ - Updated dependencies [ccb6e24]
617
+ - zhin.js@1.0.88
618
+
619
+ ## 0.0.37
620
+
621
+ ### Patch Changes
622
+
623
+ - 90d9efd: fix: 处理包名
624
+ - zhin.js@1.0.87
625
+ - @zhin.js/host-router@0.0.1
626
+
627
+ ## 0.0.36
628
+
629
+ ### Patch Changes
630
+
631
+ - 7e14f8d: fix: 统一发个版,优化一些列安全问题
632
+ - Updated dependencies [7e14f8d]
633
+ - zhin.js@1.0.86
634
+ - @zhin.js/host-router@1.0.79
635
+
636
+ ## 0.0.35
637
+
638
+ ### Patch Changes
639
+
640
+ - zhin.js@1.0.85
641
+ - @zhin.js/host-router@1.0.78
642
+
643
+ ## 0.0.34
644
+
645
+ ### Patch Changes
646
+
647
+ - f19d2e0: fix: remove multiple runtime support
648
+ - Updated dependencies [0db9fed]
649
+ - Updated dependencies [f19d2e0]
650
+ - zhin.js@1.0.84
651
+ - @zhin.js/host-router@1.0.77
652
+
653
+ ## 0.0.33
654
+
655
+ ### Patch Changes
656
+
657
+ - 775427e: fix: edge 支持
658
+ - Updated dependencies [775427e]
659
+ - @zhin.js/host-router@1.0.76
660
+ - zhin.js@1.0.83
661
+
662
+ ## 0.0.32
663
+
664
+ ### Patch Changes
665
+
666
+ - 32049f5: fix: init publish
667
+ - Updated dependencies [32049f5]
668
+ - @zhin.js/host-router@1.0.75
669
+ - zhin.js@1.0.82
670
+
671
+ ## 0.0.31
672
+
673
+ ### Patch Changes
674
+
675
+ - Updated dependencies [8086ccb]
676
+ - zhin.js@1.0.81
677
+ - @zhin.js/host-router@1.0.74
678
+
679
+ ## 0.0.30
680
+
681
+ ### Patch Changes
682
+
683
+ - zhin.js@1.0.80
684
+ - @zhin.js/host-router@1.0.73
685
+
686
+ ## 0.0.29
687
+
688
+ ### Patch Changes
689
+
690
+ - zhin.js@1.0.79
691
+ - @zhin.js/host-router@1.0.72
692
+
693
+ ## 0.0.28
694
+
695
+ ### Patch Changes
696
+
697
+ - zhin.js@1.0.78
698
+ - @zhin.js/host-router@1.0.71
699
+
700
+ ## 0.0.27
701
+
702
+ ### Patch Changes
703
+
704
+ - zhin.js@1.0.77
705
+ - @zhin.js/host-router@1.0.70
706
+
707
+ ## 0.0.26
708
+
709
+ ### Patch Changes
710
+
711
+ - Updated dependencies [cb9fbf1]
712
+ - zhin.js@1.0.76
713
+ - @zhin.js/host-router@1.0.69
714
+
715
+ ## 0.0.25
716
+
717
+ ### Patch Changes
718
+
719
+ - zhin.js@1.0.75
720
+ - @zhin.js/host-router@1.0.68
721
+
722
+ ## 0.0.24
723
+
724
+ ### Patch Changes
725
+
726
+ - Updated dependencies [c9dec38]
727
+ - zhin.js@1.0.74
728
+ - @zhin.js/host-router@1.0.67
729
+
730
+ ## 0.0.23
731
+
732
+ ### Patch Changes
733
+
734
+ - f1e9a76: fix: 提高 skill 质量
735
+ - zhin.js@1.0.73
736
+ - @zhin.js/host-router@1.0.66
737
+
738
+ ## 0.0.22
739
+
740
+ ### Patch Changes
741
+
742
+ - abc75a4: fix: 优化,客户端构建优化
743
+
744
+ ## 0.0.21
745
+
746
+ ### Patch Changes
747
+
748
+ - e28fd7c: fix: 重新发版
749
+ - Updated dependencies [e28fd7c]
750
+ - zhin.js@1.0.72
751
+ - @zhin.js/host-router@1.0.65
752
+
753
+ ## 0.0.20
754
+
755
+ ### Patch Changes
756
+
757
+ - 4304825: fix: 重新发版
758
+ - Updated dependencies [4304825]
759
+ - zhin.js@1.0.71
760
+ - @zhin.js/host-router@1.0.64
761
+
762
+ ## 0.0.19
763
+
764
+ ### Patch Changes
765
+
766
+ - zhin.js@1.0.68
767
+ - @zhin.js/host-router@1.0.63
768
+
769
+ ## 0.0.18
770
+
771
+ ### Patch Changes
772
+
773
+ - Updated dependencies [0eba6d6]
774
+ - @zhin.js/host-router@1.0.62
775
+ - zhin.js@1.0.67
776
+
777
+ ## 0.0.17
778
+
779
+ ### Patch Changes
780
+
781
+ - zhin.js@1.0.66
782
+ - @zhin.js/host-router@1.0.61
783
+
784
+ ## 0.0.16
785
+
786
+ ### Patch Changes
787
+
788
+ - zhin.js@1.0.65
789
+ - @zhin.js/host-router@1.0.60
790
+
791
+ ## 0.0.15
792
+
793
+ ### Patch Changes
794
+
795
+ - 9577eba: fix: tool 收集 bug,升级 ts 到 6.0.2
796
+ - Updated dependencies [9577eba]
797
+ - zhin.js@1.0.64
798
+ - @zhin.js/host-router@1.0.59
799
+
800
+ ## 0.0.14
801
+
802
+ ### Patch Changes
803
+
804
+ - Updated dependencies [ba30934]
805
+ - @zhin.js/host-router@1.0.58
806
+ - zhin.js@1.0.63
807
+
808
+ ## 0.0.13
809
+
810
+ ### Patch Changes
811
+
812
+ - zhin.js@1.0.62
813
+ - @zhin.js/host-router@1.0.57
814
+
815
+ ## 0.0.12
816
+
817
+ ### Patch Changes
818
+
819
+ - zhin.js@1.0.61
820
+ - @zhin.js/host-router@1.0.56
821
+
822
+ ## 0.0.11
823
+
824
+ ### Patch Changes
825
+
826
+ - 5073d4c: chore: chore: update TypeScript version to ^5.9.3 across all plugins and packages
827
+ feat: enhance ai-text-as-image output registration with off handler for cleanup
828
+ fix: remove unnecessary logging in ensureBuiltinFontsCached function
829
+ refactor: simplify action handlers in html-renderer tools
830
+ chore: add README files for queue-sandbox-poc and event-delivery packages
831
+ chore: adjust pnpm workspace configuration to exclude games directory
832
+ chore: update tsconfig to include plugins directory for TypeScript compilation
833
+ - Updated dependencies [5073d4c]
834
+ - zhin.js@1.0.60
835
+ - @zhin.js/host-router@1.0.55
836
+
837
+ ## 0.0.10
838
+
839
+ ### Patch Changes
840
+
841
+ - c212bf7: fix: 适配器优化
842
+ - Updated dependencies [c212bf7]
843
+ - zhin.js@1.0.59
844
+ - @zhin.js/host-router@1.0.54
845
+
846
+ ## 0.0.9
847
+
848
+ ### Patch Changes
849
+
850
+ - zhin.js@1.0.58
851
+ - @zhin.js/host-router@1.0.53
852
+
853
+ ## 0.0.8
854
+
855
+ ### Patch Changes
856
+
857
+ - zhin.js@1.0.57
858
+ - @zhin.js/host-router@1.0.52
859
+
860
+ ## 0.0.7
861
+
862
+ ### Patch Changes
863
+
864
+ - zhin.js@1.0.56
865
+ - @zhin.js/host-router@1.0.51
866
+
867
+ ## 0.0.6
868
+
869
+ ### Patch Changes
870
+
871
+ - zhin.js@1.0.55
872
+ - @zhin.js/host-router@1.0.50
873
+
874
+ ## 0.0.5
875
+
876
+ ### Patch Changes
877
+
878
+ - 16c8f92: fix: 统一发一次版
879
+ - Updated dependencies [16c8f92]
880
+ - zhin.js@1.0.54
881
+ - @zhin.js/host-router@1.0.49
882
+
883
+ ## 0.0.4
884
+
885
+ ### Patch Changes
886
+
887
+ - zhin.js@1.0.53
888
+ - @zhin.js/host-router@1.0.48
889
+
890
+ ## 0.0.3
891
+
892
+ ### Patch Changes
893
+
894
+ - a3511a0: 各包内 Agent 技能说明已固定为随包发布的 `skills/*/SKILL.md`(替代已移除的运行时 `declareSkill`)。本批为 registry / 分发侧对齐的 **patch** 版本递增。
895
+ - Updated dependencies [a3511a0]
896
+ - @zhin.js/host-router@1.0.47
897
+
898
+ ## 0.0.2
899
+
900
+ ### Patch Changes
901
+
902
+ - Updated dependencies [bb6bfa8]
903
+ - Updated dependencies [bb6bfa8]
904
+ - zhin.js@1.0.52
905
+ - @zhin.js/host-router@1.0.46
906
+
907
+ ## 0.0.1
908
+
909
+ ### Patch Changes
910
+
911
+ - zhin.js@1.0.51
912
+ - @zhin.js/host-router@1.0.45