workerclaw 0.2.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.
Files changed (224) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +129 -0
  3. package/dist/active-behavior/behavior-scheduler.d.ts +119 -0
  4. package/dist/active-behavior/behavior-scheduler.d.ts.map +1 -0
  5. package/dist/active-behavior/behavior-scheduler.js +297 -0
  6. package/dist/active-behavior/behavior-scheduler.js.map +1 -0
  7. package/dist/active-behavior/frequency-control.d.ts +72 -0
  8. package/dist/active-behavior/frequency-control.d.ts.map +1 -0
  9. package/dist/active-behavior/frequency-control.js +206 -0
  10. package/dist/active-behavior/frequency-control.js.map +1 -0
  11. package/dist/active-behavior/index.d.ts +8 -0
  12. package/dist/active-behavior/index.d.ts.map +1 -0
  13. package/dist/active-behavior/index.js +6 -0
  14. package/dist/active-behavior/index.js.map +1 -0
  15. package/dist/agent/agent-engine.d.ts +122 -0
  16. package/dist/agent/agent-engine.d.ts.map +1 -0
  17. package/dist/agent/agent-engine.js +380 -0
  18. package/dist/agent/agent-engine.js.map +1 -0
  19. package/dist/agent/context-window.d.ts +69 -0
  20. package/dist/agent/context-window.d.ts.map +1 -0
  21. package/dist/agent/context-window.js +210 -0
  22. package/dist/agent/context-window.js.map +1 -0
  23. package/dist/agent/llm-client.d.ts +37 -0
  24. package/dist/agent/llm-client.d.ts.map +1 -0
  25. package/dist/agent/llm-client.js +155 -0
  26. package/dist/agent/llm-client.js.map +1 -0
  27. package/dist/agent/personality.d.ts +71 -0
  28. package/dist/agent/personality.d.ts.map +1 -0
  29. package/dist/agent/personality.js +147 -0
  30. package/dist/agent/personality.js.map +1 -0
  31. package/dist/agent/session-manager.d.ts +111 -0
  32. package/dist/agent/session-manager.d.ts.map +1 -0
  33. package/dist/agent/session-manager.js +205 -0
  34. package/dist/agent/session-manager.js.map +1 -0
  35. package/dist/agent/tool-executor.d.ts +34 -0
  36. package/dist/agent/tool-executor.d.ts.map +1 -0
  37. package/dist/agent/tool-executor.js +145 -0
  38. package/dist/agent/tool-executor.js.map +1 -0
  39. package/dist/agent/tool-registry.d.ts +67 -0
  40. package/dist/agent/tool-registry.d.ts.map +1 -0
  41. package/dist/agent/tool-registry.js +272 -0
  42. package/dist/agent/tool-registry.js.map +1 -0
  43. package/dist/cli/configure.d.ts +16 -0
  44. package/dist/cli/configure.d.ts.map +1 -0
  45. package/dist/cli/configure.js +212 -0
  46. package/dist/cli/configure.js.map +1 -0
  47. package/dist/cli/index.d.ts +17 -0
  48. package/dist/cli/index.d.ts.map +1 -0
  49. package/dist/cli/index.js +256 -0
  50. package/dist/cli/index.js.map +1 -0
  51. package/dist/cli/prompter.d.ts +59 -0
  52. package/dist/cli/prompter.d.ts.map +1 -0
  53. package/dist/cli/prompter.js +120 -0
  54. package/dist/cli/prompter.js.map +1 -0
  55. package/dist/cli/sections/index.d.ts +9 -0
  56. package/dist/cli/sections/index.d.ts.map +1 -0
  57. package/dist/cli/sections/index.js +9 -0
  58. package/dist/cli/sections/index.js.map +1 -0
  59. package/dist/cli/sections/llm.d.ts +14 -0
  60. package/dist/cli/sections/llm.d.ts.map +1 -0
  61. package/dist/cli/sections/llm.js +155 -0
  62. package/dist/cli/sections/llm.js.map +1 -0
  63. package/dist/cli/sections/personality.d.ts +14 -0
  64. package/dist/cli/sections/personality.d.ts.map +1 -0
  65. package/dist/cli/sections/personality.js +90 -0
  66. package/dist/cli/sections/personality.js.map +1 -0
  67. package/dist/cli/sections/platform.d.ts +14 -0
  68. package/dist/cli/sections/platform.d.ts.map +1 -0
  69. package/dist/cli/sections/platform.js +179 -0
  70. package/dist/cli/sections/platform.js.map +1 -0
  71. package/dist/cli/sections/security.d.ts +14 -0
  72. package/dist/cli/sections/security.d.ts.map +1 -0
  73. package/dist/cli/sections/security.js +106 -0
  74. package/dist/cli/sections/security.js.map +1 -0
  75. package/dist/cli/sections/skills.d.ts +10 -0
  76. package/dist/cli/sections/skills.d.ts.map +1 -0
  77. package/dist/cli/sections/skills.js +149 -0
  78. package/dist/cli/sections/skills.js.map +1 -0
  79. package/dist/cli.d.ts +8 -0
  80. package/dist/cli.d.ts.map +1 -0
  81. package/dist/cli.js +116 -0
  82. package/dist/cli.js.map +1 -0
  83. package/dist/core/config.d.ts +175 -0
  84. package/dist/core/config.d.ts.map +1 -0
  85. package/dist/core/config.js +109 -0
  86. package/dist/core/config.js.map +1 -0
  87. package/dist/core/events.d.ts +211 -0
  88. package/dist/core/events.d.ts.map +1 -0
  89. package/dist/core/events.js +152 -0
  90. package/dist/core/events.js.map +1 -0
  91. package/dist/core/logger.d.ts +23 -0
  92. package/dist/core/logger.d.ts.map +1 -0
  93. package/dist/core/logger.js +53 -0
  94. package/dist/core/logger.js.map +1 -0
  95. package/dist/core/workerclaw.d.ts +83 -0
  96. package/dist/core/workerclaw.d.ts.map +1 -0
  97. package/dist/core/workerclaw.js +161 -0
  98. package/dist/core/workerclaw.js.map +1 -0
  99. package/dist/index.d.ts +27 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +21 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/ingress/message-parser.d.ts +36 -0
  104. package/dist/ingress/message-parser.d.ts.map +1 -0
  105. package/dist/ingress/message-parser.js +107 -0
  106. package/dist/ingress/message-parser.js.map +1 -0
  107. package/dist/ingress/miniabc-client.d.ts +109 -0
  108. package/dist/ingress/miniabc-client.d.ts.map +1 -0
  109. package/dist/ingress/miniabc-client.js +345 -0
  110. package/dist/ingress/miniabc-client.js.map +1 -0
  111. package/dist/ingress/platform-api.d.ts +82 -0
  112. package/dist/ingress/platform-api.d.ts.map +1 -0
  113. package/dist/ingress/platform-api.js +209 -0
  114. package/dist/ingress/platform-api.js.map +1 -0
  115. package/dist/sandbox/command-sandbox.d.ts +46 -0
  116. package/dist/sandbox/command-sandbox.d.ts.map +1 -0
  117. package/dist/sandbox/command-sandbox.js +144 -0
  118. package/dist/sandbox/command-sandbox.js.map +1 -0
  119. package/dist/sandbox/fs-sandbox.d.ts +56 -0
  120. package/dist/sandbox/fs-sandbox.d.ts.map +1 -0
  121. package/dist/sandbox/fs-sandbox.js +119 -0
  122. package/dist/sandbox/fs-sandbox.js.map +1 -0
  123. package/dist/sandbox/network-sandbox.d.ts +41 -0
  124. package/dist/sandbox/network-sandbox.d.ts.map +1 -0
  125. package/dist/sandbox/network-sandbox.js +114 -0
  126. package/dist/sandbox/network-sandbox.js.map +1 -0
  127. package/dist/security/content-scanner.d.ts +59 -0
  128. package/dist/security/content-scanner.d.ts.map +1 -0
  129. package/dist/security/content-scanner.js +289 -0
  130. package/dist/security/content-scanner.js.map +1 -0
  131. package/dist/security/gate.d.ts +78 -0
  132. package/dist/security/gate.d.ts.map +1 -0
  133. package/dist/security/gate.js +150 -0
  134. package/dist/security/gate.js.map +1 -0
  135. package/dist/security/permission-level.d.ts +68 -0
  136. package/dist/security/permission-level.d.ts.map +1 -0
  137. package/dist/security/permission-level.js +191 -0
  138. package/dist/security/permission-level.js.map +1 -0
  139. package/dist/security/rate-limiter.d.ts +52 -0
  140. package/dist/security/rate-limiter.d.ts.map +1 -0
  141. package/dist/security/rate-limiter.js +133 -0
  142. package/dist/security/rate-limiter.js.map +1 -0
  143. package/dist/security/source-verifier.d.ts +33 -0
  144. package/dist/security/source-verifier.d.ts.map +1 -0
  145. package/dist/security/source-verifier.js +106 -0
  146. package/dist/security/source-verifier.js.map +1 -0
  147. package/dist/skills/builtin/code.d.ts +27 -0
  148. package/dist/skills/builtin/code.d.ts.map +1 -0
  149. package/dist/skills/builtin/code.js +132 -0
  150. package/dist/skills/builtin/code.js.map +1 -0
  151. package/dist/skills/builtin/index.d.ts +12 -0
  152. package/dist/skills/builtin/index.d.ts.map +1 -0
  153. package/dist/skills/builtin/index.js +16 -0
  154. package/dist/skills/builtin/index.js.map +1 -0
  155. package/dist/skills/builtin/search.d.ts +27 -0
  156. package/dist/skills/builtin/search.d.ts.map +1 -0
  157. package/dist/skills/builtin/search.js +105 -0
  158. package/dist/skills/builtin/search.js.map +1 -0
  159. package/dist/skills/builtin/writing.d.ts +22 -0
  160. package/dist/skills/builtin/writing.d.ts.map +1 -0
  161. package/dist/skills/builtin/writing.js +93 -0
  162. package/dist/skills/builtin/writing.js.map +1 -0
  163. package/dist/skills/index.d.ts +11 -0
  164. package/dist/skills/index.d.ts.map +1 -0
  165. package/dist/skills/index.js +10 -0
  166. package/dist/skills/index.js.map +1 -0
  167. package/dist/skills/pack-loader.d.ts +31 -0
  168. package/dist/skills/pack-loader.d.ts.map +1 -0
  169. package/dist/skills/pack-loader.js +167 -0
  170. package/dist/skills/pack-loader.js.map +1 -0
  171. package/dist/skills/pack-registry.d.ts +40 -0
  172. package/dist/skills/pack-registry.d.ts.map +1 -0
  173. package/dist/skills/pack-registry.js +80 -0
  174. package/dist/skills/pack-registry.js.map +1 -0
  175. package/dist/skills/pack-types.d.ts +64 -0
  176. package/dist/skills/pack-types.d.ts.map +1 -0
  177. package/dist/skills/pack-types.js +7 -0
  178. package/dist/skills/pack-types.js.map +1 -0
  179. package/dist/skills/skill-registry.d.ts +83 -0
  180. package/dist/skills/skill-registry.d.ts.map +1 -0
  181. package/dist/skills/skill-registry.js +206 -0
  182. package/dist/skills/skill-registry.js.map +1 -0
  183. package/dist/skills/skill-runner.d.ts +49 -0
  184. package/dist/skills/skill-runner.d.ts.map +1 -0
  185. package/dist/skills/skill-runner.js +128 -0
  186. package/dist/skills/skill-runner.js.map +1 -0
  187. package/dist/skills/types.d.ts +94 -0
  188. package/dist/skills/types.d.ts.map +1 -0
  189. package/dist/skills/types.js +7 -0
  190. package/dist/skills/types.js.map +1 -0
  191. package/dist/task/concurrency.d.ts +87 -0
  192. package/dist/task/concurrency.d.ts.map +1 -0
  193. package/dist/task/concurrency.js +269 -0
  194. package/dist/task/concurrency.js.map +1 -0
  195. package/dist/task/task-evaluator.d.ts +52 -0
  196. package/dist/task/task-evaluator.d.ts.map +1 -0
  197. package/dist/task/task-evaluator.js +141 -0
  198. package/dist/task/task-evaluator.js.map +1 -0
  199. package/dist/task/task-manager.d.ts +112 -0
  200. package/dist/task/task-manager.d.ts.map +1 -0
  201. package/dist/task/task-manager.js +382 -0
  202. package/dist/task/task-manager.js.map +1 -0
  203. package/dist/task/task-state-machine.d.ts +63 -0
  204. package/dist/task/task-state-machine.d.ts.map +1 -0
  205. package/dist/task/task-state-machine.js +149 -0
  206. package/dist/task/task-state-machine.js.map +1 -0
  207. package/dist/types/agent.d.ts +79 -0
  208. package/dist/types/agent.d.ts.map +1 -0
  209. package/dist/types/agent.js +7 -0
  210. package/dist/types/agent.js.map +1 -0
  211. package/dist/types/index.d.ts +7 -0
  212. package/dist/types/index.d.ts.map +1 -0
  213. package/dist/types/index.js +5 -0
  214. package/dist/types/index.js.map +1 -0
  215. package/dist/types/message.d.ts +87 -0
  216. package/dist/types/message.d.ts.map +1 -0
  217. package/dist/types/message.js +30 -0
  218. package/dist/types/message.js.map +1 -0
  219. package/dist/types/task.d.ts +176 -0
  220. package/dist/types/task.d.ts.map +1 -0
  221. package/dist/types/task.js +5 -0
  222. package/dist/types/task.js.map +1 -0
  223. package/package.json +57 -0
  224. package/workerclaw.config.example.json +78 -0
package/dist/cli.js ADDED
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * WorkerClaw CLI 入口
4
+ *
5
+ * 用法: workerclaw [config-file]
6
+ */
7
+ import { readFileSync, existsSync } from 'node:fs';
8
+ import { resolve } from 'node:path';
9
+ import { createWorkerClaw } from './index.js';
10
+ // ==================== 环境变量替换 ====================
11
+ function resolveEnvVars(obj) {
12
+ if (typeof obj === 'string') {
13
+ // 替换 ${ENV_VAR} 格式的环境变量
14
+ return obj.replace(/\$\{([^}]+)\}/g, (_, varName) => {
15
+ const value = process.env[varName];
16
+ if (value === undefined) {
17
+ console.error(`⚠️ 环境变量 ${varName} 未设置`);
18
+ return '';
19
+ }
20
+ return value;
21
+ });
22
+ }
23
+ if (Array.isArray(obj)) {
24
+ return obj.map(resolveEnvVars);
25
+ }
26
+ if (obj && typeof obj === 'object') {
27
+ const result = {};
28
+ for (const key of Object.keys(obj)) {
29
+ result[key] = resolveEnvVars(obj[key]);
30
+ }
31
+ return result;
32
+ }
33
+ return obj;
34
+ }
35
+ // ==================== 主函数 ====================
36
+ async function main() {
37
+ // 读取配置文件
38
+ let configPath = process.argv[2];
39
+ if (!configPath) {
40
+ // 默认配置路径
41
+ const defaultPaths = [
42
+ './workerclaw.config.json',
43
+ './config/workerclaw.config.json',
44
+ './config.json',
45
+ ];
46
+ for (const p of defaultPaths) {
47
+ if (existsSync(p)) {
48
+ configPath = p;
49
+ break;
50
+ }
51
+ }
52
+ }
53
+ if (!configPath) {
54
+ console.error('❌ 未找到配置文件。请指定配置文件路径:');
55
+ console.error(' workerclaw ./workerclaw.config.json');
56
+ console.error('');
57
+ console.error('或创建 workerclaw.config.json 配置文件。');
58
+ process.exit(1);
59
+ }
60
+ const absPath = resolve(configPath);
61
+ if (!existsSync(absPath)) {
62
+ console.error(`❌ 配置文件不存在: ${absPath}`);
63
+ process.exit(1);
64
+ }
65
+ console.log(`📄 加载配置: ${absPath}`);
66
+ let rawConfig;
67
+ try {
68
+ rawConfig = JSON.parse(readFileSync(absPath, 'utf-8'));
69
+ }
70
+ catch (err) {
71
+ console.error(`❌ 配置文件解析失败: ${err}`);
72
+ process.exit(1);
73
+ }
74
+ // 环境变量替换
75
+ const config = resolveEnvVars(rawConfig);
76
+ // 验证必要配置
77
+ if (!config.platform?.wsUrl || !config.platform?.token) {
78
+ console.error('❌ 缺少必要配置: platform.wsUrl 和 platform.token');
79
+ process.exit(1);
80
+ }
81
+ if (!config.llm?.apiKey || !config.llm?.baseUrl) {
82
+ console.error('❌ 缺少必要配置: llm.apiKey 和 llm.baseUrl');
83
+ process.exit(1);
84
+ }
85
+ // 创建并启动 WorkerClaw
86
+ const workerclaw = createWorkerClaw(config);
87
+ // 优雅关闭
88
+ const shutdown = async (signal) => {
89
+ console.log(`\n收到 ${signal} 信号,正在关闭...`);
90
+ await workerclaw.stop();
91
+ process.exit(0);
92
+ };
93
+ process.on('SIGINT', () => shutdown('SIGINT'));
94
+ process.on('SIGTERM', () => shutdown('SIGTERM'));
95
+ process.on('uncaughtException', async (err) => {
96
+ console.error('未捕获的异常:', err);
97
+ await workerclaw.stop();
98
+ process.exit(1);
99
+ });
100
+ process.on('unhandledRejection', async (reason) => {
101
+ console.error('未处理的 Promise 拒绝:', reason);
102
+ });
103
+ // 启动
104
+ try {
105
+ await workerclaw.start();
106
+ }
107
+ catch (err) {
108
+ console.error('❌ WorkerClaw 启动失败:', err);
109
+ process.exit(1);
110
+ }
111
+ }
112
+ main().catch(err => {
113
+ console.error('启动失败:', err);
114
+ process.exit(1);
115
+ });
116
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * WorkerClaw 配置定义
3
+ */
4
+ export interface PlatformConfig {
5
+ /** 平台 HTTP API 地址 */
6
+ apiUrl: string;
7
+ /** 平台 WebSocket 地址 */
8
+ wsUrl: string;
9
+ /** Bot ID(认证后由平台分配) */
10
+ botId: string;
11
+ /** 认证 Token */
12
+ token: string;
13
+ /** Agent 名称(注册时使用) */
14
+ agentName?: string;
15
+ /** 重连配置 */
16
+ reconnect: {
17
+ maxRetries: number;
18
+ baseDelayMs: number;
19
+ maxDelayMs: number;
20
+ };
21
+ }
22
+ export interface LLMConfig {
23
+ provider: string;
24
+ model: string;
25
+ apiKey: string;
26
+ baseUrl: string;
27
+ safety: {
28
+ maxTokens: number;
29
+ temperature: number;
30
+ topP: number;
31
+ };
32
+ retry: {
33
+ maxRetries: number;
34
+ backoffMs: number;
35
+ };
36
+ }
37
+ export interface RateLimitConfig {
38
+ maxMessagesPerMinute: number;
39
+ maxConcurrentTasks: number;
40
+ }
41
+ export interface PromptInjectionConfig {
42
+ enabled: boolean;
43
+ patterns?: string[];
44
+ }
45
+ export interface MaliciousCommandsConfig {
46
+ enabled: boolean;
47
+ blockPatterns?: string[];
48
+ }
49
+ export interface PIIProtectionConfig {
50
+ enabled: boolean;
51
+ detectTypes?: ('email' | 'phone' | 'id_card' | 'api_key' | 'password')[];
52
+ action?: 'mask' | 'block' | 'warn';
53
+ }
54
+ export interface ResourceExhaustionConfig {
55
+ maxOutputTokens: number;
56
+ maxToolCallsPerTask: number;
57
+ maxTotalDurationMs: number;
58
+ }
59
+ export interface DataExfiltrationConfig {
60
+ enabled: boolean;
61
+ blockedDomains?: string[];
62
+ allowedDomains?: string[];
63
+ blockUnknownDomains?: boolean;
64
+ }
65
+ export interface SecurityConfig {
66
+ rateLimit: RateLimitConfig;
67
+ contentScan: {
68
+ promptInjection: PromptInjectionConfig;
69
+ maliciousCommands: MaliciousCommandsConfig;
70
+ piiProtection?: PIIProtectionConfig;
71
+ resourceExhaustion?: ResourceExhaustionConfig;
72
+ dataExfiltration?: DataExfiltrationConfig;
73
+ };
74
+ sandbox: {
75
+ workDir: string;
76
+ commandTimeoutMs: number;
77
+ taskTimeoutMs: number;
78
+ maxMemoryMB?: number;
79
+ maxOutputKB?: number;
80
+ allowedPaths?: string[];
81
+ deniedPaths?: string[];
82
+ allowLocalhost?: boolean;
83
+ allowedDomains?: string[];
84
+ deniedDomains?: string[];
85
+ };
86
+ }
87
+ export interface TaskConfig {
88
+ autoAccept: {
89
+ enabled: boolean;
90
+ threshold: number;
91
+ maxConcurrent: number;
92
+ };
93
+ /** 并发控制 */
94
+ concurrency: {
95
+ maxConcurrent: number;
96
+ maxPerType: Partial<Record<string, number>>;
97
+ queueSize: number;
98
+ priority: {
99
+ highValueFirst: boolean;
100
+ urgentFirst: boolean;
101
+ };
102
+ };
103
+ /** 任务评估 */
104
+ evaluation: {
105
+ acceptThreshold: number;
106
+ deferThreshold: number;
107
+ weights: {
108
+ capability: number;
109
+ capacity: number;
110
+ risk: number;
111
+ };
112
+ capabilityScores: Partial<Record<string, number>>;
113
+ };
114
+ /** 超时与重试 */
115
+ timeout: {
116
+ taskTimeoutMs: number;
117
+ llmTimeoutMs: number;
118
+ queueTimeoutMs: number;
119
+ retryOnTimeout: boolean;
120
+ maxRetries: number;
121
+ retryDelayMs: number;
122
+ };
123
+ }
124
+ export interface ActiveBehaviorConfig {
125
+ /** 是否启用智能活跃行为 */
126
+ enabled: boolean;
127
+ /** 调度间隔 (ms) */
128
+ checkIntervalMs: number;
129
+ /** 最小空闲时间 (ms) */
130
+ minIdleTimeMs: number;
131
+ /** 行为概率权重 */
132
+ weights: {
133
+ tweet: number;
134
+ browse: number;
135
+ comment: number;
136
+ like: number;
137
+ };
138
+ }
139
+ export interface WorkerClawConfig {
140
+ /** WorkerClaw 实例 ID */
141
+ id: string;
142
+ /** 实例名称 */
143
+ name: string;
144
+ /** 平台配置 */
145
+ platform: PlatformConfig;
146
+ /** LLM 配置 */
147
+ llm: LLMConfig;
148
+ /** 安全配置 */
149
+ security: SecurityConfig;
150
+ /** 任务配置 */
151
+ task: TaskConfig;
152
+ /** 人格配置 */
153
+ personality: {
154
+ name: string;
155
+ tone: string;
156
+ bio: string;
157
+ description?: string;
158
+ expertise?: string[];
159
+ language?: string;
160
+ customSystemPrompt?: string;
161
+ behavior?: {
162
+ proactivity: number;
163
+ humor: number;
164
+ formality: number;
165
+ };
166
+ };
167
+ /** 智能活跃行为配置 */
168
+ activeBehavior?: ActiveBehaviorConfig;
169
+ }
170
+ export declare const DEFAULT_CONFIG: Omit<WorkerClawConfig, 'platform' | 'llm'>;
171
+ /**
172
+ * 深度合并配置
173
+ */
174
+ export declare function mergeConfig(base: Partial<WorkerClawConfig>, overrides: Partial<WorkerClawConfig>): WorkerClawConfig;
175
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * WorkerClaw 配置定义
3
+ */
4
+ // ==================== 默认配置 ====================
5
+ export const DEFAULT_CONFIG = {
6
+ id: 'worker-001',
7
+ name: 'WorkerClaw',
8
+ security: {
9
+ rateLimit: {
10
+ maxMessagesPerMinute: 30,
11
+ maxConcurrentTasks: 3,
12
+ },
13
+ contentScan: {
14
+ promptInjection: { enabled: true },
15
+ maliciousCommands: { enabled: true },
16
+ piiProtection: { enabled: false, action: 'warn' },
17
+ resourceExhaustion: { maxOutputTokens: 8000, maxToolCallsPerTask: 20, maxTotalDurationMs: 300000 },
18
+ dataExfiltration: { enabled: true, blockedDomains: [], allowedDomains: [], blockUnknownDomains: false },
19
+ },
20
+ sandbox: {
21
+ workDir: './data/sandbox',
22
+ commandTimeoutMs: 30000,
23
+ taskTimeoutMs: 300000,
24
+ maxMemoryMB: 512,
25
+ maxOutputKB: 1024,
26
+ allowedPaths: [],
27
+ deniedPaths: ['/etc', '/var', '/usr', '/System', '/Library', '/proc', '/sys'],
28
+ allowLocalhost: false,
29
+ allowedDomains: [],
30
+ deniedDomains: [],
31
+ },
32
+ },
33
+ task: {
34
+ autoAccept: {
35
+ enabled: true,
36
+ threshold: 75,
37
+ maxConcurrent: 3,
38
+ },
39
+ concurrency: {
40
+ maxConcurrent: 3,
41
+ maxPerType: {},
42
+ queueSize: 10,
43
+ priority: {
44
+ highValueFirst: true,
45
+ urgentFirst: true,
46
+ },
47
+ },
48
+ evaluation: {
49
+ acceptThreshold: 80,
50
+ deferThreshold: 60,
51
+ weights: {
52
+ capability: 0.5,
53
+ capacity: 0.2,
54
+ risk: 0.3,
55
+ },
56
+ capabilityScores: {
57
+ text_reply: 90,
58
+ qa: 85,
59
+ translation: 80,
60
+ search_summary: 75,
61
+ writing: 70,
62
+ image_gen: 60,
63
+ data_analysis: 55,
64
+ code_dev: 40,
65
+ system_op: 30,
66
+ },
67
+ },
68
+ timeout: {
69
+ taskTimeoutMs: 300000,
70
+ llmTimeoutMs: 60000,
71
+ queueTimeoutMs: 60000,
72
+ retryOnTimeout: false,
73
+ maxRetries: 1,
74
+ retryDelayMs: 5000,
75
+ },
76
+ },
77
+ personality: {
78
+ name: '小工虾',
79
+ tone: '专业、友好、高效',
80
+ bio: '智工坊平台的打工虾',
81
+ },
82
+ activeBehavior: {
83
+ enabled: true,
84
+ checkIntervalMs: 5 * 60 * 1000,
85
+ minIdleTimeMs: 10 * 60 * 1000,
86
+ weights: {
87
+ tweet: 15,
88
+ browse: 35,
89
+ comment: 20,
90
+ like: 30,
91
+ },
92
+ },
93
+ };
94
+ /**
95
+ * 深度合并配置
96
+ */
97
+ export function mergeConfig(base, overrides) {
98
+ return {
99
+ ...DEFAULT_CONFIG,
100
+ ...base,
101
+ ...overrides,
102
+ security: { ...DEFAULT_CONFIG.security, ...base.security, ...overrides.security },
103
+ task: { ...DEFAULT_CONFIG.task, ...base.task, ...overrides.task },
104
+ personality: { ...DEFAULT_CONFIG.personality, ...base.personality, ...overrides.personality },
105
+ platform: { ...(base.platform || {}), ...(overrides.platform || {}) },
106
+ llm: { ...(base.llm || {}), ...(overrides.llm || {}) },
107
+ };
108
+ }
109
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * WorkerClaw 事件总线
3
+ *
4
+ * 模块间松耦合通信的核心机制
5
+ */
6
+ import type { Task, TaskStatus } from '../types/task.js';
7
+ export declare enum WorkerClawEvent {
8
+ STARTING = "workerclaw:starting",
9
+ READY = "workerclaw:ready",
10
+ SHUTTING_DOWN = "workerclaw:shutting_down",
11
+ SHUTDOWN = "workerclaw:shutdown",
12
+ WS_CONNECTING = "ws:connecting",
13
+ WS_CONNECTED = "ws:connected",
14
+ WS_DISCONNECTED = "ws:disconnected",
15
+ WS_RECONNECTING = "ws:reconnecting",
16
+ WS_ERROR = "ws:error",
17
+ SECURITY_BLOCKED = "security:blocked",
18
+ SECURITY_WARNED = "security:warned",
19
+ TASK_RECEIVED = "task:received",
20
+ TASK_EVALUATED = "task:evaluated",
21
+ TASK_ACCEPTED = "task:accepted",
22
+ TASK_REJECTED = "task:rejected",
23
+ TASK_STARTED = "task:started",
24
+ TASK_PROGRESS = "task:progress",
25
+ TASK_COMPLETED = "task:completed",
26
+ TASK_FAILED = "task:failed",
27
+ TASK_TIMEOUT = "task:timeout",
28
+ TASK_CANCELLED = "task:cancelled",
29
+ TASK_DEFERRED = "task:deferred",
30
+ TASK_QUEUED = "task:queued",
31
+ TASK_DEQUEUED = "task:dequeued",
32
+ TASK_STATE_CHANGED = "task:state_changed",
33
+ TOOL_CALLED = "tool:called",
34
+ TOOL_COMPLETED = "tool:completed",
35
+ TOOL_BLOCKED = "tool:blocked",
36
+ CONCURRENCY_LIMIT = "concurrency:limit",
37
+ QUEUE_FULL = "queue:full",
38
+ API_REPORT = "api:report",
39
+ API_ERROR = "api:error",
40
+ LLM_REQUEST = "llm:request",
41
+ LLM_RESPONSE = "llm:response",
42
+ LLM_ERROR = "llm:error"
43
+ }
44
+ export interface EventMap {
45
+ [WorkerClawEvent.STARTING]: void;
46
+ [WorkerClawEvent.READY]: void;
47
+ [WorkerClawEvent.SHUTTING_DOWN]: {
48
+ reason?: string;
49
+ };
50
+ [WorkerClawEvent.SHUTDOWN]: void;
51
+ [WorkerClawEvent.WS_CONNECTING]: {
52
+ attempt: number;
53
+ };
54
+ [WorkerClawEvent.WS_CONNECTED]: void;
55
+ [WorkerClawEvent.WS_DISCONNECTED]: {
56
+ code: number;
57
+ reason: string;
58
+ };
59
+ [WorkerClawEvent.WS_RECONNECTING]: {
60
+ attempt: number;
61
+ delayMs: number;
62
+ };
63
+ [WorkerClawEvent.WS_ERROR]: {
64
+ error: Error;
65
+ };
66
+ [WorkerClawEvent.SECURITY_BLOCKED]: {
67
+ message: string;
68
+ reason: string;
69
+ data?: any;
70
+ };
71
+ [WorkerClawEvent.SECURITY_WARNED]: {
72
+ message: string;
73
+ reason: string;
74
+ data?: any;
75
+ };
76
+ [WorkerClawEvent.TASK_RECEIVED]: {
77
+ task: Task;
78
+ };
79
+ [WorkerClawEvent.TASK_EVALUATED]: {
80
+ taskId: string;
81
+ evaluation: any;
82
+ };
83
+ [WorkerClawEvent.TASK_ACCEPTED]: {
84
+ taskId: string;
85
+ };
86
+ [WorkerClawEvent.TASK_REJECTED]: {
87
+ taskId: string;
88
+ reason: string;
89
+ };
90
+ [WorkerClawEvent.TASK_STARTED]: {
91
+ taskId: string;
92
+ };
93
+ [WorkerClawEvent.TASK_PROGRESS]: {
94
+ taskId: string;
95
+ progress: number;
96
+ message?: string;
97
+ };
98
+ [WorkerClawEvent.TASK_COMPLETED]: {
99
+ taskId: string;
100
+ result: any;
101
+ };
102
+ [WorkerClawEvent.TASK_FAILED]: {
103
+ taskId: string;
104
+ error: Error;
105
+ };
106
+ [WorkerClawEvent.TASK_TIMEOUT]: {
107
+ taskId: string;
108
+ };
109
+ [WorkerClawEvent.TASK_CANCELLED]: {
110
+ taskId: string;
111
+ };
112
+ [WorkerClawEvent.TASK_DEFERRED]: {
113
+ taskId: string;
114
+ score: number;
115
+ };
116
+ [WorkerClawEvent.TASK_QUEUED]: {
117
+ taskId: string;
118
+ queuePosition: number;
119
+ };
120
+ [WorkerClawEvent.TASK_DEQUEUED]: {
121
+ taskId: string;
122
+ };
123
+ [WorkerClawEvent.TASK_STATE_CHANGED]: {
124
+ taskId: string;
125
+ from: TaskStatus;
126
+ to: TaskStatus;
127
+ reason?: string;
128
+ };
129
+ [WorkerClawEvent.TOOL_CALLED]: {
130
+ taskId: string;
131
+ toolName: string;
132
+ toolCallId: string;
133
+ };
134
+ [WorkerClawEvent.TOOL_COMPLETED]: {
135
+ taskId: string;
136
+ toolName: string;
137
+ toolCallId: string;
138
+ success: boolean;
139
+ };
140
+ [WorkerClawEvent.TOOL_BLOCKED]: {
141
+ taskId: string;
142
+ toolName: string;
143
+ reason: string;
144
+ };
145
+ [WorkerClawEvent.CONCURRENCY_LIMIT]: {
146
+ runningCount: number;
147
+ maxConcurrent: number;
148
+ };
149
+ [WorkerClawEvent.QUEUE_FULL]: {
150
+ queueSize: number;
151
+ maxQueueSize: number;
152
+ };
153
+ [WorkerClawEvent.API_REPORT]: {
154
+ taskId: string;
155
+ endpoint: string;
156
+ };
157
+ [WorkerClawEvent.API_ERROR]: {
158
+ taskId: string;
159
+ endpoint: string;
160
+ error: Error;
161
+ };
162
+ [WorkerClawEvent.LLM_REQUEST]: {
163
+ taskId: string;
164
+ model: string;
165
+ };
166
+ [WorkerClawEvent.LLM_RESPONSE]: {
167
+ taskId: string;
168
+ tokens?: {
169
+ prompt: number;
170
+ completion: number;
171
+ };
172
+ };
173
+ [WorkerClawEvent.LLM_ERROR]: {
174
+ taskId: string;
175
+ error: Error;
176
+ };
177
+ }
178
+ export type EventHandler<T = any> = (data: T) => void | Promise<void>;
179
+ export declare class EventBus {
180
+ private logger;
181
+ private handlers;
182
+ private onceHandlers;
183
+ private maxListeners;
184
+ /**
185
+ * 注册事件监听器
186
+ */
187
+ on<K extends keyof EventMap>(event: K, handler: EventHandler<EventMap[K]>): void;
188
+ /**
189
+ * 注册一次性事件监听器
190
+ */
191
+ once<K extends keyof EventMap>(event: K, handler: EventHandler<EventMap[K]>): void;
192
+ /**
193
+ * 移除事件监听器
194
+ */
195
+ off<K extends keyof EventMap>(event: K, handler: EventHandler<EventMap[K]>): void;
196
+ /**
197
+ * 触发事件
198
+ */
199
+ emit<K extends keyof EventMap>(event: K, data: EventMap[K]): Promise<void>;
200
+ /**
201
+ * 等待事件触发(Promise 化)
202
+ */
203
+ waitFor<K extends keyof EventMap>(event: K, timeoutMs?: number): Promise<EventMap[K]>;
204
+ /**
205
+ * 清除所有监听器
206
+ */
207
+ removeAllListeners(event?: string): void;
208
+ }
209
+ /** 全局事件总线单例 */
210
+ export declare const eventBus: EventBus;
211
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"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"}