@chanlerdev/scorel 0.0.2 → 0.0.3

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 (28) hide show
  1. package/README.md +55 -2
  2. package/dist/index.js +395 -31
  3. package/dist/index.js.map +3 -3
  4. package/docs/CHANGELOG.md +53 -0
  5. package/docs/ROADMAP.md +19 -0
  6. package/docs/spec/channels.md +15 -5
  7. package/docs/spec/ship/S0087-gui-ui-polish-sweep.md +153 -0
  8. package/docs/spec/ship/S0088-gui-streaming-thinking-contract.md +35 -0
  9. package/docs/spec/ship/S0089-memory-reliability-and-dream-trigger.md +84 -0
  10. package/docs/spec/ship/S0090-gui-provider-delete-and-dark-code-theme.md +77 -0
  11. package/docs/spec/ship/S0091-built-in-qq-and-wechat-im-extensions.md +125 -0
  12. package/docs/spec/ship/S0092-im-message-media-and-human-cadence.md +83 -0
  13. package/docs/spec/ship/S0093-gui-im-settings-platform-layout.md +66 -0
  14. package/docs/spec/ship/S0094-im-inbound-runtime.md +67 -0
  15. package/docs/spec/ship/S0095-gui-im-session-list-refresh.md +36 -0
  16. package/extensions/builtin/loopback/skills/loopback/SKILL.md +2 -0
  17. package/extensions/builtin/qq/adapter.d.ts +27 -0
  18. package/extensions/builtin/qq/adapter.js +384 -0
  19. package/extensions/builtin/qq/scorel.extension.json +7 -0
  20. package/extensions/builtin/qq/skills/qq/SKILL.md +9 -0
  21. package/extensions/builtin/telegram/adapter.d.ts +1 -1
  22. package/extensions/builtin/telegram/adapter.js +7 -0
  23. package/extensions/builtin/telegram/skills/telegram/SKILL.md +2 -0
  24. package/extensions/builtin/wechat/adapter.d.ts +24 -0
  25. package/extensions/builtin/wechat/adapter.js +226 -0
  26. package/extensions/builtin/wechat/scorel.extension.json +7 -0
  27. package/extensions/builtin/wechat/skills/wechat/SKILL.md +9 -0
  28. package/package.json +1 -1
package/README.md CHANGED
@@ -98,7 +98,50 @@ apiKey = "123456:telegram-bot-token"
98
98
  pollIntervalMs = 1000
99
99
  ```
100
100
 
101
- 然后启动本机 Host GUI。Telegram 使用 Bot API long polling,不需要 Relay webhook。
101
+ QQ Bot 和微信 / 企业微信入口在 GUI Settings -> IM 里走更短的明文配置路径。QQ 填开放平台管理端的 `App ID` 和 `App Secret`,Scorel 会自动换取并刷新 Access Token,并通过官方 WebSocket Gateway 接收入站消息:
102
+
103
+ ```toml
104
+ [extensions.qq]
105
+ enabled = true
106
+ kind = "im"
107
+
108
+ [extensions.qq.config]
109
+ appId = "..."
110
+ appSecret = "..."
111
+ botId = "..."
112
+ allowedConversationIds = "..."
113
+ ```
114
+
115
+ 微信 / 企业微信分成两条官方能力面:
116
+
117
+ - 企业微信群机器人 Webhook:只用于出站发送,不能接收群里用户消息。
118
+ - 公众号 plaintext callback:用于接收用户发来的微信消息,需要微信后台配置可访问的 callback URL 和同一个 Token。
119
+
120
+ 出站群机器人配置:
121
+
122
+ ```toml
123
+ [extensions.wechat]
124
+ enabled = true
125
+ kind = "im"
126
+
127
+ [extensions.wechat.config]
128
+ webhookUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=..."
129
+ ```
130
+
131
+ 入站 callback 配置:
132
+
133
+ ```toml
134
+ [extensions.wechat]
135
+ enabled = true
136
+ kind = "im"
137
+
138
+ [extensions.wechat.config]
139
+ callbackToken = "..."
140
+ callbackHost = "127.0.0.1"
141
+ callbackPort = 0
142
+ ```
143
+
144
+ 然后启动本机 Host 或 GUI。Telegram 使用 Bot API long polling,不需要 Relay 或 webhook。QQ 使用官方 WebSocket Gateway,不需要公网回调。微信 callback 如果要被微信服务器访问,需要用公网 URL 或隧道转发到本机 callback server。
102
145
 
103
146
  本地开发常用检查:
104
147
 
@@ -270,6 +313,7 @@ Host bridge 负责:
270
313
 
271
314
  - 把 `(extensionId, externalConversationId)` 绑定到固定 `sessionId`。
272
315
  - 使用默认 workspace:`~/.scorel/workspace`。
316
+ - 在 GUI Host 中把后台 IM 新建 session 的 Project 变化主动通知 GUI,侧边栏不需要靠手动展开或定时轮询才看到新 IM session。
273
317
  - 把 IM 消息提交到现有 `send_message` 路径。
274
318
  - 在用户消息前注入 hidden `harness_item kind="channel_context"`,说明来源 channel、conversation type、sender display name、是否 mention bot。
275
319
  - 为当前 IM turn 暴露 `SendChannelMessage`。
@@ -291,6 +335,13 @@ Telegram 是第一个 built-in IM provider:
291
335
  - `credentialMode = "direct"` 时直接读取 `apiKey`。
292
336
  - V1 只发纯文本,不做 webhook、媒体、inline keyboard 或主动跨 chat 发送。
293
337
 
338
+ QQ Bot 和微信 / 企业微信沿用同一条 channel bridge:
339
+
340
+ - QQ 使用官方 `App ID` / `App Secret` 换取 Access Token,发送消息走 REST API,接收消息走官方 WebSocket Gateway。
341
+ - 微信 / 企业微信群机器人 Webhook 只负责出站发送。
342
+ - 微信入站接收走公众号 plaintext callback;当前不实现个人微信自动化、企微加密回调解密、公网 tunnel 或 TLS 托管。
343
+ - QQ 和微信默认都不要求用户配置 env var。
344
+
294
345
  ## Editing Mode
295
346
 
296
347
  Coding 能力由内置工具提供,不让模型直接把所有事情都塞进 shell。
@@ -350,7 +401,7 @@ GUI 更偏本地桌面工作台,WebUI 更偏 hosted/remote control。二者都
350
401
  - follow-up / steer / cancel。
351
402
  - provider/model settings。
352
403
  - memory settings。
353
- - IM settings,包括 Telegram enable、env/direct token、allowed chats。
404
+ - IM settings,包括 Telegram enable、env/direct token、allowed chats、QQ App ID / App Secret、WeChat outbound webhook 和 inbound callback
354
405
  - Relay device pairing 和 remote project 选择。
355
406
 
356
407
  ## Status
@@ -371,6 +422,8 @@ GUI 更偏本地桌面工作台,WebUI 更偏 hosted/remote control。二者都
371
422
  - provider/model profile 和 auxiliary model。
372
423
  - extension manifest + IM channel bridge。
373
424
  - built-in Telegram IM extension。
425
+ - built-in QQ Bot IM extension。
426
+ - WeChat outbound webhook 和 official-account style plaintext callback。
374
427
  - GUI IM settings。
375
428
 
376
429
  计划中的方向: