opc-agent 4.1.2 → 4.1.4

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 (745) hide show
  1. package/dist/analytics/index.d.ts.map +1 -0
  2. package/dist/analytics/index.js.map +1 -0
  3. package/dist/channels/dingtalk.d.ts.map +1 -0
  4. package/dist/channels/dingtalk.js.map +1 -0
  5. package/dist/channels/discord.d.ts.map +1 -0
  6. package/dist/channels/discord.js.map +1 -0
  7. package/dist/channels/email.d.ts.map +1 -0
  8. package/dist/channels/email.js.map +1 -0
  9. package/dist/channels/feishu.d.ts.map +1 -0
  10. package/dist/channels/feishu.js.map +1 -0
  11. package/dist/channels/googlechat.d.ts.map +1 -0
  12. package/dist/channels/googlechat.js.map +1 -0
  13. package/dist/channels/imessage.d.ts.map +1 -0
  14. package/dist/channels/imessage.js.map +1 -0
  15. package/dist/channels/index.d.ts.map +1 -0
  16. package/dist/channels/index.js.map +1 -0
  17. package/dist/channels/irc.d.ts.map +1 -0
  18. package/dist/channels/irc.js.map +1 -0
  19. package/dist/channels/line.d.ts.map +1 -0
  20. package/dist/channels/line.js.map +1 -0
  21. package/dist/channels/matrix.d.ts.map +1 -0
  22. package/dist/channels/matrix.js.map +1 -0
  23. package/dist/channels/mattermost.d.ts.map +1 -0
  24. package/dist/channels/mattermost.js.map +1 -0
  25. package/dist/channels/msteams.d.ts.map +1 -0
  26. package/dist/channels/msteams.js.map +1 -0
  27. package/dist/channels/nostr.d.ts.map +1 -0
  28. package/dist/channels/nostr.js.map +1 -0
  29. package/dist/channels/qq.d.ts.map +1 -0
  30. package/dist/channels/qq.js.map +1 -0
  31. package/dist/channels/signal.d.ts.map +1 -0
  32. package/dist/channels/signal.js.map +1 -0
  33. package/dist/channels/slack.d.ts.map +1 -0
  34. package/dist/channels/slack.js.map +1 -0
  35. package/dist/channels/sms.d.ts.map +1 -0
  36. package/dist/channels/sms.js.map +1 -0
  37. package/dist/channels/telegram.d.ts.map +1 -0
  38. package/dist/channels/telegram.js.map +1 -0
  39. package/dist/channels/twitch.d.ts.map +1 -0
  40. package/dist/channels/twitch.js.map +1 -0
  41. package/dist/channels/voice-call.d.ts.map +1 -0
  42. package/dist/channels/voice-call.js.map +1 -0
  43. package/dist/channels/voice.d.ts.map +1 -0
  44. package/dist/channels/voice.js.map +1 -0
  45. package/dist/channels/web.d.ts.map +1 -0
  46. package/dist/channels/web.js.map +1 -0
  47. package/dist/channels/webhook.d.ts.map +1 -0
  48. package/dist/channels/webhook.js.map +1 -0
  49. package/dist/channels/websocket.d.ts.map +1 -0
  50. package/dist/channels/websocket.js.map +1 -0
  51. package/dist/channels/wechat.d.ts.map +1 -0
  52. package/dist/channels/wechat.js.map +1 -0
  53. package/dist/channels/whatsapp.d.ts.map +1 -0
  54. package/dist/channels/whatsapp.js.map +1 -0
  55. package/dist/cli/chat.d.ts.map +1 -0
  56. package/dist/cli/chat.js.map +1 -0
  57. package/dist/cli/setup.d.ts.map +1 -0
  58. package/dist/cli/setup.js.map +1 -0
  59. package/dist/cli.d.ts.map +1 -0
  60. package/dist/cli.js +108 -11
  61. package/dist/cli.js.map +1 -0
  62. package/dist/core/a2a.d.ts.map +1 -0
  63. package/dist/core/a2a.js.map +1 -0
  64. package/dist/core/agent.d.ts.map +1 -0
  65. package/dist/core/agent.js.map +1 -0
  66. package/dist/core/analytics-engine.d.ts.map +1 -0
  67. package/dist/core/analytics-engine.js.map +1 -0
  68. package/dist/core/api-server.d.ts.map +1 -0
  69. package/dist/core/api-server.js.map +1 -0
  70. package/dist/core/audio.d.ts.map +1 -0
  71. package/dist/core/audio.js.map +1 -0
  72. package/dist/core/auth.d.ts.map +1 -0
  73. package/dist/core/auth.js.map +1 -0
  74. package/dist/core/cache.d.ts.map +1 -0
  75. package/dist/core/cache.js.map +1 -0
  76. package/dist/core/collaboration.d.ts.map +1 -0
  77. package/dist/core/collaboration.js.map +1 -0
  78. package/dist/core/compose.d.ts.map +1 -0
  79. package/dist/core/compose.js.map +1 -0
  80. package/dist/core/config.d.ts.map +1 -0
  81. package/dist/core/config.js.map +1 -0
  82. package/dist/core/context-discovery.d.ts.map +1 -0
  83. package/dist/core/context-discovery.js.map +1 -0
  84. package/dist/core/context-refs.d.ts.map +1 -0
  85. package/dist/core/context-refs.js.map +1 -0
  86. package/dist/core/errors.d.ts.map +1 -0
  87. package/dist/core/errors.js.map +1 -0
  88. package/dist/core/gateway.d.ts.map +1 -0
  89. package/dist/core/gateway.js.map +1 -0
  90. package/dist/core/heartbeat.d.ts.map +1 -0
  91. package/dist/core/heartbeat.js.map +1 -0
  92. package/dist/core/hitl.d.ts.map +1 -0
  93. package/dist/core/hitl.js.map +1 -0
  94. package/dist/core/hooks.d.ts.map +1 -0
  95. package/dist/core/hooks.js.map +1 -0
  96. package/dist/core/ide-bridge.d.ts.map +1 -0
  97. package/dist/core/ide-bridge.js.map +1 -0
  98. package/dist/core/knowledge.d.ts.map +1 -0
  99. package/dist/core/knowledge.js.map +1 -0
  100. package/dist/core/logger.d.ts.map +1 -0
  101. package/dist/core/logger.js.map +1 -0
  102. package/dist/core/model-recommender.d.ts +40 -0
  103. package/dist/core/model-recommender.d.ts.map +1 -0
  104. package/dist/core/model-recommender.js +186 -0
  105. package/dist/core/model-recommender.js.map +1 -0
  106. package/dist/core/node-network.d.ts.map +1 -0
  107. package/dist/core/node-network.js.map +1 -0
  108. package/dist/core/orchestrator.d.ts.map +1 -0
  109. package/dist/core/orchestrator.js.map +1 -0
  110. package/dist/core/performance.d.ts.map +1 -0
  111. package/dist/core/performance.js.map +1 -0
  112. package/dist/core/profiles.d.ts.map +1 -0
  113. package/dist/core/profiles.js.map +1 -0
  114. package/dist/core/rate-limiter.d.ts.map +1 -0
  115. package/dist/core/rate-limiter.js.map +1 -0
  116. package/dist/core/room.d.ts.map +1 -0
  117. package/dist/core/room.js.map +1 -0
  118. package/dist/core/runtime.d.ts.map +1 -0
  119. package/dist/core/runtime.js.map +1 -0
  120. package/dist/core/sandbox.d.ts.map +1 -0
  121. package/dist/core/sandbox.js.map +1 -0
  122. package/dist/core/scheduler.d.ts.map +1 -0
  123. package/dist/core/scheduler.js.map +1 -0
  124. package/dist/core/security.d.ts.map +1 -0
  125. package/dist/core/security.js.map +1 -0
  126. package/dist/core/session-manager.d.ts.map +1 -0
  127. package/dist/core/session-manager.js.map +1 -0
  128. package/dist/core/streaming.d.ts.map +1 -0
  129. package/dist/core/streaming.js.map +1 -0
  130. package/dist/core/subagent.d.ts.map +1 -0
  131. package/dist/core/subagent.js.map +1 -0
  132. package/dist/core/types.d.ts.map +1 -0
  133. package/dist/core/types.js.map +1 -0
  134. package/dist/core/versioning.d.ts.map +1 -0
  135. package/dist/core/versioning.js.map +1 -0
  136. package/dist/core/vision.d.ts.map +1 -0
  137. package/dist/core/vision.js.map +1 -0
  138. package/dist/core/watch.d.ts.map +1 -0
  139. package/dist/core/watch.js.map +1 -0
  140. package/dist/core/workflow-graph.d.ts.map +1 -0
  141. package/dist/core/workflow-graph.js.map +1 -0
  142. package/dist/core/workflow.d.ts.map +1 -0
  143. package/dist/core/workflow.js.map +1 -0
  144. package/dist/daemon.d.ts.map +1 -0
  145. package/dist/daemon.js.map +1 -0
  146. package/dist/deploy/hermes.d.ts.map +1 -0
  147. package/dist/deploy/hermes.js.map +1 -0
  148. package/dist/deploy/index.d.ts.map +1 -0
  149. package/dist/deploy/index.js.map +1 -0
  150. package/dist/deploy/openclaw.d.ts.map +1 -0
  151. package/dist/deploy/openclaw.js.map +1 -0
  152. package/dist/doctor.d.ts.map +1 -0
  153. package/dist/doctor.js.map +1 -0
  154. package/dist/eval/index.d.ts.map +1 -0
  155. package/dist/eval/index.js.map +1 -0
  156. package/dist/hub/brain-seed.d.ts.map +1 -0
  157. package/dist/hub/brain-seed.js.map +1 -0
  158. package/dist/hub/client.d.ts.map +1 -0
  159. package/dist/hub/client.js.map +1 -0
  160. package/dist/i18n/index.d.ts.map +1 -0
  161. package/dist/i18n/index.js.map +1 -0
  162. package/dist/index.d.ts +2 -0
  163. package/dist/index.d.ts.map +1 -0
  164. package/dist/index.js +11 -5
  165. package/dist/index.js.map +1 -0
  166. package/dist/mcp/servers/calculator-mcp.d.ts.map +1 -0
  167. package/dist/mcp/servers/calculator-mcp.js.map +1 -0
  168. package/dist/mcp/servers/crypto-mcp.d.ts.map +1 -0
  169. package/dist/mcp/servers/crypto-mcp.js.map +1 -0
  170. package/dist/mcp/servers/database-mcp.d.ts.map +1 -0
  171. package/dist/mcp/servers/database-mcp.js.map +1 -0
  172. package/dist/mcp/servers/datetime-mcp.d.ts.map +1 -0
  173. package/dist/mcp/servers/datetime-mcp.js.map +1 -0
  174. package/dist/mcp/servers/filesystem.d.ts.map +1 -0
  175. package/dist/mcp/servers/filesystem.js.map +1 -0
  176. package/dist/mcp/servers/github-mcp.d.ts.map +1 -0
  177. package/dist/mcp/servers/github-mcp.js.map +1 -0
  178. package/dist/mcp/servers/index.d.ts.map +1 -0
  179. package/dist/mcp/servers/index.js.map +1 -0
  180. package/dist/mcp/servers/json-mcp.d.ts.map +1 -0
  181. package/dist/mcp/servers/json-mcp.js.map +1 -0
  182. package/dist/mcp/servers/memory-mcp.d.ts.map +1 -0
  183. package/dist/mcp/servers/memory-mcp.js.map +1 -0
  184. package/dist/mcp/servers/regex-mcp.d.ts.map +1 -0
  185. package/dist/mcp/servers/regex-mcp.js.map +1 -0
  186. package/dist/mcp/servers/web-mcp.d.ts.map +1 -0
  187. package/dist/mcp/servers/web-mcp.js.map +1 -0
  188. package/dist/memory/context-compressor.d.ts.map +1 -0
  189. package/dist/memory/context-compressor.js.map +1 -0
  190. package/dist/memory/deepbrain.d.ts.map +1 -0
  191. package/dist/memory/deepbrain.js.map +1 -0
  192. package/dist/memory/index.d.ts.map +1 -0
  193. package/dist/memory/index.js.map +1 -0
  194. package/dist/memory/seed-loader.d.ts.map +1 -0
  195. package/dist/memory/seed-loader.js.map +1 -0
  196. package/dist/memory/user-profiler.d.ts.map +1 -0
  197. package/dist/memory/user-profiler.js.map +1 -0
  198. package/dist/plugins/content-filter.d.ts.map +1 -0
  199. package/dist/plugins/content-filter.js.map +1 -0
  200. package/dist/plugins/index.d.ts.map +1 -0
  201. package/dist/plugins/index.js.map +1 -0
  202. package/dist/plugins/logger.d.ts.map +1 -0
  203. package/dist/plugins/logger.js.map +1 -0
  204. package/dist/plugins/rate-limiter.d.ts.map +1 -0
  205. package/dist/plugins/rate-limiter.js.map +1 -0
  206. package/dist/protocols/a2a/client.d.ts.map +1 -0
  207. package/dist/protocols/a2a/client.js.map +1 -0
  208. package/dist/protocols/a2a/index.d.ts.map +1 -0
  209. package/dist/protocols/a2a/index.js.map +1 -0
  210. package/dist/protocols/a2a/server.d.ts.map +1 -0
  211. package/dist/protocols/a2a/server.js.map +1 -0
  212. package/dist/protocols/a2a/types.d.ts.map +1 -0
  213. package/dist/protocols/a2a/types.js.map +1 -0
  214. package/dist/protocols/a2a/utils.d.ts.map +1 -0
  215. package/dist/protocols/a2a/utils.js.map +1 -0
  216. package/dist/protocols/agui/client.d.ts.map +1 -0
  217. package/dist/protocols/agui/client.js.map +1 -0
  218. package/dist/protocols/agui/index.d.ts.map +1 -0
  219. package/dist/protocols/agui/index.js.map +1 -0
  220. package/dist/protocols/agui/server.d.ts.map +1 -0
  221. package/dist/protocols/agui/server.js.map +1 -0
  222. package/dist/protocols/agui/types.d.ts.map +1 -0
  223. package/dist/protocols/agui/types.js.map +1 -0
  224. package/dist/protocols/index.d.ts.map +1 -0
  225. package/dist/protocols/index.js.map +1 -0
  226. package/dist/protocols/mcp/agent-tools.d.ts.map +1 -0
  227. package/dist/protocols/mcp/agent-tools.js.map +1 -0
  228. package/dist/protocols/mcp/index.d.ts.map +1 -0
  229. package/dist/protocols/mcp/index.js.map +1 -0
  230. package/dist/protocols/mcp/server.d.ts.map +1 -0
  231. package/dist/protocols/mcp/server.js.map +1 -0
  232. package/dist/protocols/mcp/types.d.ts.map +1 -0
  233. package/dist/protocols/mcp/types.js.map +1 -0
  234. package/dist/providers/index.d.ts.map +1 -0
  235. package/dist/providers/index.js.map +1 -0
  236. package/dist/publish/index.d.ts.map +1 -0
  237. package/dist/publish/index.js.map +1 -0
  238. package/dist/scheduler/cron-engine.d.ts.map +1 -0
  239. package/dist/scheduler/cron-engine.js.map +1 -0
  240. package/dist/scheduler/index.d.ts.map +1 -0
  241. package/dist/scheduler/index.js.map +1 -0
  242. package/dist/schema/oad.d.ts.map +1 -0
  243. package/dist/schema/oad.js.map +1 -0
  244. package/dist/security/approval.d.ts.map +1 -0
  245. package/dist/security/approval.js.map +1 -0
  246. package/dist/security/approvals.d.ts.map +1 -0
  247. package/dist/security/approvals.js.map +1 -0
  248. package/dist/security/elevated.d.ts.map +1 -0
  249. package/dist/security/elevated.js.map +1 -0
  250. package/dist/security/guardrails.d.ts.map +1 -0
  251. package/dist/security/guardrails.js.map +1 -0
  252. package/dist/security/index.d.ts.map +1 -0
  253. package/dist/security/index.js.map +1 -0
  254. package/dist/security/keys.d.ts.map +1 -0
  255. package/dist/security/keys.js.map +1 -0
  256. package/dist/security/secrets.d.ts.map +1 -0
  257. package/dist/security/secrets.js.map +1 -0
  258. package/dist/skills/auto-learn.d.ts.map +1 -0
  259. package/dist/skills/auto-learn.js.map +1 -0
  260. package/dist/skills/base.d.ts.map +1 -0
  261. package/dist/skills/base.js.map +1 -0
  262. package/dist/skills/builtin/index.d.ts.map +1 -0
  263. package/dist/skills/builtin/index.js.map +1 -0
  264. package/dist/skills/document.d.ts.map +1 -0
  265. package/dist/skills/document.js.map +1 -0
  266. package/dist/skills/http.d.ts.map +1 -0
  267. package/dist/skills/http.js.map +1 -0
  268. package/dist/skills/index.d.ts.map +1 -0
  269. package/dist/skills/index.js.map +1 -0
  270. package/dist/skills/marketplace.d.ts.map +1 -0
  271. package/dist/skills/marketplace.js.map +1 -0
  272. package/dist/skills/scheduler.d.ts.map +1 -0
  273. package/dist/skills/scheduler.js.map +1 -0
  274. package/dist/skills/types.d.ts.map +1 -0
  275. package/dist/skills/types.js.map +1 -0
  276. package/dist/skills/webhook-trigger.d.ts.map +1 -0
  277. package/dist/skills/webhook-trigger.js.map +1 -0
  278. package/dist/studio/server.d.ts.map +1 -0
  279. package/dist/studio/server.js.map +1 -0
  280. package/dist/studio/templates-data.d.ts.map +1 -0
  281. package/dist/studio/templates-data.js.map +1 -0
  282. package/dist/telemetry/index.d.ts.map +1 -0
  283. package/dist/telemetry/index.js.map +1 -0
  284. package/dist/templates/code-reviewer.d.ts.map +1 -0
  285. package/dist/templates/code-reviewer.js.map +1 -0
  286. package/dist/templates/content-writer.d.ts.map +1 -0
  287. package/dist/templates/content-writer.js.map +1 -0
  288. package/dist/templates/customer-service.d.ts.map +1 -0
  289. package/dist/templates/customer-service.js.map +1 -0
  290. package/dist/templates/data-analyst.d.ts.map +1 -0
  291. package/dist/templates/data-analyst.js.map +1 -0
  292. package/dist/templates/executive-assistant.d.ts.map +1 -0
  293. package/dist/templates/executive-assistant.js.map +1 -0
  294. package/dist/templates/financial-advisor.d.ts.map +1 -0
  295. package/dist/templates/financial-advisor.js.map +1 -0
  296. package/dist/templates/hr-recruiter.d.ts.map +1 -0
  297. package/dist/templates/hr-recruiter.js.map +1 -0
  298. package/dist/templates/knowledge-base.d.ts.map +1 -0
  299. package/dist/templates/knowledge-base.js.map +1 -0
  300. package/dist/templates/legal-assistant.d.ts.map +1 -0
  301. package/dist/templates/legal-assistant.js.map +1 -0
  302. package/dist/templates/project-manager.d.ts.map +1 -0
  303. package/dist/templates/project-manager.js.map +1 -0
  304. package/dist/templates/sales-assistant.d.ts.map +1 -0
  305. package/dist/templates/sales-assistant.js.map +1 -0
  306. package/dist/templates/teacher.d.ts.map +1 -0
  307. package/dist/templates/teacher.js.map +1 -0
  308. package/dist/testing/index.d.ts.map +1 -0
  309. package/dist/testing/index.js.map +1 -0
  310. package/dist/tools/builtin/browser.d.ts.map +1 -0
  311. package/dist/tools/builtin/browser.js.map +1 -0
  312. package/dist/tools/builtin/datetime.d.ts.map +1 -0
  313. package/dist/tools/builtin/datetime.js.map +1 -0
  314. package/dist/tools/builtin/file.d.ts.map +1 -0
  315. package/dist/tools/builtin/file.js.map +1 -0
  316. package/dist/tools/builtin/home-assistant.d.ts.map +1 -0
  317. package/dist/tools/builtin/home-assistant.js.map +1 -0
  318. package/dist/tools/builtin/index.d.ts.map +1 -0
  319. package/dist/tools/builtin/index.js.map +1 -0
  320. package/dist/tools/builtin/rl-tools.d.ts.map +1 -0
  321. package/dist/tools/builtin/rl-tools.js.map +1 -0
  322. package/dist/tools/builtin/shell.d.ts.map +1 -0
  323. package/dist/tools/builtin/shell.js.map +1 -0
  324. package/dist/tools/builtin/vision.d.ts.map +1 -0
  325. package/dist/tools/builtin/vision.js.map +1 -0
  326. package/dist/tools/builtin/web-search.d.ts.map +1 -0
  327. package/dist/tools/builtin/web-search.js.map +1 -0
  328. package/dist/tools/builtin/web.d.ts.map +1 -0
  329. package/dist/tools/builtin/web.js.map +1 -0
  330. package/dist/tools/calculator.d.ts.map +1 -0
  331. package/dist/tools/calculator.js.map +1 -0
  332. package/dist/tools/datetime.d.ts.map +1 -0
  333. package/dist/tools/datetime.js.map +1 -0
  334. package/dist/tools/document-processor.d.ts.map +1 -0
  335. package/dist/tools/document-processor.js.map +1 -0
  336. package/dist/tools/gateway.d.ts.map +1 -0
  337. package/dist/tools/gateway.js.map +1 -0
  338. package/dist/tools/image-generator.d.ts.map +1 -0
  339. package/dist/tools/image-generator.js.map +1 -0
  340. package/dist/tools/integrations/calendar.d.ts.map +1 -0
  341. package/dist/tools/integrations/calendar.js.map +1 -0
  342. package/dist/tools/integrations/code-exec.d.ts.map +1 -0
  343. package/dist/tools/integrations/code-exec.js.map +1 -0
  344. package/dist/tools/integrations/csv-analyzer.d.ts.map +1 -0
  345. package/dist/tools/integrations/csv-analyzer.js.map +1 -0
  346. package/dist/tools/integrations/database.d.ts.map +1 -0
  347. package/dist/tools/integrations/database.js.map +1 -0
  348. package/dist/tools/integrations/email-send.d.ts.map +1 -0
  349. package/dist/tools/integrations/email-send.js.map +1 -0
  350. package/dist/tools/integrations/git-tool.d.ts.map +1 -0
  351. package/dist/tools/integrations/git-tool.js.map +1 -0
  352. package/dist/tools/integrations/github-tool.d.ts.map +1 -0
  353. package/dist/tools/integrations/github-tool.js.map +1 -0
  354. package/dist/tools/integrations/image-gen.d.ts.map +1 -0
  355. package/dist/tools/integrations/image-gen.js.map +1 -0
  356. package/dist/tools/integrations/index.d.ts.map +1 -0
  357. package/dist/tools/integrations/index.js.map +1 -0
  358. package/dist/tools/integrations/jira.d.ts.map +1 -0
  359. package/dist/tools/integrations/jira.js.map +1 -0
  360. package/dist/tools/integrations/notion.d.ts.map +1 -0
  361. package/dist/tools/integrations/notion.js.map +1 -0
  362. package/dist/tools/integrations/npm-tool.d.ts.map +1 -0
  363. package/dist/tools/integrations/npm-tool.js.map +1 -0
  364. package/dist/tools/integrations/pdf-reader.d.ts.map +1 -0
  365. package/dist/tools/integrations/pdf-reader.js.map +1 -0
  366. package/dist/tools/integrations/slack.d.ts.map +1 -0
  367. package/dist/tools/integrations/slack.js.map +1 -0
  368. package/dist/tools/integrations/summarizer.d.ts.map +1 -0
  369. package/dist/tools/integrations/summarizer.js.map +1 -0
  370. package/dist/tools/integrations/translator.d.ts.map +1 -0
  371. package/dist/tools/integrations/translator.js.map +1 -0
  372. package/dist/tools/integrations/trello.d.ts.map +1 -0
  373. package/dist/tools/integrations/trello.js.map +1 -0
  374. package/dist/tools/integrations/vector-search.d.ts.map +1 -0
  375. package/dist/tools/integrations/vector-search.js.map +1 -0
  376. package/dist/tools/integrations/web-scraper.d.ts.map +1 -0
  377. package/dist/tools/integrations/web-scraper.js.map +1 -0
  378. package/dist/tools/integrations/web-search.d.ts.map +1 -0
  379. package/dist/tools/integrations/web-search.js.map +1 -0
  380. package/dist/tools/integrations/webhook.d.ts.map +1 -0
  381. package/dist/tools/integrations/webhook.js.map +1 -0
  382. package/dist/tools/json-transform.d.ts.map +1 -0
  383. package/dist/tools/json-transform.js.map +1 -0
  384. package/dist/tools/mcp-client.d.ts.map +1 -0
  385. package/dist/tools/mcp-client.js.map +1 -0
  386. package/dist/tools/mcp.d.ts.map +1 -0
  387. package/dist/tools/mcp.js.map +1 -0
  388. package/dist/tools/text-analysis.d.ts.map +1 -0
  389. package/dist/tools/text-analysis.js.map +1 -0
  390. package/dist/tools/web-scraper.d.ts.map +1 -0
  391. package/dist/tools/web-scraper.js.map +1 -0
  392. package/dist/tools/web-search.d.ts.map +1 -0
  393. package/dist/tools/web-search.js.map +1 -0
  394. package/dist/traces/index.d.ts.map +1 -0
  395. package/dist/traces/index.js.map +1 -0
  396. package/dist/ui/components.d.ts.map +1 -0
  397. package/dist/ui/components.js.map +1 -0
  398. package/models.json +164 -0
  399. package/package.json +1 -1
  400. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
  401. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  402. package/.github/PULL_REQUEST_TEMPLATE.md +0 -13
  403. package/.github/workflows/ci.yml +0 -24
  404. package/USABILITY-ISSUES.md +0 -73
  405. package/docs/.vitepress/config.ts +0 -103
  406. package/docs/api/cli.md +0 -48
  407. package/docs/api/oad-schema.md +0 -64
  408. package/docs/api/sdk.md +0 -80
  409. package/docs/guide/concepts.md +0 -51
  410. package/docs/guide/configuration.md +0 -79
  411. package/docs/guide/deployment.md +0 -42
  412. package/docs/guide/getting-started.md +0 -44
  413. package/docs/guide/templates.md +0 -28
  414. package/docs/guide/testing.md +0 -84
  415. package/docs/index.md +0 -27
  416. package/docs/zh/api/cli.md +0 -54
  417. package/docs/zh/api/oad-schema.md +0 -87
  418. package/docs/zh/api/sdk.md +0 -102
  419. package/docs/zh/guide/concepts.md +0 -104
  420. package/docs/zh/guide/configuration.md +0 -135
  421. package/docs/zh/guide/deployment.md +0 -81
  422. package/docs/zh/guide/getting-started.md +0 -82
  423. package/docs/zh/guide/templates.md +0 -84
  424. package/docs/zh/guide/testing.md +0 -88
  425. package/docs/zh/index.md +0 -27
  426. package/fix-sidebar.mjs +0 -188
  427. package/serve-studio.js +0 -13
  428. package/serve-test.js +0 -25
  429. package/src/analytics/index.ts +0 -66
  430. package/src/channels/dingtalk.ts +0 -46
  431. package/src/channels/discord.ts +0 -192
  432. package/src/channels/email.ts +0 -351
  433. package/src/channels/feishu.ts +0 -349
  434. package/src/channels/googlechat.ts +0 -42
  435. package/src/channels/imessage.ts +0 -32
  436. package/src/channels/index.ts +0 -15
  437. package/src/channels/irc.ts +0 -82
  438. package/src/channels/line.ts +0 -33
  439. package/src/channels/matrix.ts +0 -34
  440. package/src/channels/mattermost.ts +0 -57
  441. package/src/channels/msteams.ts +0 -33
  442. package/src/channels/nostr.ts +0 -33
  443. package/src/channels/qq.ts +0 -34
  444. package/src/channels/signal.ts +0 -33
  445. package/src/channels/slack.ts +0 -217
  446. package/src/channels/sms.ts +0 -34
  447. package/src/channels/telegram.ts +0 -616
  448. package/src/channels/twitch.ts +0 -65
  449. package/src/channels/voice-call.ts +0 -100
  450. package/src/channels/voice.ts +0 -471
  451. package/src/channels/web.ts +0 -638
  452. package/src/channels/webhook.ts +0 -199
  453. package/src/channels/websocket.ts +0 -399
  454. package/src/channels/wechat.ts +0 -329
  455. package/src/channels/whatsapp.ts +0 -33
  456. package/src/cli/chat.ts +0 -99
  457. package/src/cli/setup.ts +0 -314
  458. package/src/cli.ts +0 -2826
  459. package/src/core/a2a.ts +0 -203
  460. package/src/core/agent.ts +0 -476
  461. package/src/core/analytics-engine.ts +0 -186
  462. package/src/core/api-server.ts +0 -277
  463. package/src/core/audio.ts +0 -98
  464. package/src/core/auth.ts +0 -57
  465. package/src/core/cache.ts +0 -141
  466. package/src/core/collaboration.ts +0 -275
  467. package/src/core/compose.ts +0 -77
  468. package/src/core/config.ts +0 -14
  469. package/src/core/context-discovery.ts +0 -85
  470. package/src/core/context-refs.ts +0 -140
  471. package/src/core/errors.ts +0 -148
  472. package/src/core/gateway.ts +0 -106
  473. package/src/core/heartbeat.ts +0 -51
  474. package/src/core/hitl.ts +0 -138
  475. package/src/core/hooks.ts +0 -105
  476. package/src/core/ide-bridge.ts +0 -133
  477. package/src/core/knowledge.ts +0 -255
  478. package/src/core/logger.ts +0 -57
  479. package/src/core/node-network.ts +0 -86
  480. package/src/core/orchestrator.ts +0 -215
  481. package/src/core/performance.ts +0 -187
  482. package/src/core/profiles.ts +0 -122
  483. package/src/core/rate-limiter.ts +0 -128
  484. package/src/core/room.ts +0 -109
  485. package/src/core/runtime.ts +0 -435
  486. package/src/core/sandbox.ts +0 -344
  487. package/src/core/scheduler.ts +0 -187
  488. package/src/core/security.ts +0 -171
  489. package/src/core/session-manager.ts +0 -137
  490. package/src/core/streaming.ts +0 -195
  491. package/src/core/subagent.ts +0 -98
  492. package/src/core/types.ts +0 -68
  493. package/src/core/versioning.ts +0 -106
  494. package/src/core/vision.ts +0 -180
  495. package/src/core/watch.ts +0 -178
  496. package/src/core/workflow-graph.ts +0 -365
  497. package/src/core/workflow.ts +0 -235
  498. package/src/daemon.ts +0 -96
  499. package/src/deploy/hermes.ts +0 -156
  500. package/src/deploy/index.ts +0 -255
  501. package/src/deploy/openclaw.ts +0 -190
  502. package/src/doctor.ts +0 -243
  503. package/src/eval/index.ts +0 -211
  504. package/src/eval/suites/basic.json +0 -16
  505. package/src/eval/suites/memory.json +0 -12
  506. package/src/eval/suites/safety.json +0 -14
  507. package/src/hub/brain-seed.ts +0 -54
  508. package/src/hub/client.ts +0 -60
  509. package/src/i18n/index.ts +0 -216
  510. package/src/index.ts +0 -283
  511. package/src/mcp/servers/calculator-mcp.ts +0 -65
  512. package/src/mcp/servers/crypto-mcp.ts +0 -73
  513. package/src/mcp/servers/database-mcp.ts +0 -72
  514. package/src/mcp/servers/datetime-mcp.ts +0 -69
  515. package/src/mcp/servers/filesystem.ts +0 -66
  516. package/src/mcp/servers/github-mcp.ts +0 -58
  517. package/src/mcp/servers/index.ts +0 -63
  518. package/src/mcp/servers/json-mcp.ts +0 -102
  519. package/src/mcp/servers/memory-mcp.ts +0 -56
  520. package/src/mcp/servers/regex-mcp.ts +0 -53
  521. package/src/mcp/servers/web-mcp.ts +0 -49
  522. package/src/memory/context-compressor.ts +0 -189
  523. package/src/memory/deepbrain.ts +0 -202
  524. package/src/memory/index.ts +0 -41
  525. package/src/memory/seed-loader.ts +0 -212
  526. package/src/memory/user-profiler.ts +0 -215
  527. package/src/plugins/content-filter.ts +0 -23
  528. package/src/plugins/index.ts +0 -339
  529. package/src/plugins/logger.ts +0 -18
  530. package/src/plugins/rate-limiter.ts +0 -38
  531. package/src/protocols/a2a/client.ts +0 -132
  532. package/src/protocols/a2a/index.ts +0 -8
  533. package/src/protocols/a2a/server.ts +0 -333
  534. package/src/protocols/a2a/types.ts +0 -88
  535. package/src/protocols/a2a/utils.ts +0 -50
  536. package/src/protocols/agui/client.ts +0 -83
  537. package/src/protocols/agui/index.ts +0 -4
  538. package/src/protocols/agui/server.ts +0 -218
  539. package/src/protocols/agui/types.ts +0 -153
  540. package/src/protocols/index.ts +0 -2
  541. package/src/protocols/mcp/agent-tools.ts +0 -134
  542. package/src/protocols/mcp/index.ts +0 -8
  543. package/src/protocols/mcp/server.ts +0 -262
  544. package/src/protocols/mcp/types.ts +0 -69
  545. package/src/providers/index.ts +0 -632
  546. package/src/publish/index.ts +0 -376
  547. package/src/scheduler/cron-engine.ts +0 -191
  548. package/src/scheduler/index.ts +0 -2
  549. package/src/schema/oad.ts +0 -217
  550. package/src/security/approval.ts +0 -131
  551. package/src/security/approvals.ts +0 -143
  552. package/src/security/elevated.ts +0 -105
  553. package/src/security/guardrails.ts +0 -248
  554. package/src/security/index.ts +0 -9
  555. package/src/security/keys.ts +0 -87
  556. package/src/security/secrets.ts +0 -129
  557. package/src/skills/auto-learn.ts +0 -262
  558. package/src/skills/base.ts +0 -16
  559. package/src/skills/builtin/index.ts +0 -408
  560. package/src/skills/document.ts +0 -100
  561. package/src/skills/http.ts +0 -35
  562. package/src/skills/index.ts +0 -27
  563. package/src/skills/marketplace.ts +0 -113
  564. package/src/skills/scheduler.ts +0 -80
  565. package/src/skills/types.ts +0 -42
  566. package/src/skills/webhook-trigger.ts +0 -59
  567. package/src/studio/server.ts +0 -1791
  568. package/src/studio/templates-data.ts +0 -178
  569. package/src/studio-ui/index.html +0 -3076
  570. package/src/telemetry/index.ts +0 -324
  571. package/src/templates/code-reviewer.ts +0 -30
  572. package/src/templates/content-writer.ts +0 -58
  573. package/src/templates/customer-service.ts +0 -76
  574. package/src/templates/data-analyst.ts +0 -66
  575. package/src/templates/executive-assistant.ts +0 -71
  576. package/src/templates/financial-advisor.ts +0 -60
  577. package/src/templates/hr-recruiter.ts +0 -58
  578. package/src/templates/knowledge-base.ts +0 -27
  579. package/src/templates/legal-assistant.ts +0 -71
  580. package/src/templates/project-manager.ts +0 -58
  581. package/src/templates/sales-assistant.ts +0 -75
  582. package/src/templates/teacher.ts +0 -75
  583. package/src/testing/index.ts +0 -181
  584. package/src/tools/builtin/browser.ts +0 -299
  585. package/src/tools/builtin/datetime.ts +0 -41
  586. package/src/tools/builtin/file.ts +0 -107
  587. package/src/tools/builtin/home-assistant.ts +0 -116
  588. package/src/tools/builtin/index.ts +0 -37
  589. package/src/tools/builtin/rl-tools.ts +0 -243
  590. package/src/tools/builtin/shell.ts +0 -43
  591. package/src/tools/builtin/vision.ts +0 -64
  592. package/src/tools/builtin/web-search.ts +0 -126
  593. package/src/tools/builtin/web.ts +0 -35
  594. package/src/tools/calculator.ts +0 -73
  595. package/src/tools/datetime.ts +0 -149
  596. package/src/tools/document-processor.ts +0 -213
  597. package/src/tools/gateway.ts +0 -220
  598. package/src/tools/image-generator.ts +0 -150
  599. package/src/tools/integrations/calendar.ts +0 -73
  600. package/src/tools/integrations/code-exec.ts +0 -39
  601. package/src/tools/integrations/csv-analyzer.ts +0 -92
  602. package/src/tools/integrations/database.ts +0 -44
  603. package/src/tools/integrations/email-send.ts +0 -76
  604. package/src/tools/integrations/git-tool.ts +0 -42
  605. package/src/tools/integrations/github-tool.ts +0 -76
  606. package/src/tools/integrations/image-gen.ts +0 -56
  607. package/src/tools/integrations/index.ts +0 -92
  608. package/src/tools/integrations/jira.ts +0 -83
  609. package/src/tools/integrations/notion.ts +0 -71
  610. package/src/tools/integrations/npm-tool.ts +0 -48
  611. package/src/tools/integrations/pdf-reader.ts +0 -58
  612. package/src/tools/integrations/slack.ts +0 -65
  613. package/src/tools/integrations/summarizer.ts +0 -49
  614. package/src/tools/integrations/translator.ts +0 -48
  615. package/src/tools/integrations/trello.ts +0 -60
  616. package/src/tools/integrations/vector-search.ts +0 -42
  617. package/src/tools/integrations/web-scraper.ts +0 -47
  618. package/src/tools/integrations/web-search.ts +0 -58
  619. package/src/tools/integrations/webhook.ts +0 -38
  620. package/src/tools/json-transform.ts +0 -187
  621. package/src/tools/mcp-client.ts +0 -131
  622. package/src/tools/mcp.ts +0 -76
  623. package/src/tools/text-analysis.ts +0 -116
  624. package/src/tools/web-scraper.ts +0 -179
  625. package/src/tools/web-search.ts +0 -180
  626. package/src/traces/index.ts +0 -132
  627. package/src/types/agent-workstation.d.ts +0 -2
  628. package/src/ui/components.ts +0 -127
  629. package/srv-err.txt +0 -0
  630. package/srv-out.txt +0 -1
  631. package/test-agent/Dockerfile +0 -9
  632. package/test-agent/README.md +0 -50
  633. package/test-agent/agent.yaml +0 -23
  634. package/test-agent/docker-compose.yml +0 -11
  635. package/test-agent/oad.yaml +0 -31
  636. package/test-agent/package-lock.json +0 -1492
  637. package/test-agent/package.json +0 -18
  638. package/test-agent/src/index.ts +0 -24
  639. package/test-agent/src/skills/echo.ts +0 -15
  640. package/test-agent/tsconfig.json +0 -25
  641. package/test-full.js +0 -43
  642. package/test-sidebar.js +0 -22
  643. package/test-studio3.js +0 -75
  644. package/test-studio4.js +0 -41
  645. package/tests/a2a-protocol.test.ts +0 -285
  646. package/tests/a2a.test.ts +0 -66
  647. package/tests/agent.test.ts +0 -72
  648. package/tests/agui-protocol.test.ts +0 -246
  649. package/tests/analytics.test.ts +0 -50
  650. package/tests/api-server.test.ts +0 -148
  651. package/tests/approvals.test.ts +0 -89
  652. package/tests/audio.test.ts +0 -40
  653. package/tests/auto-learn.test.ts +0 -105
  654. package/tests/brain-seed-extended.test.ts +0 -490
  655. package/tests/brain-seed.test.ts +0 -239
  656. package/tests/browser.test.ts +0 -179
  657. package/tests/builtin-tools.test.ts +0 -83
  658. package/tests/channel.test.ts +0 -39
  659. package/tests/channels/discord.test.ts +0 -79
  660. package/tests/channels/email.test.ts +0 -148
  661. package/tests/channels/feishu.test.ts +0 -123
  662. package/tests/channels/telegram.test.ts +0 -129
  663. package/tests/channels/websocket.test.ts +0 -53
  664. package/tests/channels/wechat.test.ts +0 -170
  665. package/tests/channels-extra.test.ts +0 -45
  666. package/tests/chat-cli.test.ts +0 -160
  667. package/tests/cli.test.ts +0 -46
  668. package/tests/collaboration.test.ts +0 -319
  669. package/tests/context-compressor.test.ts +0 -172
  670. package/tests/context-refs.test.ts +0 -121
  671. package/tests/cron-engine.test.ts +0 -101
  672. package/tests/daemon.test.ts +0 -135
  673. package/tests/deepbrain-wire.test.ts +0 -234
  674. package/tests/deploy-and-dag.test.ts +0 -196
  675. package/tests/doctor.test.ts +0 -38
  676. package/tests/document-processor.test.ts +0 -69
  677. package/tests/e2e-nocode.test.ts +0 -442
  678. package/tests/e2e.test.ts +0 -134
  679. package/tests/elevated.test.ts +0 -69
  680. package/tests/errors.test.ts +0 -83
  681. package/tests/eval.test.ts +0 -173
  682. package/tests/gateway.test.ts +0 -63
  683. package/tests/guardrails.test.ts +0 -177
  684. package/tests/hitl.test.ts +0 -71
  685. package/tests/home-assistant.test.ts +0 -40
  686. package/tests/hooks.test.ts +0 -79
  687. package/tests/i18n.test.ts +0 -41
  688. package/tests/ide-bridge.test.ts +0 -38
  689. package/tests/image-generator.test.ts +0 -84
  690. package/tests/init-role.test.ts +0 -124
  691. package/tests/integrations.test.ts +0 -249
  692. package/tests/mcp-client.test.ts +0 -92
  693. package/tests/mcp-server.test.ts +0 -178
  694. package/tests/mcp-servers.test.ts +0 -260
  695. package/tests/mcp.test.ts +0 -54
  696. package/tests/node-network.test.ts +0 -74
  697. package/tests/oad.test.ts +0 -68
  698. package/tests/performance.test.ts +0 -115
  699. package/tests/plugin-a2a-enhanced.test.ts +0 -230
  700. package/tests/plugin.test.ts +0 -74
  701. package/tests/profiles.test.ts +0 -61
  702. package/tests/publish.test.ts +0 -231
  703. package/tests/rl-tools.test.ts +0 -93
  704. package/tests/room.test.ts +0 -106
  705. package/tests/runtime.test.ts +0 -42
  706. package/tests/sandbox-manager.test.ts +0 -46
  707. package/tests/sandbox.test.ts +0 -46
  708. package/tests/scheduler.test.ts +0 -200
  709. package/tests/secrets.test.ts +0 -107
  710. package/tests/security-enhanced.test.ts +0 -233
  711. package/tests/security.test.ts +0 -60
  712. package/tests/settings-api.test.ts +0 -148
  713. package/tests/setup.test.ts +0 -73
  714. package/tests/skill-learner.test.ts +0 -161
  715. package/tests/streaming.test.ts +0 -109
  716. package/tests/studio.test.ts +0 -402
  717. package/tests/subagent.test.ts +0 -193
  718. package/tests/telegram-discord.test.ts +0 -60
  719. package/tests/telemetry.test.ts +0 -186
  720. package/tests/templates.test.ts +0 -77
  721. package/tests/tools/builtin-extended.test.ts +0 -138
  722. package/tests/user-profiler.test.ts +0 -169
  723. package/tests/v070.test.ts +0 -76
  724. package/tests/v090-features.test.ts +0 -254
  725. package/tests/versioning.test.ts +0 -75
  726. package/tests/vision.test.ts +0 -61
  727. package/tests/voice-call.test.ts +0 -47
  728. package/tests/voice-enhanced.test.ts +0 -169
  729. package/tests/voice-interaction.test.ts +0 -38
  730. package/tests/voice.test.ts +0 -61
  731. package/tests/web-search.test.ts +0 -155
  732. package/tests/webhook.test.ts +0 -29
  733. package/tests/workflow-graph.test.ts +0 -279
  734. package/tests/workflow.test.ts +0 -143
  735. package/tmp-js-test.js +0 -1532
  736. package/tmp-sc.js +0 -1716
  737. package/tutorial/customer-service-agent/README.md +0 -612
  738. package/tutorial/customer-service-agent/SOUL.md +0 -26
  739. package/tutorial/customer-service-agent/agent.yaml +0 -63
  740. package/tutorial/customer-service-agent/package.json +0 -19
  741. package/tutorial/customer-service-agent/src/index.ts +0 -69
  742. package/tutorial/customer-service-agent/src/skills/faq.ts +0 -27
  743. package/tutorial/customer-service-agent/src/skills/ticket.ts +0 -22
  744. package/tutorial/customer-service-agent/tsconfig.json +0 -14
  745. package/vitest.config.ts +0 -9
@@ -1,215 +0,0 @@
1
- import type { Message } from '../core/types';
2
-
3
- export interface UserProfile {
4
- preferences: Record<string, string>;
5
- communication_style: string;
6
- expertise_areas: string[];
7
- common_requests: string[];
8
- last_updated: number;
9
- }
10
-
11
- const EMPTY_PROFILE: UserProfile = {
12
- preferences: {},
13
- communication_style: 'unknown',
14
- expertise_areas: [],
15
- common_requests: [],
16
- last_updated: 0,
17
- };
18
-
19
- /**
20
- * DeepBrain-powered user profiling from conversation signals.
21
- */
22
- export class UserProfiler {
23
- private observationCount = 0;
24
- private signals = {
25
- languages: new Map<string, number>(),
26
- techKeywords: new Set<string>(),
27
- styleSignals: { brief: 0, detailed: 0, formal: 0, casual: 0 },
28
- requestTypes: new Map<string, number>(),
29
- };
30
-
31
- private readonly LEARN_INTERVAL = 20;
32
-
33
- /**
34
- * Detect language mix of a text.
35
- */
36
- private detectLanguage(text: string): string {
37
- let cn = 0, en = 0;
38
- for (const char of text) {
39
- const code = char.codePointAt(0) ?? 0;
40
- if (code >= 0x4e00 && code <= 0x9fff) cn++;
41
- else if ((code >= 0x41 && code <= 0x5a) || (code >= 0x61 && code <= 0x7a)) en++;
42
- }
43
- if (cn > 0 && en > 0) return 'mixed';
44
- if (cn > en) return 'chinese';
45
- return 'english';
46
- }
47
-
48
- /**
49
- * Detect technical level from content.
50
- */
51
- private detectTechLevel(text: string): string {
52
- const expertTerms = /\b(kubernetes|k8s|microservice|architecture|distributed|consensus|raft|paxos|sharding|vector db|embedding|fine-?tun|transformer|CUDA|inference|quantiz|LoRA|RAG)\b/i;
53
- const intermediateTerms = /\b(API|REST|GraphQL|Docker|CI\/CD|database|deploy|cloud|React|TypeScript|Python|async|cache|redis|nginx)\b/i;
54
-
55
- if (expertTerms.test(text)) return 'expert';
56
- if (intermediateTerms.test(text)) return 'intermediate';
57
- return 'beginner';
58
- }
59
-
60
- /**
61
- * Detect communication style.
62
- */
63
- private detectStyle(text: string): void {
64
- if (text.length < 50) this.signals.styleSignals.brief++;
65
- else if (text.length > 300) this.signals.styleSignals.detailed++;
66
-
67
- if (/\b(please|kindly|would you|could you|请问|烦请|麻烦)\b/i.test(text)) {
68
- this.signals.styleSignals.formal++;
69
- }
70
- if (/[!]{2,}|lol|haha|😂|🤣|哈哈|牛|666|👍/i.test(text)) {
71
- this.signals.styleSignals.casual++;
72
- }
73
- }
74
-
75
- /**
76
- * Extract domain keywords.
77
- */
78
- private extractDomainKeywords(text: string): void {
79
- const techWords = text.match(/\b[A-Z][a-zA-Z]{2,}(?:\.js|\.ts|\.py)?\b/g) ?? [];
80
- techWords.forEach(w => this.signals.techKeywords.add(w));
81
- // Chinese tech terms
82
- const cnTerms = text.match(/(?:人工智能|机器学习|深度学习|大模型|微服务|架构|部署|运维|前端|后端|数据库|缓存|分布式)/g) ?? [];
83
- cnTerms.forEach(w => this.signals.techKeywords.add(w));
84
- }
85
-
86
- /**
87
- * Classify request type.
88
- */
89
- private classifyRequest(text: string): string {
90
- if (/\b(how to|怎么|如何|how do)\b/i.test(text)) return 'how-to';
91
- if (/\b(why|为什么|原因)\b/i.test(text)) return 'explanation';
92
- if (/\b(fix|error|bug|报错|出错|failed)\b/i.test(text)) return 'debugging';
93
- if (/\b(review|评审|看看|check)\b/i.test(text)) return 'review';
94
- if (/\b(create|build|write|写|创建|生成)\b/i.test(text)) return 'creation';
95
- return 'general';
96
- }
97
-
98
- /**
99
- * Observe a user message and accumulate profile signals.
100
- */
101
- async observe(message: Message, brain?: any): Promise<void> {
102
- if (message.role !== 'user') return;
103
-
104
- const text = message.content;
105
-
106
- // Language
107
- const lang = this.detectLanguage(text);
108
- this.signals.languages.set(lang, (this.signals.languages.get(lang) ?? 0) + 1);
109
-
110
- // Style
111
- this.detectStyle(text);
112
-
113
- // Domain keywords
114
- this.extractDomainKeywords(text);
115
-
116
- // Request type
117
- const reqType = this.classifyRequest(text);
118
- this.signals.requestTypes.set(reqType, (this.signals.requestTypes.get(reqType) ?? 0) + 1);
119
-
120
- this.observationCount++;
121
-
122
- // Periodically persist to brain
123
- if (brain?.learn && this.observationCount % this.LEARN_INTERVAL === 0) {
124
- const profile = this.buildProfileFromSignals();
125
- try {
126
- await brain.learn(JSON.stringify(profile), { insight_type: 'user_profile' });
127
- } catch { /* non-critical */ }
128
- }
129
- }
130
-
131
- private buildProfileFromSignals(): UserProfile {
132
- // Language preference
133
- let topLang = 'english';
134
- let maxCount = 0;
135
- for (const [lang, count] of this.signals.languages) {
136
- if (count > maxCount) { topLang = lang; maxCount = count; }
137
- }
138
-
139
- // Communication style
140
- const ss = this.signals.styleSignals;
141
- const styles = [
142
- ['brief', ss.brief], ['detailed', ss.detailed],
143
- ['formal', ss.formal], ['casual', ss.casual],
144
- ] as const;
145
- const topStyle = styles.reduce((a, b) => (b[1] > a[1] ? b : a))[0];
146
-
147
- // Top request types
148
- const topRequests = [...this.signals.requestTypes.entries()]
149
- .sort((a, b) => b[1] - a[1])
150
- .slice(0, 5)
151
- .map(([t]) => t);
152
-
153
- return {
154
- preferences: { language: topLang },
155
- communication_style: topStyle,
156
- expertise_areas: [...this.signals.techKeywords].slice(0, 20),
157
- common_requests: topRequests,
158
- last_updated: Date.now(),
159
- };
160
- }
161
-
162
- /**
163
- * Get user profile, optionally from brain recall.
164
- */
165
- async getProfile(brain?: any): Promise<UserProfile> {
166
- // First try local signals
167
- if (this.observationCount > 0) {
168
- return this.buildProfileFromSignals();
169
- }
170
-
171
- // Fallback to brain recall
172
- if (brain?.recall) {
173
- try {
174
- const results = await brain.recall('user profile preferences style');
175
- if (Array.isArray(results) && results.length > 0) {
176
- const raw = typeof results[0] === 'string' ? results[0] : results[0].content;
177
- return { ...EMPTY_PROFILE, ...JSON.parse(raw) };
178
- }
179
- } catch { /* ignore parse errors */ }
180
- }
181
-
182
- return { ...EMPTY_PROFILE };
183
- }
184
-
185
- /**
186
- * Enhance a system prompt with user profile context.
187
- */
188
- enhance(systemPrompt: string, profile: UserProfile): string {
189
- const hints: string[] = [];
190
-
191
- if (profile.preferences.language) {
192
- const langMap: Record<string, string> = {
193
- chinese: 'User prefers Chinese responses.',
194
- english: 'User prefers English responses.',
195
- mixed: 'User uses mixed Chinese/English. Match their style.',
196
- };
197
- if (langMap[profile.preferences.language]) hints.push(langMap[profile.preferences.language]);
198
- }
199
-
200
- if (profile.communication_style && profile.communication_style !== 'unknown') {
201
- hints.push(`User communication style: ${profile.communication_style}.`);
202
- }
203
-
204
- if (profile.expertise_areas.length > 0) {
205
- hints.push(`User expertise: ${profile.expertise_areas.slice(0, 10).join(', ')}.`);
206
- }
207
-
208
- if (profile.common_requests.length > 0) {
209
- hints.push(`Common request types: ${profile.common_requests.join(', ')}.`);
210
- }
211
-
212
- if (hints.length === 0) return systemPrompt;
213
- return `${systemPrompt}\n\n[User Profile] ${hints.join(' ')}`;
214
- }
215
- }
@@ -1,23 +0,0 @@
1
- import type { Plugin } from './index';
2
-
3
- /**
4
- * Content filter plugin — filters messages containing blocked keywords.
5
- */
6
- export function createContentFilterPlugin(blocklist: string[] = []): Plugin {
7
- return {
8
- name: 'content-filter',
9
- version: '1.0.0',
10
- description: 'Filter inappropriate content',
11
- onMessage: async (msg: any, next: (m: any) => Promise<any>) => {
12
- const content = (msg.content || '').toLowerCase();
13
- for (const word of blocklist) {
14
- if (content.includes(word.toLowerCase())) {
15
- throw new Error(`Content blocked: message contains prohibited content`);
16
- }
17
- }
18
- return next(msg);
19
- },
20
- };
21
- }
22
-
23
- export const contentFilterPlugin: Plugin = createContentFilterPlugin([]);
@@ -1,339 +0,0 @@
1
- import type { ISkill, IChannel, Message } from '../core/types';
2
- import type { MCPTool } from '../tools/mcp';
3
- import { Logger } from '../core/logger';
4
-
5
- /**
6
- * Plugin lifecycle hooks - v1.0.0
7
- */
8
- export interface PluginHooks {
9
- onInit?: () => Promise<void>;
10
- onMessage?: (message: Message) => Promise<Message | void>;
11
- onResponse?: (message: Message, response: Message) => Promise<Message | void>;
12
- onError?: (error: Error, context?: Record<string, unknown>) => Promise<void>;
13
- onShutdown?: () => Promise<void>;
14
- // Legacy aliases
15
- beforeInit?: () => Promise<void>;
16
- afterInit?: () => Promise<void>;
17
- beforeMessage?: (message: { content: string }) => Promise<void>;
18
- afterMessage?: (message: { content: string }, response: { content: string }) => Promise<void>;
19
- beforeShutdown?: () => Promise<void>;
20
- }
21
-
22
- /**
23
- * v1.6.0 — Enhanced Plugin interface with middleware pattern.
24
- * Plugins implementing this interface use next() to chain processing.
25
- */
26
- export interface Plugin {
27
- name: string;
28
- version: string;
29
- description?: string;
30
-
31
- // Lifecycle hooks
32
- onInit?(runtime: any): Promise<void>;
33
- onMessage?(message: any, next: (msg: any) => Promise<any>): Promise<any>;
34
- onResponse?(response: any, next: (res: any) => Promise<any>): Promise<any>;
35
- onError?(error: Error): void;
36
- onShutdown?(): Promise<void>;
37
-
38
- // Registration
39
- tools?: any[];
40
- skills?: any[];
41
- channels?: any[];
42
- }
43
-
44
- /**
45
- * Plugin manifest in OAD: plugins: [{ name, config }]
46
- */
47
- export interface PluginManifest {
48
- name: string;
49
- config?: Record<string, unknown>;
50
- }
51
-
52
- /**
53
- * Plugin interface - extend agent with skills, tools, channels, and lifecycle hooks.
54
- */
55
- export interface IPlugin {
56
- name: string;
57
- version: string;
58
- description?: string;
59
- hooks?: PluginHooks;
60
- skills?: ISkill[];
61
- tools?: MCPTool[];
62
- channels?: IChannel[];
63
- }
64
-
65
- export class PluginManager {
66
- private plugins: Map<string, IPlugin> = new Map();
67
- private enhancedPlugins: Map<string, Plugin> = new Map();
68
- private logger = new Logger('plugins');
69
-
70
- register(plugin: IPlugin): void {
71
- if (this.plugins.has(plugin.name)) {
72
- this.logger.warn(`Plugin "${plugin.name}" already registered, replacing`);
73
- }
74
- this.plugins.set(plugin.name, plugin);
75
- this.logger.info(`Plugin registered: ${plugin.name}@${plugin.version}`);
76
- }
77
-
78
- /**
79
- * Register an enhanced plugin with middleware support (v1.6.0).
80
- */
81
- registerEnhanced(plugin: Plugin): void {
82
- if (this.enhancedPlugins.has(plugin.name)) {
83
- this.logger.warn(`Enhanced plugin "${plugin.name}" already registered, replacing`);
84
- }
85
- this.enhancedPlugins.set(plugin.name, plugin);
86
- this.logger.info(`Enhanced plugin registered: ${plugin.name}@${plugin.version}`);
87
- }
88
-
89
- unregisterEnhanced(name: string): void {
90
- this.enhancedPlugins.delete(name);
91
- }
92
-
93
- getEnhanced(name: string): Plugin | undefined {
94
- return this.enhancedPlugins.get(name);
95
- }
96
-
97
- listEnhanced(): Plugin[] {
98
- return Array.from(this.enhancedPlugins.values());
99
- }
100
-
101
- unregister(name: string): void {
102
- this.plugins.delete(name);
103
- this.enhancedPlugins.delete(name);
104
- }
105
-
106
- get(name: string): IPlugin | undefined {
107
- return this.plugins.get(name);
108
- }
109
-
110
- list(): { name: string; version: string; description?: string }[] {
111
- const legacy = Array.from(this.plugins.values()).map(({ name, version, description }) => ({
112
- name, version, description,
113
- }));
114
- const enhanced = Array.from(this.enhancedPlugins.values()).map(({ name, version, description }) => ({
115
- name, version, description,
116
- }));
117
- return [...legacy, ...enhanced];
118
- }
119
-
120
- has(name: string): boolean {
121
- return this.plugins.has(name) || this.enhancedPlugins.has(name);
122
- }
123
-
124
- async runHook(hookName: keyof PluginHooks, ...args: unknown[]): Promise<void> {
125
- for (const plugin of this.plugins.values()) {
126
- const hook = plugin.hooks?.[hookName];
127
- if (hook) {
128
- try {
129
- await (hook as (...a: unknown[]) => Promise<void>)(...args);
130
- } catch (err) {
131
- this.logger.error(`Plugin "${plugin.name}" hook "${hookName}" failed`, {
132
- error: err instanceof Error ? err.message : String(err),
133
- });
134
- // Don't let one plugin break others
135
- }
136
- }
137
- }
138
- }
139
-
140
- /**
141
- * Initialize all plugins (legacy + enhanced).
142
- */
143
- async initAll(runtime?: any): Promise<void> {
144
- await this.runOnInit();
145
- for (const plugin of this.enhancedPlugins.values()) {
146
- if (plugin.onInit) {
147
- try {
148
- await plugin.onInit(runtime);
149
- } catch (err) {
150
- this.logger.error(`Enhanced plugin "${plugin.name}" onInit failed`, {
151
- error: err instanceof Error ? err.message : String(err),
152
- });
153
- }
154
- }
155
- }
156
- }
157
-
158
- /**
159
- * Shutdown all plugins (legacy + enhanced).
160
- */
161
- async shutdownAll(): Promise<void> {
162
- await this.runOnShutdown();
163
- for (const plugin of this.enhancedPlugins.values()) {
164
- if (plugin.onShutdown) {
165
- try {
166
- await plugin.onShutdown();
167
- } catch (err) {
168
- this.logger.error(`Enhanced plugin "${plugin.name}" onShutdown failed`, {
169
- error: err instanceof Error ? err.message : String(err),
170
- });
171
- }
172
- }
173
- }
174
- }
175
-
176
- /**
177
- * Run message through enhanced plugin middleware chain.
178
- * Each plugin calls next() to pass to the next plugin.
179
- */
180
- async runMessageMiddleware(message: any): Promise<any> {
181
- const plugins = Array.from(this.enhancedPlugins.values()).filter(p => p.onMessage);
182
- if (plugins.length === 0) return message;
183
-
184
- let index = 0;
185
- const next = async (msg: any): Promise<any> => {
186
- if (index >= plugins.length) return msg;
187
- const plugin = plugins[index++];
188
- return plugin.onMessage!(msg, next);
189
- };
190
- return next(message);
191
- }
192
-
193
- /**
194
- * Run response through enhanced plugin middleware chain.
195
- */
196
- async runResponseMiddleware(response: any): Promise<any> {
197
- const plugins = Array.from(this.enhancedPlugins.values()).filter(p => p.onResponse);
198
- if (plugins.length === 0) return response;
199
-
200
- let index = 0;
201
- const next = async (res: any): Promise<any> => {
202
- if (index >= plugins.length) return res;
203
- const plugin = plugins[index++];
204
- return plugin.onResponse!(res, next);
205
- };
206
- return next(response);
207
- }
208
-
209
- async runOnInit(): Promise<void> {
210
- await this.runHook('onInit');
211
- await this.runHook('beforeInit');
212
- await this.runHook('afterInit');
213
- }
214
-
215
- async runOnMessage(message: Message): Promise<Message> {
216
- let msg = message;
217
- for (const plugin of this.plugins.values()) {
218
- if (plugin.hooks?.onMessage) {
219
- const result = await plugin.hooks.onMessage(msg);
220
- if (result) msg = result;
221
- }
222
- if (plugin.hooks?.beforeMessage) {
223
- await plugin.hooks.beforeMessage({ content: msg.content });
224
- }
225
- }
226
- // Also run enhanced middleware
227
- msg = await this.runMessageMiddleware(msg);
228
- return msg;
229
- }
230
-
231
- async runOnResponse(message: Message, response: Message): Promise<Message> {
232
- let resp = response;
233
- for (const plugin of this.plugins.values()) {
234
- if (plugin.hooks?.onResponse) {
235
- const result = await plugin.hooks.onResponse(message, resp);
236
- if (result) resp = result;
237
- }
238
- if (plugin.hooks?.afterMessage) {
239
- await plugin.hooks.afterMessage({ content: message.content }, { content: resp.content });
240
- }
241
- }
242
- // Also run enhanced middleware
243
- resp = await this.runResponseMiddleware(resp);
244
- return resp;
245
- }
246
-
247
- async runOnError(error: Error, context?: Record<string, unknown>): Promise<void> {
248
- await this.runHook('onError', error, context);
249
- for (const plugin of this.enhancedPlugins.values()) {
250
- if (plugin.onError) {
251
- try {
252
- plugin.onError(error);
253
- } catch (_) { /* ignore */ }
254
- }
255
- }
256
- }
257
-
258
- async runOnShutdown(): Promise<void> {
259
- await this.runHook('onShutdown');
260
- await this.runHook('beforeShutdown');
261
- }
262
-
263
- getAllSkills(): ISkill[] {
264
- const skills: ISkill[] = [];
265
- for (const plugin of this.plugins.values()) {
266
- if (plugin.skills) skills.push(...plugin.skills);
267
- }
268
- return skills;
269
- }
270
-
271
- getAllTools(): MCPTool[] {
272
- const tools: MCPTool[] = [];
273
- for (const plugin of this.plugins.values()) {
274
- if (plugin.tools) tools.push(...plugin.tools);
275
- }
276
- return tools;
277
- }
278
-
279
- getAllChannels(): IChannel[] {
280
- const channels: IChannel[] = [];
281
- for (const plugin of this.plugins.values()) {
282
- if (plugin.channels) channels.push(...plugin.channels);
283
- }
284
- return channels;
285
- }
286
- }
287
-
288
- // ── Built-in Plugins ────────────────────────────────────────
289
-
290
- export function createLoggingPlugin(): IPlugin {
291
- const logger = new Logger('agent:messages');
292
- return {
293
- name: 'logging',
294
- version: '1.0.0',
295
- description: 'Logs all messages and responses',
296
- hooks: {
297
- onInit: async () => { logger.info('Agent initialized'); },
298
- onMessage: async (msg: Message) => { logger.info(`← ${msg.role}: ${msg.content.slice(0, 100)}`); return undefined as any; },
299
- onResponse: async (_msg: Message, resp: Message) => { logger.info(`→ ${resp.role}: ${resp.content.slice(0, 100)}`); return undefined as any; },
300
- onError: async (err: Error) => { logger.error(`Error: ${err.message}`); },
301
- onShutdown: async () => { logger.info('Agent shutting down'); },
302
- },
303
- };
304
- }
305
-
306
- export function createAnalyticsPlugin(): IPlugin {
307
- const stats = { messages: 0, errors: 0, startedAt: 0 };
308
- return {
309
- name: 'analytics',
310
- version: '1.0.0',
311
- description: 'Tracks message counts and error rates',
312
- hooks: {
313
- onInit: async () => { stats.startedAt = Date.now(); },
314
- onMessage: async () => { stats.messages++; return undefined as any; },
315
- onError: async () => { stats.errors++; },
316
- },
317
- };
318
- }
319
-
320
- export function createRateLimitPlugin(maxPerMinute = 60): IPlugin {
321
- const timestamps: number[] = [];
322
- return {
323
- name: 'rate-limit',
324
- version: '1.0.0',
325
- description: `Rate limits to ${maxPerMinute} messages/minute`,
326
- hooks: {
327
- onMessage: async () => {
328
- const now = Date.now();
329
- const windowStart = now - 60_000;
330
- while (timestamps.length > 0 && timestamps[0] < windowStart) timestamps.shift();
331
- if (timestamps.length >= maxPerMinute) {
332
- throw new Error('Rate limit exceeded. Please slow down.');
333
- }
334
- timestamps.push(now);
335
- return undefined as any;
336
- },
337
- },
338
- };
339
- }
@@ -1,18 +0,0 @@
1
- import type { Plugin } from './index';
2
-
3
- /**
4
- * Logger plugin — logs all messages and responses via middleware chain.
5
- */
6
- export const loggerPlugin: Plugin = {
7
- name: 'logger',
8
- version: '1.0.0',
9
- description: 'Log all messages and responses',
10
- onMessage: async (msg: any, next: (m: any) => Promise<any>) => {
11
- console.log(`[${new Date().toISOString()}] IN: ${msg.content?.slice(0, 100)}`);
12
- return next(msg);
13
- },
14
- onResponse: async (res: any, next: (r: any) => Promise<any>) => {
15
- console.log(`[${new Date().toISOString()}] OUT: ${res.content?.slice(0, 100)}`);
16
- return next(res);
17
- },
18
- };
@@ -1,38 +0,0 @@
1
- import type { Plugin } from './index';
2
-
3
- /**
4
- * Rate limiter plugin — limits messages per session using in-memory sliding window.
5
- */
6
- export function createRateLimiterPlugin(maxPerMinute = 60): Plugin {
7
- const sessionTimestamps: Map<string, number[]> = new Map();
8
-
9
- return {
10
- name: 'rate-limiter',
11
- version: '1.0.0',
12
- description: `Rate limit messages per session (${maxPerMinute}/min)`,
13
- onMessage: async (msg: any, next: (m: any) => Promise<any>) => {
14
- const sessionId = msg.metadata?.sessionId || msg.id || 'default';
15
- const now = Date.now();
16
- const windowStart = now - 60_000;
17
-
18
- if (!sessionTimestamps.has(sessionId)) {
19
- sessionTimestamps.set(sessionId, []);
20
- }
21
- const timestamps = sessionTimestamps.get(sessionId)!;
22
-
23
- // Remove expired timestamps
24
- while (timestamps.length > 0 && timestamps[0] < windowStart) {
25
- timestamps.shift();
26
- }
27
-
28
- if (timestamps.length >= maxPerMinute) {
29
- throw new Error(`Rate limit exceeded: ${maxPerMinute} messages per minute`);
30
- }
31
-
32
- timestamps.push(now);
33
- return next(msg);
34
- },
35
- };
36
- }
37
-
38
- export const rateLimiterPlugin: Plugin = createRateLimiterPlugin(60);