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
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Agent 类型定义
3
+ *
4
+ * 定义 LLM 相关的数据结构
5
+ */
6
+ export interface LLMMessage {
7
+ role: 'system' | 'user' | 'assistant' | 'tool';
8
+ content: string;
9
+ name?: string;
10
+ tool_calls?: ToolCall[];
11
+ tool_call_id?: string;
12
+ }
13
+ export interface LLMResponse {
14
+ /** 回复内容 */
15
+ content: string;
16
+ /** 是否有工具调用 */
17
+ hasToolCalls: boolean;
18
+ /** 工具调用列表 */
19
+ toolCalls: ToolCall[];
20
+ /** 使用的 token 数 */
21
+ usage?: {
22
+ promptTokens: number;
23
+ completionTokens: number;
24
+ totalTokens: number;
25
+ };
26
+ /** 模型名称 */
27
+ model: string;
28
+ /** 停止原因 */
29
+ finishReason: string;
30
+ /** 所有消息记录(含工具调用链) */
31
+ allMessages: LLMMessage[];
32
+ }
33
+ export interface ToolCall {
34
+ /** 调用 ID */
35
+ id: string;
36
+ /** 工具名称 */
37
+ name: string;
38
+ /** 调用参数 (JSON) */
39
+ arguments: string;
40
+ }
41
+ export type PermissionLevel = 'read_only' | 'limited' | 'standard' | 'elevated';
42
+ export interface ToolDefinition {
43
+ /** 工具名称 */
44
+ name: string;
45
+ /** 工具描述 */
46
+ description: string;
47
+ /** 最低权限级别 */
48
+ requiredLevel: PermissionLevel;
49
+ /** JSON Schema 参数定义 */
50
+ parameters: Record<string, any>;
51
+ /** 工具执行器 (注册时绑定) */
52
+ executor?: ToolExecutorFn;
53
+ }
54
+ export type ToolExecutorFn = (params: any, context: ToolExecutionContext) => Promise<ToolResult>;
55
+ export interface ToolExecutionContext {
56
+ /** 任务 ID */
57
+ taskId: string;
58
+ /** 权限级别 */
59
+ permissionLevel: PermissionLevel;
60
+ /** 工作目录 */
61
+ workDir: string;
62
+ /** 任务超时剩余 (ms) */
63
+ remainingMs: number;
64
+ /** 已使用工具调用次数 */
65
+ toolCallCount: number;
66
+ /** 最大工具调用次数 */
67
+ maxToolCalls: number;
68
+ }
69
+ export interface ToolResult {
70
+ /** 调用 ID */
71
+ toolCallId: string;
72
+ /** 是否成功 */
73
+ success: boolean;
74
+ /** 结果内容 */
75
+ content: string;
76
+ /** 错误信息 */
77
+ error?: string;
78
+ }
79
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa;IACb,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,kBAAkB;IAClB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAID,MAAM,WAAW,QAAQ;IACvB,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEhF,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,aAAa,EAAE,eAAe,CAAC;IAC/B,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,oBAAoB;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEjG,MAAM,WAAW,oBAAoB;IACnC,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Agent 类型定义
3
+ *
4
+ * 定义 LLM 相关的数据结构
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * WorkerClaw 类型定义 - 索引文件
3
+ */
4
+ export type { Task, TaskStatus, TaskType, TaskExecutionContext, TaskResult, TaskOutput, TaskAttachment, TaskEvaluation, EvaluationContext, TaskStateRecord, ConcurrencyConfig, TaskEvaluatorConfig, TimeoutConfig } from './task.js';
5
+ export type { PlatformMessage, WSMessageType, HeartbeatMessage, TaskPushMessage } from './message.js';
6
+ export type { LLMMessage, LLMResponse, ToolCall, ToolResult, ToolDefinition, PermissionLevel, ToolExecutorFn, ToolExecutionContext } from './agent.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,UAAU,EACpF,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAClE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACtG,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EACzE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * WorkerClaw 类型定义 - 索引文件
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * 平台消息类型定义
3
+ *
4
+ * 定义智工坊平台通过 WebSocket 推送的消息格式
5
+ */
6
+ export declare enum WSMessageType {
7
+ CONNECT = "connect",
8
+ CONNECT_ACK = "connect_ack",
9
+ DISCONNECT = "disconnect",
10
+ PING = "ping",
11
+ PONG = "pong",
12
+ TASK_PUSH = "task_push",// 新任务推送
13
+ TASK_CANCEL = "task_cancel",// 任务取消
14
+ TASK_UPDATE = "task_update",// 任务状态更新
15
+ SYSTEM = "system",// 系统通知
16
+ ERROR = "error",// 错误消息
17
+ MESSAGE = "message",// 私信消息
18
+ COMMENT = "comment",// 评论通知
19
+ MENTION = "mention",// @提及通知
20
+ FEED_UPDATE = "feed_update"
21
+ }
22
+ export interface PlatformMessage {
23
+ /** 消息类型 */
24
+ type: WSMessageType;
25
+ /** 消息 ID */
26
+ msgId: string;
27
+ /** 时间戳 (ISO 8601) */
28
+ timestamp: string;
29
+ /** 发送者 ID */
30
+ from?: string;
31
+ /** 消息体 */
32
+ data: any;
33
+ }
34
+ export interface HeartbeatMessage {
35
+ type: WSMessageType.PING | WSMessageType.PONG;
36
+ msgId: string;
37
+ timestamp: string;
38
+ data: {
39
+ /** 客户端当前负载 */
40
+ load?: {
41
+ runningTasks: number;
42
+ maxConcurrent: number;
43
+ };
44
+ };
45
+ }
46
+ export interface TaskPushPayload {
47
+ taskId: string;
48
+ taskType: string;
49
+ title: string;
50
+ description: string;
51
+ posterId: string;
52
+ posterName?: string;
53
+ reward?: number;
54
+ deadline?: string;
55
+ attachments?: Array<{
56
+ type: 'image' | 'file' | 'url';
57
+ url: string;
58
+ name?: string;
59
+ mimeType?: string;
60
+ size?: number;
61
+ }>;
62
+ }
63
+ export interface TaskPushMessage {
64
+ type: WSMessageType.TASK_PUSH;
65
+ msgId: string;
66
+ timestamp: string;
67
+ from: string;
68
+ data: TaskPushPayload;
69
+ }
70
+ export interface ConnectAckMessage {
71
+ type: WSMessageType.CONNECT_ACK;
72
+ msgId: string;
73
+ timestamp: string;
74
+ data: {
75
+ /** 连接是否成功 */
76
+ success: boolean;
77
+ /** 分配的 botId */
78
+ botId?: string;
79
+ /** 服务器时间 */
80
+ serverTime?: string;
81
+ /** 心跳间隔 (秒) */
82
+ heartbeatInterval?: number;
83
+ /** 错误信息(连接失败时) */
84
+ error?: string;
85
+ };
86
+ }
87
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,oBAAY,aAAa;IAEvB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IAGzB,IAAI,SAAS;IACb,IAAI,SAAS;IAGb,SAAS,cAAc,CAAU,QAAQ;IACzC,WAAW,gBAAgB,CAAM,OAAO;IACxC,WAAW,gBAAgB,CAAM,SAAS;IAG1C,MAAM,WAAW,CAAgB,OAAO;IACxC,KAAK,UAAU,CAAkB,OAAO;IAGxC,OAAO,YAAY,CAAc,OAAO;IACxC,OAAO,YAAY,CAAc,OAAO;IACxC,OAAO,YAAY,CAAc,QAAQ;IAGzC,WAAW,gBAAgB;CAC5B;AAID,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU;IACV,IAAI,EAAE,GAAG,CAAC;CACX;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,cAAc;QACd,IAAI,CAAC,EAAE;YACL,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;CACH;AAID,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;CACvB;AAID,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QACJ,aAAa;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,gBAAgB;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,kBAAkB;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * 平台消息类型定义
3
+ *
4
+ * 定义智工坊平台通过 WebSocket 推送的消息格式
5
+ */
6
+ // ==================== WebSocket 消息类型 ====================
7
+ export var WSMessageType;
8
+ (function (WSMessageType) {
9
+ // 连接管理
10
+ WSMessageType["CONNECT"] = "connect";
11
+ WSMessageType["CONNECT_ACK"] = "connect_ack";
12
+ WSMessageType["DISCONNECT"] = "disconnect";
13
+ // 心跳
14
+ WSMessageType["PING"] = "ping";
15
+ WSMessageType["PONG"] = "pong";
16
+ // 任务相关
17
+ WSMessageType["TASK_PUSH"] = "task_push";
18
+ WSMessageType["TASK_CANCEL"] = "task_cancel";
19
+ WSMessageType["TASK_UPDATE"] = "task_update";
20
+ // 系统消息
21
+ WSMessageType["SYSTEM"] = "system";
22
+ WSMessageType["ERROR"] = "error";
23
+ // 交互消息
24
+ WSMessageType["MESSAGE"] = "message";
25
+ WSMessageType["COMMENT"] = "comment";
26
+ WSMessageType["MENTION"] = "mention";
27
+ // 活跃行为
28
+ WSMessageType["FEED_UPDATE"] = "feed_update";
29
+ })(WSMessageType || (WSMessageType = {}));
30
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2DAA2D;AAE3D,MAAM,CAAN,IAAY,aA0BX;AA1BD,WAAY,aAAa;IACvB,OAAO;IACP,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;IAC3B,0CAAyB,CAAA;IAEzB,KAAK;IACL,8BAAa,CAAA;IACb,8BAAa,CAAA;IAEb,OAAO;IACP,wCAAuB,CAAA;IACvB,4CAA2B,CAAA;IAC3B,4CAA2B,CAAA;IAE3B,OAAO;IACP,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IAEf,OAAO;IACP,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IAEnB,OAAO;IACP,4CAA2B,CAAA;AAC7B,CAAC,EA1BW,aAAa,KAAb,aAAa,QA0BxB"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * 任务类型定义
3
+ */
4
+ export type TaskType = 'text_reply' | 'qa' | 'search_summary' | 'translation' | 'writing' | 'image_gen' | 'data_analysis' | 'code_dev' | 'system_op' | 'other';
5
+ export type TaskStatus = 'created' | 'evaluating' | 'accepted' | 'running' | 'completed' | 'failed' | 'rejected' | 'timeout' | 'cancelled' | 'deferred';
6
+ export interface Task {
7
+ /** 任务 ID */
8
+ taskId: string;
9
+ /** 任务类型 */
10
+ taskType: TaskType;
11
+ /** 任务标题 */
12
+ title: string;
13
+ /** 任务描述 */
14
+ description: string;
15
+ /** 发单人 ID */
16
+ posterId: string;
17
+ /** 发单人名称 */
18
+ posterName?: string;
19
+ /** 报酬金额 */
20
+ reward?: number;
21
+ /** 截止时间 (ISO 8601) */
22
+ deadline?: string;
23
+ /** 附件列表 */
24
+ attachments?: TaskAttachment[];
25
+ /** 创建时间 (ISO 8601) */
26
+ createdAt: string;
27
+ /** 平台原始数据 */
28
+ raw?: any;
29
+ }
30
+ export interface TaskAttachment {
31
+ /** 附件类型 */
32
+ type: 'image' | 'file' | 'url';
33
+ /** 附件 URL */
34
+ url: string;
35
+ /** 文件名 */
36
+ name?: string;
37
+ /** MIME 类型 */
38
+ mimeType?: string;
39
+ /** 文件大小 */
40
+ size?: number;
41
+ }
42
+ export interface TaskExecutionContext {
43
+ /** 当前任务 */
44
+ task: Task;
45
+ /** 权限级别 */
46
+ permissionLevel: 'read_only' | 'limited' | 'standard' | 'elevated';
47
+ /** 最大输出 token 数 */
48
+ maxOutputTokens: number;
49
+ /** 任务超时时间 (ms) */
50
+ timeoutMs: number;
51
+ /** 接收时间 */
52
+ receivedAt: number;
53
+ }
54
+ export interface TaskResult {
55
+ /** 任务 ID */
56
+ taskId: string;
57
+ /** 最终状态 */
58
+ status: 'completed' | 'failed';
59
+ /** 结果内容 */
60
+ content?: string;
61
+ /** 生成附件 */
62
+ outputs?: TaskOutput[];
63
+ /** LLM 使用 token 数 */
64
+ tokensUsed?: {
65
+ prompt: number;
66
+ completion: number;
67
+ };
68
+ /** 执行时长 (ms) */
69
+ durationMs: number;
70
+ /** 错误信息(失败时) */
71
+ error?: string;
72
+ }
73
+ export interface TaskOutput {
74
+ /** 输出类型 */
75
+ type: 'text' | 'image' | 'file';
76
+ /** 内容或 URL */
77
+ content: string;
78
+ /** 文件名 */
79
+ name?: string;
80
+ /** MIME 类型 */
81
+ mimeType?: string;
82
+ }
83
+ export interface TaskEvaluation {
84
+ /** 综合评分 (0-100) */
85
+ score: number;
86
+ /** 评估分项 */
87
+ breakdown: {
88
+ /** 能力匹配度 (0-100) */
89
+ capability: number;
90
+ /** 当前容量 (0-100, 越高越有空) */
91
+ capacity: number;
92
+ /** 风险评估 (0-100, 越高越安全) */
93
+ risk: number;
94
+ };
95
+ /** 接单决策 */
96
+ decision: 'accept' | 'reject' | 'defer';
97
+ /** 决策原因 */
98
+ reason?: string;
99
+ }
100
+ export interface EvaluationContext {
101
+ /** 当前运行中任务数 */
102
+ runningCount: number;
103
+ /** 最大并发数 */
104
+ maxConcurrent: number;
105
+ /** 已支持的技能列表 */
106
+ skills: string[];
107
+ /** 已完成的同类型任务数(用于历史评估) */
108
+ completedCountByType: Record<string, number>;
109
+ /** 评估阈值 */
110
+ threshold: number;
111
+ }
112
+ export interface TaskStateRecord {
113
+ /** 当前状态 */
114
+ status: TaskStatus;
115
+ /** 权限级别 */
116
+ permissionLevel?: 'read_only' | 'limited' | 'standard' | 'elevated';
117
+ /** 评估结果 */
118
+ evaluation?: TaskEvaluation;
119
+ /** 状态变更历史 */
120
+ history: Array<{
121
+ status: TaskStatus;
122
+ timestamp: number;
123
+ reason?: string;
124
+ }>;
125
+ /** 创建时间 */
126
+ createdAt: number;
127
+ /** 最后更新时间 */
128
+ updatedAt: number;
129
+ }
130
+ export interface ConcurrencyConfig {
131
+ /** 最大并发任务数 */
132
+ maxConcurrent: number;
133
+ /** 按任务类型限制并发数 */
134
+ maxPerType: Partial<Record<TaskType, number>>;
135
+ /** 等待队列大小 */
136
+ queueSize: number;
137
+ /** 优先级规则 */
138
+ priority: {
139
+ /** 高金额优先 */
140
+ highValueFirst: boolean;
141
+ /** 紧急任务优先 */
142
+ urgentFirst: boolean;
143
+ };
144
+ }
145
+ export interface TaskEvaluatorConfig {
146
+ /** 接单阈值 (0-100, 大于等于此值自动接单) */
147
+ acceptThreshold: number;
148
+ /** 延迟阈值 (0-100, 大于等于此值放入等待队列) */
149
+ deferThreshold: number;
150
+ /** 评估权重 */
151
+ weights: {
152
+ /** 能力匹配度权重 */
153
+ capability: number;
154
+ /** 容量权重 */
155
+ capacity: number;
156
+ /** 风险权重 */
157
+ risk: number;
158
+ };
159
+ /** 按任务类型的能力匹配基础分 */
160
+ capabilityScores: Partial<Record<TaskType, number>>;
161
+ }
162
+ export interface TimeoutConfig {
163
+ /** 单任务最大执行时间 (ms) */
164
+ taskTimeoutMs: number;
165
+ /** LLM 单次请求超时 (ms) */
166
+ llmTimeoutMs: number;
167
+ /** 队列等待超时 (ms), 超时后自动拒绝 */
168
+ queueTimeoutMs: number;
169
+ /** 超时后是否允许重试 */
170
+ retryOnTimeout: boolean;
171
+ /** 最大重试次数 */
172
+ maxRetries: number;
173
+ /** 重试间隔 (ms) */
174
+ retryDelayMs: number;
175
+ }
176
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/types/task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 任务类型定义
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/types/task.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "workerclaw",
3
+ "version": "0.2.0",
4
+ "description": "WorkerClaw - 公域 AI Agent 框架,专为智工坊平台的「打工虾」设计",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "workerclaw": "dist/cli/index.js"
9
+ },
10
+ "type": "module",
11
+ "files": [
12
+ "dist/",
13
+ "README.md",
14
+ "LICENSE",
15
+ "workerclaw.config.example.json"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "dev": "tsc --watch",
20
+ "prepublishOnly": "npm run build",
21
+ "test": "vitest",
22
+ "test:security": "vitest run tests/security.test.ts",
23
+ "test:task": "vitest run tests/task-management.test.ts",
24
+ "test:phase4": "vitest run tests/phase4.test.ts",
25
+ "test:phase5": "vitest run tests/phase5.test.ts",
26
+ "lint": "tsc --noEmit"
27
+ },
28
+ "keywords": [
29
+ "ai",
30
+ "agent",
31
+ "framework",
32
+ "worker",
33
+ "miniabc",
34
+ "智工坊",
35
+ "workerclaw"
36
+ ],
37
+ "author": "glin_1 <glin_1@qq.com>",
38
+ "license": "MIT",
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "https://github.com/gelincloud/workerclaw.git"
42
+ },
43
+ "engines": {
44
+ "node": ">=20.0.0"
45
+ },
46
+ "dependencies": {
47
+ "@clack/prompts": "^0.10.0",
48
+ "citty": "^0.1.6",
49
+ "ws": "^8.20.0"
50
+ },
51
+ "devDependencies": {
52
+ "@types/node": "^25.5.0",
53
+ "@types/ws": "^8.18.1",
54
+ "typescript": "^6.0.2",
55
+ "vitest": "^3.2.4"
56
+ }
57
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "id": "worker-001",
3
+ "name": "WorkerClaw",
4
+
5
+ "platform": {
6
+ "apiUrl": "https://www.miniabc.top",
7
+ "wsUrl": "wss://www.miniabc.top/ws",
8
+ "botId": "",
9
+ "token": "${MINIABC_TOKEN}",
10
+ "reconnect": {
11
+ "maxRetries": 10,
12
+ "baseDelayMs": 1000,
13
+ "maxDelayMs": 30000
14
+ }
15
+ },
16
+
17
+ "llm": {
18
+ "provider": "deepseek",
19
+ "model": "deepseek-chat",
20
+ "apiKey": "${LLM_API_KEY}",
21
+ "baseUrl": "https://api.deepseek.com/v1",
22
+ "safety": {
23
+ "maxTokens": 4000,
24
+ "temperature": 0.7,
25
+ "topP": 0.9
26
+ },
27
+ "retry": {
28
+ "maxRetries": 3,
29
+ "backoffMs": 1000
30
+ }
31
+ },
32
+
33
+ "security": {
34
+ "rateLimit": {
35
+ "maxMessagesPerMinute": 30,
36
+ "maxConcurrentTasks": 3
37
+ },
38
+ "contentScan": {
39
+ "promptInjection": { "enabled": true },
40
+ "maliciousCommands": { "enabled": true },
41
+ "piiProtection": { "enabled": false, "action": "warn" },
42
+ "resourceExhaustion": {
43
+ "maxOutputTokens": 8000,
44
+ "maxToolCallsPerTask": 20,
45
+ "maxTotalDurationMs": 300000
46
+ },
47
+ "dataExfiltration": {
48
+ "enabled": true,
49
+ "blockedDomains": [],
50
+ "allowedDomains": [],
51
+ "blockUnknownDomains": false
52
+ }
53
+ },
54
+ "sandbox": {
55
+ "workDir": "./data/sandbox",
56
+ "commandTimeoutMs": 30000,
57
+ "taskTimeoutMs": 300000,
58
+ "maxMemoryMB": 512,
59
+ "maxOutputKB": 1024,
60
+ "deniedPaths": ["/etc", "/var", "/usr", "/System", "/Library", "/proc", "/sys"],
61
+ "allowLocalhost": false
62
+ }
63
+ },
64
+
65
+ "task": {
66
+ "autoAccept": {
67
+ "enabled": true,
68
+ "threshold": 75,
69
+ "maxConcurrent": 3
70
+ }
71
+ },
72
+
73
+ "personality": {
74
+ "name": "小工虾",
75
+ "tone": "专业、友好、高效",
76
+ "bio": "智工坊平台的打工虾,擅长文字创作和信息整理"
77
+ }
78
+ }