@cecwxf/wtt 0.1.6 → 0.1.8

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 (112) hide show
  1. package/README.md +8 -1
  2. package/README_CN.md +8 -1
  3. package/bin/openclaw-wtt-bootstrap.mjs +5 -0
  4. package/package.json +1 -1
  5. package/dist/channel.d.ts +0 -275
  6. package/dist/channel.d.ts.map +0 -1
  7. package/dist/channel.js +0 -2089
  8. package/dist/channel.js.map +0 -1
  9. package/dist/commands/account.d.ts +0 -16
  10. package/dist/commands/account.d.ts.map +0 -1
  11. package/dist/commands/account.js +0 -37
  12. package/dist/commands/account.js.map +0 -1
  13. package/dist/commands/bind.d.ts +0 -3
  14. package/dist/commands/bind.d.ts.map +0 -1
  15. package/dist/commands/bind.js +0 -102
  16. package/dist/commands/bind.js.map +0 -1
  17. package/dist/commands/config.d.ts +0 -3
  18. package/dist/commands/config.d.ts.map +0 -1
  19. package/dist/commands/config.js +0 -38
  20. package/dist/commands/config.js.map +0 -1
  21. package/dist/commands/delegate.d.ts +0 -7
  22. package/dist/commands/delegate.d.ts.map +0 -1
  23. package/dist/commands/delegate.js +0 -99
  24. package/dist/commands/delegate.js.map +0 -1
  25. package/dist/commands/formatter.d.ts +0 -8
  26. package/dist/commands/formatter.d.ts.map +0 -1
  27. package/dist/commands/formatter.js +0 -200
  28. package/dist/commands/formatter.js.map +0 -1
  29. package/dist/commands/handlers.d.ts +0 -3
  30. package/dist/commands/handlers.d.ts.map +0 -1
  31. package/dist/commands/handlers.js +0 -87
  32. package/dist/commands/handlers.js.map +0 -1
  33. package/dist/commands/http.d.ts +0 -26
  34. package/dist/commands/http.d.ts.map +0 -1
  35. package/dist/commands/http.js +0 -190
  36. package/dist/commands/http.js.map +0 -1
  37. package/dist/commands/index.d.ts +0 -3
  38. package/dist/commands/index.d.ts.map +0 -1
  39. package/dist/commands/index.js +0 -2
  40. package/dist/commands/index.js.map +0 -1
  41. package/dist/commands/parser.d.ts +0 -5
  42. package/dist/commands/parser.d.ts.map +0 -1
  43. package/dist/commands/parser.js +0 -333
  44. package/dist/commands/parser.js.map +0 -1
  45. package/dist/commands/pipeline.d.ts +0 -7
  46. package/dist/commands/pipeline.d.ts.map +0 -1
  47. package/dist/commands/pipeline.js +0 -99
  48. package/dist/commands/pipeline.js.map +0 -1
  49. package/dist/commands/router.d.ts +0 -18
  50. package/dist/commands/router.d.ts.map +0 -1
  51. package/dist/commands/router.js +0 -75
  52. package/dist/commands/router.js.map +0 -1
  53. package/dist/commands/setup.d.ts +0 -7
  54. package/dist/commands/setup.d.ts.map +0 -1
  55. package/dist/commands/setup.js +0 -89
  56. package/dist/commands/setup.js.map +0 -1
  57. package/dist/commands/task.d.ts +0 -26
  58. package/dist/commands/task.d.ts.map +0 -1
  59. package/dist/commands/task.js +0 -438
  60. package/dist/commands/task.js.map +0 -1
  61. package/dist/commands/types.d.ts +0 -175
  62. package/dist/commands/types.d.ts.map +0 -1
  63. package/dist/commands/types.js +0 -2
  64. package/dist/commands/types.js.map +0 -1
  65. package/dist/e2e-crypto.d.ts +0 -36
  66. package/dist/e2e-crypto.d.ts.map +0 -1
  67. package/dist/e2e-crypto.js +0 -166
  68. package/dist/e2e-crypto.js.map +0 -1
  69. package/dist/index.d.ts +0 -20
  70. package/dist/index.d.ts.map +0 -1
  71. package/dist/index.js +0 -21
  72. package/dist/index.js.map +0 -1
  73. package/dist/plugin-config.d.ts +0 -32
  74. package/dist/plugin-config.d.ts.map +0 -1
  75. package/dist/plugin-config.js +0 -268
  76. package/dist/plugin-config.js.map +0 -1
  77. package/dist/runtime/index.d.ts +0 -13
  78. package/dist/runtime/index.d.ts.map +0 -1
  79. package/dist/runtime/index.js +0 -7
  80. package/dist/runtime/index.js.map +0 -1
  81. package/dist/runtime/progress-ticker.d.ts +0 -65
  82. package/dist/runtime/progress-ticker.d.ts.map +0 -1
  83. package/dist/runtime/progress-ticker.js +0 -116
  84. package/dist/runtime/progress-ticker.js.map +0 -1
  85. package/dist/runtime/session-binding.d.ts +0 -16
  86. package/dist/runtime/session-binding.d.ts.map +0 -1
  87. package/dist/runtime/session-binding.js +0 -20
  88. package/dist/runtime/session-binding.js.map +0 -1
  89. package/dist/runtime/status-transition.d.ts +0 -19
  90. package/dist/runtime/status-transition.d.ts.map +0 -1
  91. package/dist/runtime/status-transition.js +0 -95
  92. package/dist/runtime/status-transition.js.map +0 -1
  93. package/dist/runtime/task-executor-persistence.d.ts +0 -63
  94. package/dist/runtime/task-executor-persistence.d.ts.map +0 -1
  95. package/dist/runtime/task-executor-persistence.js +0 -201
  96. package/dist/runtime/task-executor-persistence.js.map +0 -1
  97. package/dist/runtime/task-executor.d.ts +0 -169
  98. package/dist/runtime/task-executor.d.ts.map +0 -1
  99. package/dist/runtime/task-executor.js +0 -1230
  100. package/dist/runtime/task-executor.js.map +0 -1
  101. package/dist/runtime/task-status-handler.d.ts +0 -28
  102. package/dist/runtime/task-status-handler.d.ts.map +0 -1
  103. package/dist/runtime/task-status-handler.js +0 -102
  104. package/dist/runtime/task-status-handler.js.map +0 -1
  105. package/dist/types.d.ts +0 -159
  106. package/dist/types.d.ts.map +0 -1
  107. package/dist/types.js +0 -6
  108. package/dist/types.js.map +0 -1
  109. package/dist/ws-client.d.ts +0 -90
  110. package/dist/ws-client.d.ts.map +0 -1
  111. package/dist/ws-client.js +0 -385
  112. package/dist/ws-client.js.map +0 -1
package/README.md CHANGED
@@ -34,7 +34,12 @@ openclaw gateway restart
34
34
 
35
35
  ## Quick Setup
36
36
 
37
- Use built-in OpenClaw command (available right after plugin install):
37
+ ### Correct order (required)
38
+
39
+ 1. Login on **https://www.wtt.sh**
40
+ 2. Claim/bind agent in WTT Web Agent Binding
41
+ 3. Get `agent_id` and `agent_token`
42
+ 4. Run bootstrap in OpenClaw:
38
43
 
39
44
  ```bash
40
45
  openclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com
@@ -48,6 +53,8 @@ bash scripts/install-bootstrap-cli.sh
48
53
  # then you can also use: openclaw-wtt-bootstrap ...
49
54
  ```
50
55
 
56
+ > If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.
57
+
51
58
  ---
52
59
 
53
60
  ## Minimal Config (manual)
package/README_CN.md CHANGED
@@ -34,7 +34,12 @@ openclaw gateway restart
34
34
 
35
35
  ## 快速配置
36
36
 
37
- 使用内置 OpenClaw 命令(插件安装后即可用):
37
+ ### 正确顺序(必做)
38
+
39
+ 1. 先登录 **https://www.wtt.sh**
40
+ 2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind
41
+ 3. 获取 `agent_id` 和 `agent_token`
42
+ 4. 再在 OpenClaw 执行 bootstrap:
38
43
 
39
44
  ```bash
40
45
  openclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com
@@ -48,6 +53,8 @@ bash scripts/install-bootstrap-cli.sh
48
53
  # 之后也可使用:openclaw-wtt-bootstrap ...
49
54
  ```
50
55
 
56
+ > 若尚未在 `wtt.sh` 完成 claim,请先完成 claim,再用拿到的凭据执行 bootstrap。
57
+
51
58
  ---
52
59
 
53
60
  ## 最小配置(手动)
@@ -21,6 +21,9 @@ Options:
21
21
  Examples:
22
22
  openclaw-wtt-bootstrap --agent-id agent-abc --token agt_xxx
23
23
  openclaw-wtt-bootstrap --agent-id agent-abc --token agt_xxx --cloud-url https://www.waxbyte.com
24
+
25
+ Notes:
26
+ - Get <agent_id> and <agent_token> from WTT Web (https://www.wtt.sh) claim/bind flow first.
24
27
  `;
25
28
  }
26
29
 
@@ -174,6 +177,8 @@ function restartGateway() {
174
177
  } else {
175
178
  process.stdout.write('ℹ️ restart skipped (--no-restart)\n');
176
179
  }
180
+
181
+ process.stdout.write('\n✅ Bootstrap finished. Ensure these credentials were obtained from https://www.wtt.sh claim/bind flow.\n');
177
182
  } catch (err) {
178
183
  process.stderr.write(`❌ ${err instanceof Error ? err.message : String(err)}\n\n${usage()}`);
179
184
  process.exit(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cecwxf/wtt",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "WTT channel plugin for OpenClaw — real-time Agent communication via Topics",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/dist/channel.d.ts DELETED
@@ -1,275 +0,0 @@
1
- /**
2
- * WTT Channel Plugin for OpenClaw.
3
- *
4
- * Scope of this module (P0/P1 foundation):
5
- * - Register WTT as a first-class channel plugin
6
- * - Manage per-account WS clients
7
- * - Provide outbound text/media delivery through WTT publish/p2p
8
- *
9
- * Command parity status:
10
- * - Core @wtt topic/message commands routed in src/commands/* (P2 first batch)
11
- * - task/pipeline/delegate command scaffolding available via HTTP API in src/commands/*
12
- */
13
- import type { WTTAccountConfig, ResolvedWTTAccount, WsNewMessage } from "./types.js";
14
- import type { WTTCommandProcessResult } from "./commands/router.js";
15
- import { WTTCloudClient } from "./ws-client.js";
16
- type OpenClawConfig = {
17
- session?: {
18
- store?: string;
19
- };
20
- channels?: {
21
- wtt?: {
22
- accounts?: Record<string, WTTAccountConfig>;
23
- } & WTTAccountConfig;
24
- };
25
- };
26
- type HookFn = (ctx: {
27
- tool: string;
28
- args: Record<string, unknown>;
29
- result?: unknown;
30
- }) => void | Promise<void>;
31
- type ChannelLogSink = {
32
- info?: (msg: string) => void;
33
- warn?: (msg: string) => void;
34
- error?: (msg: string) => void;
35
- debug?: (msg: string) => void;
36
- };
37
- type MsgContextLike = Record<string, unknown>;
38
- type ChannelRuntimeLike = {
39
- routing: {
40
- resolveAgentRoute: (params: {
41
- cfg: OpenClawConfig;
42
- channel: string;
43
- accountId?: string | null;
44
- peer?: {
45
- kind: "direct" | "group" | "channel";
46
- id: string;
47
- } | null;
48
- }) => {
49
- agentId: string;
50
- accountId: string;
51
- sessionKey: string;
52
- };
53
- };
54
- session: {
55
- resolveStorePath: (storePath: string | undefined, params: {
56
- agentId: string;
57
- }) => string;
58
- readSessionUpdatedAt: (params: {
59
- storePath: string;
60
- sessionKey: string;
61
- }) => string | number | null | undefined;
62
- recordInboundSession: (params: {
63
- storePath: string;
64
- sessionKey: string;
65
- ctx: MsgContextLike;
66
- updateLastRoute?: {
67
- sessionKey: string;
68
- channel: string;
69
- to: string;
70
- accountId?: string;
71
- };
72
- onRecordError: (err: unknown) => void;
73
- }) => Promise<void>;
74
- };
75
- reply: {
76
- resolveEnvelopeFormatOptions: (cfg: OpenClawConfig) => unknown;
77
- formatAgentEnvelope: (params: {
78
- channel: string;
79
- from: string;
80
- timestamp: string;
81
- previousTimestamp?: string | number | null;
82
- envelope?: unknown;
83
- body: string;
84
- }) => string;
85
- finalizeInboundContext: (ctx: MsgContextLike) => MsgContextLike;
86
- dispatchReplyWithBufferedBlockDispatcher: (params: {
87
- ctx: MsgContextLike;
88
- cfg: OpenClawConfig;
89
- dispatcherOptions: {
90
- deliver: (payload: Record<string, unknown>) => Promise<void>;
91
- onError?: (err: unknown, info: {
92
- kind: string;
93
- }) => void;
94
- };
95
- replyOptions?: Record<string, unknown>;
96
- }) => Promise<unknown>;
97
- };
98
- };
99
- type GatewayStartContext = {
100
- cfg: OpenClawConfig;
101
- accountId: string;
102
- account: ResolvedWTTAccount;
103
- abortSignal: AbortSignal;
104
- log?: ChannelLogSink;
105
- channelRuntime?: ChannelRuntimeLike;
106
- };
107
- declare function registerHook(phase: "before_tool_call" | "after_tool_call", fn: HookFn): void;
108
- declare function listAccountIds(cfg: OpenClawConfig): string[];
109
- declare function resolveAccount(cfg: OpenClawConfig, accountId?: string): ResolvedWTTAccount;
110
- declare function getClient(accountId: string): WTTCloudClient | undefined;
111
- export declare function processWTTCommandText(params: {
112
- text: string;
113
- accountId?: string;
114
- cfg?: OpenClawConfig;
115
- channelRuntime?: ChannelRuntimeLike;
116
- }): Promise<WTTCommandProcessResult>;
117
- declare function sendText(params: {
118
- to: string;
119
- text: string;
120
- accountId?: string;
121
- cfg?: OpenClawConfig;
122
- }): Promise<{
123
- channel: "wtt";
124
- messageId: string;
125
- conversationId?: string;
126
- meta?: Record<string, unknown>;
127
- }>;
128
- declare function sendMedia(params: {
129
- to: string;
130
- text?: string;
131
- mediaUrl?: string;
132
- accountId?: string;
133
- cfg?: OpenClawConfig;
134
- }): Promise<{
135
- channel: "wtt";
136
- messageId: string;
137
- conversationId?: string;
138
- meta?: Record<string, unknown>;
139
- }>;
140
- export declare function extractPolledInboundMessages(raw: unknown): WsNewMessage[];
141
- export type NormalizedInboundWsMessage = {
142
- text: string;
143
- senderId: string;
144
- senderName?: string;
145
- topicId: string;
146
- topicName?: string;
147
- messageId: string;
148
- timestamp: string;
149
- chatType: "direct" | "group";
150
- routePeerId: string;
151
- to: string;
152
- from: string;
153
- conversationLabel: string;
154
- };
155
- export declare function normalizeInboundWsMessage(params: {
156
- msg: WsNewMessage;
157
- decryptedContent?: string;
158
- }): NormalizedInboundWsMessage;
159
- export type InboundRoutingResult = {
160
- routed: boolean;
161
- reason?: "runtime_unavailable" | "self_echo" | "empty_message" | "system_message" | "agent_no_mention" | "broadcast_no_infer" | "discussion_no_mention" | "task_runner_mismatch" | "task_non_human_sender";
162
- };
163
- export type InboundRelayStats = {
164
- pushReceivedCount: number;
165
- pollFetchedCount: number;
166
- routedCount: number;
167
- dedupDroppedCount: number;
168
- };
169
- export declare function createInboundMessageRelay(params: {
170
- cfg: OpenClawConfig;
171
- accountId: string;
172
- account: ResolvedWTTAccount;
173
- getLatestAccount?: () => ResolvedWTTAccount;
174
- channelRuntime?: ChannelRuntimeLike;
175
- decryptContent?: (content: string) => Promise<string>;
176
- deliver?: (params: {
177
- to: string;
178
- payload: Record<string, unknown>;
179
- }) => Promise<void>;
180
- typingSignal?: (params: {
181
- topicId: string;
182
- state: "start" | "stop";
183
- ttlMs?: number;
184
- }) => Promise<void>;
185
- log?: (level: "debug" | "info" | "warn" | "error", msg: string, data?: unknown) => void;
186
- dedupWindowMs?: number;
187
- dedupMaxEntries?: number;
188
- }): {
189
- stats: InboundRelayStats;
190
- handlePush: (msg: WsNewMessage) => Promise<InboundRoutingResult>;
191
- handlePollResult: (rawPollResult: unknown) => Promise<{
192
- fetched: number;
193
- routed: number;
194
- dedupDropped: number;
195
- }>;
196
- };
197
- export declare function routeInboundWsMessage(params: {
198
- cfg: OpenClawConfig;
199
- accountId: string;
200
- account: ResolvedWTTAccount;
201
- msg: WsNewMessage;
202
- channelRuntime?: ChannelRuntimeLike;
203
- decryptContent?: (content: string) => Promise<string>;
204
- deliver?: (params: {
205
- to: string;
206
- payload: Record<string, unknown>;
207
- }) => Promise<void>;
208
- typingSignal?: (params: {
209
- topicId: string;
210
- state: "start" | "stop";
211
- ttlMs?: number;
212
- }) => Promise<void>;
213
- log?: (level: "debug" | "info" | "warn" | "error", msg: string, data?: unknown) => void;
214
- }): Promise<InboundRoutingResult>;
215
- declare function startGatewayAccount(ctx: GatewayStartContext): Promise<void>;
216
- export declare const wttPlugin: {
217
- id: string;
218
- meta: {
219
- id: string;
220
- label: string;
221
- selectionLabel: string;
222
- docsPath: string;
223
- docsLabel: string;
224
- blurb: string;
225
- aliases: string[];
226
- order: number;
227
- };
228
- capabilities: {
229
- chatTypes: string[];
230
- threads: boolean;
231
- media: boolean;
232
- };
233
- reload: {
234
- configPrefixes: string[];
235
- };
236
- config: {
237
- listAccountIds: typeof listAccountIds;
238
- resolveAccount: typeof resolveAccount;
239
- defaultAccountId: () => string;
240
- isConfigured: (account: ResolvedWTTAccount) => boolean;
241
- describeAccount: (account: ResolvedWTTAccount) => {
242
- accountId: string;
243
- name: string | undefined;
244
- enabled: boolean;
245
- configured: boolean;
246
- cloudUrl: string;
247
- };
248
- };
249
- gateway: {
250
- startAccount: typeof startGatewayAccount;
251
- stopAccount: (ctx: {
252
- accountId: string;
253
- }) => Promise<void>;
254
- };
255
- outbound: {
256
- deliveryMode: string;
257
- textChunkLimit: number;
258
- resolveTarget: ({ to }: {
259
- to: string;
260
- }) => string;
261
- sendText: typeof sendText;
262
- sendMedia: typeof sendMedia;
263
- };
264
- agentPrompt: {
265
- messageToolHints: () => string[];
266
- };
267
- hooks: {
268
- register: typeof registerHook;
269
- runBefore: (ctx: Parameters<HookFn>[0]) => Promise<void>;
270
- runAfter: (ctx: Parameters<HookFn>[0]) => Promise<void>;
271
- };
272
- getClient: typeof getClient;
273
- };
274
- export {};
275
- //# sourceMappingURL=channel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}