opclawtm 1.4.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 (350) hide show
  1. package/README.md +136 -0
  2. package/dist/bin/team-manager.d.ts +6 -0
  3. package/dist/bin/team-manager.d.ts.map +1 -0
  4. package/dist/bin/team-manager.js +36 -0
  5. package/dist/bin/team-manager.js.map +1 -0
  6. package/dist/bin/team-setup.d.ts +7 -0
  7. package/dist/bin/team-setup.d.ts.map +1 -0
  8. package/dist/bin/team-setup.js +66 -0
  9. package/dist/bin/team-setup.js.map +1 -0
  10. package/dist/bin/team-uninstall.d.ts +6 -0
  11. package/dist/bin/team-uninstall.d.ts.map +1 -0
  12. package/dist/bin/team-uninstall.js +91 -0
  13. package/dist/bin/team-uninstall.js.map +1 -0
  14. package/dist/cli/commands/agent.command.d.ts +43 -0
  15. package/dist/cli/commands/agent.command.d.ts.map +1 -0
  16. package/dist/cli/commands/agent.command.js +223 -0
  17. package/dist/cli/commands/agent.command.js.map +1 -0
  18. package/dist/cli/commands/checklist.command.d.ts +35 -0
  19. package/dist/cli/commands/checklist.command.d.ts.map +1 -0
  20. package/dist/cli/commands/checklist.command.js +77 -0
  21. package/dist/cli/commands/checklist.command.js.map +1 -0
  22. package/dist/cli/commands/dept.command.d.ts +32 -0
  23. package/dist/cli/commands/dept.command.d.ts.map +1 -0
  24. package/dist/cli/commands/dept.command.js +92 -0
  25. package/dist/cli/commands/dept.command.js.map +1 -0
  26. package/dist/cli/commands/document.command.d.ts +37 -0
  27. package/dist/cli/commands/document.command.d.ts.map +1 -0
  28. package/dist/cli/commands/document.command.js +146 -0
  29. package/dist/cli/commands/document.command.js.map +1 -0
  30. package/dist/cli/commands/domain.command.d.ts +36 -0
  31. package/dist/cli/commands/domain.command.d.ts.map +1 -0
  32. package/dist/cli/commands/domain.command.js +97 -0
  33. package/dist/cli/commands/domain.command.js.map +1 -0
  34. package/dist/cli/commands/feishu.command.d.ts +63 -0
  35. package/dist/cli/commands/feishu.command.d.ts.map +1 -0
  36. package/dist/cli/commands/feishu.command.js +433 -0
  37. package/dist/cli/commands/feishu.command.js.map +1 -0
  38. package/dist/cli/commands/job.command.d.ts +39 -0
  39. package/dist/cli/commands/job.command.d.ts.map +1 -0
  40. package/dist/cli/commands/job.command.js +168 -0
  41. package/dist/cli/commands/job.command.js.map +1 -0
  42. package/dist/cli/commands/license.command.d.ts +22 -0
  43. package/dist/cli/commands/license.command.d.ts.map +1 -0
  44. package/dist/cli/commands/license.command.js +68 -0
  45. package/dist/cli/commands/license.command.js.map +1 -0
  46. package/dist/cli/commands/message-failure.command.d.ts +44 -0
  47. package/dist/cli/commands/message-failure.command.d.ts.map +1 -0
  48. package/dist/cli/commands/message-failure.command.js +137 -0
  49. package/dist/cli/commands/message-failure.command.js.map +1 -0
  50. package/dist/cli/commands/message.command.d.ts +47 -0
  51. package/dist/cli/commands/message.command.d.ts.map +1 -0
  52. package/dist/cli/commands/message.command.js +129 -0
  53. package/dist/cli/commands/message.command.js.map +1 -0
  54. package/dist/cli/commands/node.command.d.ts +76 -0
  55. package/dist/cli/commands/node.command.d.ts.map +1 -0
  56. package/dist/cli/commands/node.command.js +251 -0
  57. package/dist/cli/commands/node.command.js.map +1 -0
  58. package/dist/cli/commands/role-flow.command.d.ts +12 -0
  59. package/dist/cli/commands/role-flow.command.d.ts.map +1 -0
  60. package/dist/cli/commands/role-flow.command.js +54 -0
  61. package/dist/cli/commands/role-flow.command.js.map +1 -0
  62. package/dist/cli/commands/skill-pack.command.d.ts +41 -0
  63. package/dist/cli/commands/skill-pack.command.d.ts.map +1 -0
  64. package/dist/cli/commands/skill-pack.command.js +137 -0
  65. package/dist/cli/commands/skill-pack.command.js.map +1 -0
  66. package/dist/cli/commands/status.command.d.ts +8 -0
  67. package/dist/cli/commands/status.command.d.ts.map +1 -0
  68. package/dist/cli/commands/status.command.js +61 -0
  69. package/dist/cli/commands/status.command.js.map +1 -0
  70. package/dist/cli/commands/task.command.d.ts +105 -0
  71. package/dist/cli/commands/task.command.d.ts.map +1 -0
  72. package/dist/cli/commands/task.command.js +402 -0
  73. package/dist/cli/commands/task.command.js.map +1 -0
  74. package/dist/cli/commands/user.command.d.ts +43 -0
  75. package/dist/cli/commands/user.command.d.ts.map +1 -0
  76. package/dist/cli/commands/user.command.js +134 -0
  77. package/dist/cli/commands/user.command.js.map +1 -0
  78. package/dist/cli/index.d.ts +7 -0
  79. package/dist/cli/index.d.ts.map +1 -0
  80. package/dist/cli/index.js +863 -0
  81. package/dist/cli/index.js.map +1 -0
  82. package/dist/cli/tui/index.d.ts +45 -0
  83. package/dist/cli/tui/index.d.ts.map +1 -0
  84. package/dist/cli/tui/index.js +470 -0
  85. package/dist/cli/tui/index.js.map +1 -0
  86. package/dist/cli/tui/menus/agent-manage.menu.d.ts +8 -0
  87. package/dist/cli/tui/menus/agent-manage.menu.d.ts.map +1 -0
  88. package/dist/cli/tui/menus/agent-manage.menu.js +614 -0
  89. package/dist/cli/tui/menus/agent-manage.menu.js.map +1 -0
  90. package/dist/cli/tui/menus/dept-manage.menu.d.ts +8 -0
  91. package/dist/cli/tui/menus/dept-manage.menu.d.ts.map +1 -0
  92. package/dist/cli/tui/menus/dept-manage.menu.js +299 -0
  93. package/dist/cli/tui/menus/dept-manage.menu.js.map +1 -0
  94. package/dist/cli/tui/menus/domain-manage.menu.d.ts +8 -0
  95. package/dist/cli/tui/menus/domain-manage.menu.d.ts.map +1 -0
  96. package/dist/cli/tui/menus/domain-manage.menu.js +208 -0
  97. package/dist/cli/tui/menus/domain-manage.menu.js.map +1 -0
  98. package/dist/cli/tui/menus/feishu.menu.d.ts +8 -0
  99. package/dist/cli/tui/menus/feishu.menu.d.ts.map +1 -0
  100. package/dist/cli/tui/menus/feishu.menu.js +1727 -0
  101. package/dist/cli/tui/menus/feishu.menu.js.map +1 -0
  102. package/dist/cli/tui/menus/job-manage.menu.d.ts +16 -0
  103. package/dist/cli/tui/menus/job-manage.menu.d.ts.map +1 -0
  104. package/dist/cli/tui/menus/job-manage.menu.js +734 -0
  105. package/dist/cli/tui/menus/job-manage.menu.js.map +1 -0
  106. package/dist/cli/tui/menus/license.menu.d.ts +12 -0
  107. package/dist/cli/tui/menus/license.menu.d.ts.map +1 -0
  108. package/dist/cli/tui/menus/license.menu.js +164 -0
  109. package/dist/cli/tui/menus/license.menu.js.map +1 -0
  110. package/dist/cli/tui/menus/main.menu.d.ts +10 -0
  111. package/dist/cli/tui/menus/main.menu.d.ts.map +1 -0
  112. package/dist/cli/tui/menus/main.menu.js +94 -0
  113. package/dist/cli/tui/menus/main.menu.js.map +1 -0
  114. package/dist/cli/tui/menus/reset.menu.d.ts +10 -0
  115. package/dist/cli/tui/menus/reset.menu.d.ts.map +1 -0
  116. package/dist/cli/tui/menus/reset.menu.js +767 -0
  117. package/dist/cli/tui/menus/reset.menu.js.map +1 -0
  118. package/dist/cli/tui/menus/status.menu.d.ts +8 -0
  119. package/dist/cli/tui/menus/status.menu.d.ts.map +1 -0
  120. package/dist/cli/tui/menus/status.menu.js +123 -0
  121. package/dist/cli/tui/menus/status.menu.js.map +1 -0
  122. package/dist/cli/tui/menus/task-manage.menu.d.ts +11 -0
  123. package/dist/cli/tui/menus/task-manage.menu.d.ts.map +1 -0
  124. package/dist/cli/tui/menus/task-manage.menu.js +129 -0
  125. package/dist/cli/tui/menus/task-manage.menu.js.map +1 -0
  126. package/dist/cli/tui/menus/team-create.menu.d.ts +8 -0
  127. package/dist/cli/tui/menus/team-create.menu.d.ts.map +1 -0
  128. package/dist/cli/tui/menus/team-create.menu.js +353 -0
  129. package/dist/cli/tui/menus/team-create.menu.js.map +1 -0
  130. package/dist/config.d.ts +9 -0
  131. package/dist/config.d.ts.map +1 -0
  132. package/dist/config.js +74 -0
  133. package/dist/config.js.map +1 -0
  134. package/dist/core/auth/index.d.ts +6 -0
  135. package/dist/core/auth/index.d.ts.map +1 -0
  136. package/dist/core/auth/index.js +22 -0
  137. package/dist/core/auth/index.js.map +1 -0
  138. package/dist/core/auth/middleware.d.ts +73 -0
  139. package/dist/core/auth/middleware.d.ts.map +1 -0
  140. package/dist/core/auth/middleware.js +456 -0
  141. package/dist/core/auth/middleware.js.map +1 -0
  142. package/dist/core/auth/storage.d.ts +38 -0
  143. package/dist/core/auth/storage.d.ts.map +1 -0
  144. package/dist/core/auth/storage.js +280 -0
  145. package/dist/core/auth/storage.js.map +1 -0
  146. package/dist/core/keys/public.pem +9 -0
  147. package/dist/core/models/types.d.ts +426 -0
  148. package/dist/core/models/types.d.ts.map +1 -0
  149. package/dist/core/models/types.js +9 -0
  150. package/dist/core/models/types.js.map +1 -0
  151. package/dist/core/services/agent-template.service.d.ts +49 -0
  152. package/dist/core/services/agent-template.service.d.ts.map +1 -0
  153. package/dist/core/services/agent-template.service.js +88 -0
  154. package/dist/core/services/agent-template.service.js.map +1 -0
  155. package/dist/core/services/agent.service.d.ts +120 -0
  156. package/dist/core/services/agent.service.d.ts.map +1 -0
  157. package/dist/core/services/agent.service.js +381 -0
  158. package/dist/core/services/agent.service.js.map +1 -0
  159. package/dist/core/services/auth-profiles.service.d.ts +93 -0
  160. package/dist/core/services/auth-profiles.service.d.ts.map +1 -0
  161. package/dist/core/services/auth-profiles.service.js +220 -0
  162. package/dist/core/services/auth-profiles.service.js.map +1 -0
  163. package/dist/core/services/checklist.service.d.ts +58 -0
  164. package/dist/core/services/checklist.service.d.ts.map +1 -0
  165. package/dist/core/services/checklist.service.js +240 -0
  166. package/dist/core/services/checklist.service.js.map +1 -0
  167. package/dist/core/services/config-tracker.service.d.ts +119 -0
  168. package/dist/core/services/config-tracker.service.d.ts.map +1 -0
  169. package/dist/core/services/config-tracker.service.js +1093 -0
  170. package/dist/core/services/config-tracker.service.js.map +1 -0
  171. package/dist/core/services/crypto.service.d.ts +102 -0
  172. package/dist/core/services/crypto.service.d.ts.map +1 -0
  173. package/dist/core/services/crypto.service.js +377 -0
  174. package/dist/core/services/crypto.service.js.map +1 -0
  175. package/dist/core/services/dept.service.d.ts +92 -0
  176. package/dist/core/services/dept.service.d.ts.map +1 -0
  177. package/dist/core/services/dept.service.js +260 -0
  178. package/dist/core/services/dept.service.js.map +1 -0
  179. package/dist/core/services/document.service.d.ts +131 -0
  180. package/dist/core/services/document.service.d.ts.map +1 -0
  181. package/dist/core/services/document.service.js +368 -0
  182. package/dist/core/services/document.service.js.map +1 -0
  183. package/dist/core/services/domain.service.d.ts +50 -0
  184. package/dist/core/services/domain.service.d.ts.map +1 -0
  185. package/dist/core/services/domain.service.js +98 -0
  186. package/dist/core/services/domain.service.js.map +1 -0
  187. package/dist/core/services/feishu.service.d.ts +124 -0
  188. package/dist/core/services/feishu.service.d.ts.map +1 -0
  189. package/dist/core/services/feishu.service.js +165 -0
  190. package/dist/core/services/feishu.service.js.map +1 -0
  191. package/dist/core/services/index.d.ts +27 -0
  192. package/dist/core/services/index.d.ts.map +1 -0
  193. package/dist/core/services/index.js +89 -0
  194. package/dist/core/services/index.js.map +1 -0
  195. package/dist/core/services/job.service.d.ts +60 -0
  196. package/dist/core/services/job.service.d.ts.map +1 -0
  197. package/dist/core/services/job.service.js +190 -0
  198. package/dist/core/services/job.service.js.map +1 -0
  199. package/dist/core/services/log.service.d.ts +111 -0
  200. package/dist/core/services/log.service.d.ts.map +1 -0
  201. package/dist/core/services/log.service.js +237 -0
  202. package/dist/core/services/log.service.js.map +1 -0
  203. package/dist/core/services/message-failure.service.d.ts +65 -0
  204. package/dist/core/services/message-failure.service.d.ts.map +1 -0
  205. package/dist/core/services/message-failure.service.js +112 -0
  206. package/dist/core/services/message-failure.service.js.map +1 -0
  207. package/dist/core/services/message.service.d.ts +122 -0
  208. package/dist/core/services/message.service.d.ts.map +1 -0
  209. package/dist/core/services/message.service.js +374 -0
  210. package/dist/core/services/message.service.js.map +1 -0
  211. package/dist/core/services/node.service.d.ts +150 -0
  212. package/dist/core/services/node.service.d.ts.map +1 -0
  213. package/dist/core/services/node.service.js +257 -0
  214. package/dist/core/services/node.service.js.map +1 -0
  215. package/dist/core/services/openclaw-config.service.d.ts +187 -0
  216. package/dist/core/services/openclaw-config.service.d.ts.map +1 -0
  217. package/dist/core/services/openclaw-config.service.js +268 -0
  218. package/dist/core/services/openclaw-config.service.js.map +1 -0
  219. package/dist/core/services/preset-loader.service.d.ts +80 -0
  220. package/dist/core/services/preset-loader.service.d.ts.map +1 -0
  221. package/dist/core/services/preset-loader.service.js +379 -0
  222. package/dist/core/services/preset-loader.service.js.map +1 -0
  223. package/dist/core/services/role-flow.service.d.ts +21 -0
  224. package/dist/core/services/role-flow.service.d.ts.map +1 -0
  225. package/dist/core/services/role-flow.service.js +47 -0
  226. package/dist/core/services/role-flow.service.js.map +1 -0
  227. package/dist/core/services/setup.service.d.ts +46 -0
  228. package/dist/core/services/setup.service.d.ts.map +1 -0
  229. package/dist/core/services/setup.service.js +336 -0
  230. package/dist/core/services/setup.service.js.map +1 -0
  231. package/dist/core/services/skill-pack.service.d.ts +56 -0
  232. package/dist/core/services/skill-pack.service.d.ts.map +1 -0
  233. package/dist/core/services/skill-pack.service.js +113 -0
  234. package/dist/core/services/skill-pack.service.js.map +1 -0
  235. package/dist/core/services/task.service.d.ts +177 -0
  236. package/dist/core/services/task.service.d.ts.map +1 -0
  237. package/dist/core/services/task.service.js +397 -0
  238. package/dist/core/services/task.service.js.map +1 -0
  239. package/dist/core/services/template.service.d.ts +51 -0
  240. package/dist/core/services/template.service.d.ts.map +1 -0
  241. package/dist/core/services/template.service.js +88 -0
  242. package/dist/core/services/template.service.js.map +1 -0
  243. package/dist/core/services/user.service.d.ts +50 -0
  244. package/dist/core/services/user.service.d.ts.map +1 -0
  245. package/dist/core/services/user.service.js +111 -0
  246. package/dist/core/services/user.service.js.map +1 -0
  247. package/dist/core/utils/agent-guide-generator.d.ts +38 -0
  248. package/dist/core/utils/agent-guide-generator.d.ts.map +1 -0
  249. package/dist/core/utils/agent-guide-generator.js +187 -0
  250. package/dist/core/utils/agent-guide-generator.js.map +1 -0
  251. package/dist/core/utils/credentials-cleanup.d.ts +81 -0
  252. package/dist/core/utils/credentials-cleanup.d.ts.map +1 -0
  253. package/dist/core/utils/credentials-cleanup.js +256 -0
  254. package/dist/core/utils/credentials-cleanup.js.map +1 -0
  255. package/dist/core/utils/index.d.ts +215 -0
  256. package/dist/core/utils/index.d.ts.map +1 -0
  257. package/dist/core/utils/index.js +462 -0
  258. package/dist/core/utils/index.js.map +1 -0
  259. package/dist/core/utils/openclaw-helper.d.ts +250 -0
  260. package/dist/core/utils/openclaw-helper.d.ts.map +1 -0
  261. package/dist/core/utils/openclaw-helper.js +1629 -0
  262. package/dist/core/utils/openclaw-helper.js.map +1 -0
  263. package/dist/core/utils/template-generator.d.ts +67 -0
  264. package/dist/core/utils/template-generator.d.ts.map +1 -0
  265. package/dist/core/utils/template-generator.js +170 -0
  266. package/dist/core/utils/template-generator.js.map +1 -0
  267. package/dist/db/index.d.ts +54 -0
  268. package/dist/db/index.d.ts.map +1 -0
  269. package/dist/db/index.js +403 -0
  270. package/dist/db/index.js.map +1 -0
  271. package/dist/db/repositories/agent-template.repo.d.ts +47 -0
  272. package/dist/db/repositories/agent-template.repo.d.ts.map +1 -0
  273. package/dist/db/repositories/agent-template.repo.js +108 -0
  274. package/dist/db/repositories/agent-template.repo.js.map +1 -0
  275. package/dist/db/repositories/agent.repo.d.ts +64 -0
  276. package/dist/db/repositories/agent.repo.d.ts.map +1 -0
  277. package/dist/db/repositories/agent.repo.js +103 -0
  278. package/dist/db/repositories/agent.repo.js.map +1 -0
  279. package/dist/db/repositories/base.repository.d.ts +51 -0
  280. package/dist/db/repositories/base.repository.d.ts.map +1 -0
  281. package/dist/db/repositories/base.repository.js +107 -0
  282. package/dist/db/repositories/base.repository.js.map +1 -0
  283. package/dist/db/repositories/company.repo.d.ts +18 -0
  284. package/dist/db/repositories/company.repo.d.ts.map +1 -0
  285. package/dist/db/repositories/company.repo.js +33 -0
  286. package/dist/db/repositories/company.repo.js.map +1 -0
  287. package/dist/db/repositories/config-change.repo.d.ts +65 -0
  288. package/dist/db/repositories/config-change.repo.d.ts.map +1 -0
  289. package/dist/db/repositories/config-change.repo.js +119 -0
  290. package/dist/db/repositories/config-change.repo.js.map +1 -0
  291. package/dist/db/repositories/dept.repo.d.ts +37 -0
  292. package/dist/db/repositories/dept.repo.d.ts.map +1 -0
  293. package/dist/db/repositories/dept.repo.js +66 -0
  294. package/dist/db/repositories/dept.repo.js.map +1 -0
  295. package/dist/db/repositories/document.repo.d.ts +25 -0
  296. package/dist/db/repositories/document.repo.d.ts.map +1 -0
  297. package/dist/db/repositories/document.repo.js +51 -0
  298. package/dist/db/repositories/document.repo.js.map +1 -0
  299. package/dist/db/repositories/domain.repo.d.ts +42 -0
  300. package/dist/db/repositories/domain.repo.d.ts.map +1 -0
  301. package/dist/db/repositories/domain.repo.js +79 -0
  302. package/dist/db/repositories/domain.repo.js.map +1 -0
  303. package/dist/db/repositories/index.d.ts +24 -0
  304. package/dist/db/repositories/index.d.ts.map +1 -0
  305. package/dist/db/repositories/index.js +81 -0
  306. package/dist/db/repositories/index.js.map +1 -0
  307. package/dist/db/repositories/init-session.repo.d.ts +38 -0
  308. package/dist/db/repositories/init-session.repo.d.ts.map +1 -0
  309. package/dist/db/repositories/init-session.repo.js +112 -0
  310. package/dist/db/repositories/init-session.repo.js.map +1 -0
  311. package/dist/db/repositories/job.repo.d.ts +54 -0
  312. package/dist/db/repositories/job.repo.d.ts.map +1 -0
  313. package/dist/db/repositories/job.repo.js +119 -0
  314. package/dist/db/repositories/job.repo.js.map +1 -0
  315. package/dist/db/repositories/message-failure.repo.d.ts +92 -0
  316. package/dist/db/repositories/message-failure.repo.d.ts.map +1 -0
  317. package/dist/db/repositories/message-failure.repo.js +141 -0
  318. package/dist/db/repositories/message-failure.repo.js.map +1 -0
  319. package/dist/db/repositories/message-log.repo.d.ts +36 -0
  320. package/dist/db/repositories/message-log.repo.d.ts.map +1 -0
  321. package/dist/db/repositories/message-log.repo.js +64 -0
  322. package/dist/db/repositories/message-log.repo.js.map +1 -0
  323. package/dist/db/repositories/node.repo.d.ts +107 -0
  324. package/dist/db/repositories/node.repo.d.ts.map +1 -0
  325. package/dist/db/repositories/node.repo.js +276 -0
  326. package/dist/db/repositories/node.repo.js.map +1 -0
  327. package/dist/db/repositories/role-flow.repo.d.ts +43 -0
  328. package/dist/db/repositories/role-flow.repo.d.ts.map +1 -0
  329. package/dist/db/repositories/role-flow.repo.js +83 -0
  330. package/dist/db/repositories/role-flow.repo.js.map +1 -0
  331. package/dist/db/repositories/skill-pack.repo.d.ts +45 -0
  332. package/dist/db/repositories/skill-pack.repo.d.ts.map +1 -0
  333. package/dist/db/repositories/skill-pack.repo.js +149 -0
  334. package/dist/db/repositories/skill-pack.repo.js.map +1 -0
  335. package/dist/db/repositories/task.repo.d.ts +168 -0
  336. package/dist/db/repositories/task.repo.d.ts.map +1 -0
  337. package/dist/db/repositories/task.repo.js +381 -0
  338. package/dist/db/repositories/task.repo.js.map +1 -0
  339. package/dist/db/repositories/template.repo.d.ts +40 -0
  340. package/dist/db/repositories/template.repo.d.ts.map +1 -0
  341. package/dist/db/repositories/template.repo.js +66 -0
  342. package/dist/db/repositories/template.repo.js.map +1 -0
  343. package/dist/db/repositories/user.repo.d.ts +46 -0
  344. package/dist/db/repositories/user.repo.d.ts.map +1 -0
  345. package/dist/db/repositories/user.repo.js +75 -0
  346. package/dist/db/repositories/user.repo.js.map +1 -0
  347. package/dist/db/schema.sql +364 -0
  348. package/package.json +90 -0
  349. package/resources/preset-data-hash.enc +1 -0
  350. package/resources/preset-data.enc +1 -0
package/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # OpenClaw Team Manager (opclawtm)
2
+
3
+ > 多 Agent 协作框架 - 带授权保护的专业版
4
+
5
+ ## 简介
6
+
7
+ **opclawtm** 是一个多 Agent 协作框架,支持团队任务流程管理,包含完整的授权验证系统。
8
+
9
+ ## 特性
10
+
11
+ - 🤖 **多 Agent 协作**:总助理、管理者、执行者、审核者四种角色
12
+ - 📋 **任务流程管理**:任务创建、节点分配、状态流转
13
+ - 🔐 **授权验证系统**:商业化授权保护,设备绑定,动态密钥
14
+ - 📱 **飞书集成**:消息通知、群组绑定
15
+ - 🛡️ **数据安全**:SQLCipher 数据库加密,AES-256-GCM 数据加密
16
+
17
+ ## 安装
18
+
19
+ ```bash
20
+ npm install -g opclawtm
21
+ ```
22
+
23
+ ## 使用
24
+
25
+ ### 启动 TUI 界面
26
+
27
+ ```bash
28
+ openclaw-team-manager
29
+ ```
30
+
31
+ ### CLI 命令
32
+
33
+ ```bash
34
+ # 查看帮助
35
+ openclaw-team-manager --help
36
+
37
+ # 授权管理
38
+ openclaw-team-manager license activate TM-XXXX-XXXX-XXXX-XXXX # 激活授权
39
+ openclaw-team-manager license status # 查看授权状态
40
+ openclaw-team-manager license revoke # 注销授权
41
+ openclaw-team-manager license device # 显示设备信息
42
+
43
+ # 团队管理
44
+ openclaw-team-manager create-dept --name "团队名称" # 创建团队
45
+ openclaw-team-manager list-depts # 列出团队
46
+ openclaw-team-manager create-agent --name "姓名" --role executor --dept <dept_id> # 创建 Agent
47
+
48
+ # 任务管理
49
+ openclaw-team-manager create-task --title "任务标题" # 创建任务
50
+ openclaw-team-manager list-tasks # 列出任务
51
+ openclaw-team-manager start-task --id <task_id> # 启动任务
52
+ ```
53
+
54
+ ## 授权说明
55
+
56
+ ### 获取授权
57
+
58
+ 1. 访问线上平台:http://47.93.44.153
59
+ 2. 注册账号并购买授权
60
+ 3. 获取授权Key(格式:TM-XXXX-XXXX-XXXX-XXXX)
61
+
62
+ ### 授权限制
63
+
64
+ - 每个授权Key最多绑定 **2 台设备**
65
+ - 会话密钥有效期 **1 小时**
66
+ - 需要在线验证(不支持离线使用)
67
+
68
+ ## 技术栈
69
+
70
+ | 组件 | 技术 |
71
+ |------|------|
72
+ | CLI | TypeScript + Commander + Inquirer |
73
+ | TUI | TypeScript + Inquirer |
74
+ | 数据库 | SQLite + SQLCipher |
75
+ | 加密 | AES-256-GCM |
76
+
77
+ ## 项目结构
78
+
79
+ ```
80
+ opclawtm/
81
+ ├── src/
82
+ │ ├── bin/ # CLI 入口
83
+ │ ├── cli/
84
+ │ │ ├── commands/ # CLI 命令
85
+ │ │ └── tui/ # TUI 界面
86
+ │ ├── core/
87
+ │ │ ├── services/ # 业务服务
88
+ │ │ └── utils/ # 工具函数
89
+ │ └── db/
90
+ │ ├── repositories/ # 数据访问层
91
+ │ └── schema.sql # 数据库结构
92
+ ├── resources/
93
+ │ ├── preset-data.enc # 加密预设数据
94
+ │ └── preset-data-hash.enc
95
+ └── package.json
96
+ ```
97
+
98
+ ## 开发
99
+
100
+ ### 本地开发
101
+
102
+ ```bash
103
+ # 安装依赖
104
+ npm install
105
+
106
+ # 开发模式
107
+ npm run dev
108
+
109
+ # 构建
110
+ npm run build
111
+ ```
112
+
113
+ ### 构建(带代码保护)
114
+
115
+ ```bash
116
+ # 构建并混淆
117
+ npm run pack:protected
118
+ ```
119
+
120
+ ## 相关项目
121
+
122
+ | 项目 | 说明 |
123
+ |------|------|
124
+ | opclawtm | 核心产品(本项目) |
125
+ | team-manager-license | 授权验证模块 |
126
+ | team-manager-platform | 线上授权平台 |
127
+
128
+ ## 许可证
129
+
130
+ 私有软件,保留所有权利。未经授权不得使用、复制或分发。
131
+
132
+ ## 链接
133
+
134
+ - **GitHub**: https://github.com/poderosom1/opclawtm
135
+ - **线上平台**: http://47.93.44.153
136
+ - **npm**: https://www.npmjs.com/package/opclawtm
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * team-manager CLI Entry Point
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=team-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-manager.d.ts","sourceRoot":"","sources":["../../src/bin/team-manager.ts"],"names":[],"mappings":";AACA;;GAEG"}
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * team-manager CLI Entry Point
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const cli_1 = require("../cli");
8
+ const auth_1 = require("../core/auth");
9
+ // 免授权命令(不需要验证的命令)
10
+ const FREE_COMMANDS = [
11
+ 'bind-license',
12
+ 'unbind-license',
13
+ 'license-status',
14
+ 'tui', // TUI 有自己的验证逻辑
15
+ '--help',
16
+ '--version',
17
+ '-h',
18
+ '-v',
19
+ ];
20
+ // 命令执行前授权验证
21
+ cli_1.program.hook('preAction', async (thisCommand, actionCommand) => {
22
+ const commandName = actionCommand.name();
23
+ // 跳过免授权命令
24
+ if (FREE_COMMANDS.includes(commandName)) {
25
+ return;
26
+ }
27
+ // 检查授权
28
+ const result = await (0, auth_1.checkLicense)();
29
+ if (!result.success) {
30
+ (0, auth_1.showLicenseError)(result.error);
31
+ process.exit(1);
32
+ }
33
+ });
34
+ // Parse commands
35
+ cli_1.program.parse(process.argv);
36
+ //# sourceMappingURL=team-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-manager.js","sourceRoot":"","sources":["../../src/bin/team-manager.ts"],"names":[],"mappings":";;AACA;;GAEG;;AAEH,gCAAiC;AACjC,uCAA8D;AAE9D,kBAAkB;AAClB,MAAM,aAAa,GAAG;IACpB,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,KAAK,EAAG,eAAe;IACvB,QAAQ;IACR,WAAW;IACX,IAAI;IACJ,IAAI;CACL,CAAC;AAEF,YAAY;AACZ,aAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;IAC7D,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IAEzC,UAAU;IACV,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,OAAO;IACP,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAY,GAAE,CAAC;IAEpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,IAAA,uBAAgB,EAAC,MAAM,CAAC,KAAM,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,iBAAiB;AACjB,aAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * team-setup CLI Entry Point
4
+ * For system initialization
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=team-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-setup.d.ts","sourceRoot":"","sources":["../../src/bin/team-setup.ts"],"names":[],"mappings":";AACA;;;GAGG"}
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * team-setup CLI Entry Point
5
+ * For system initialization
6
+ */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const services_1 = require("../core/services");
13
+ const db_1 = require("../db");
14
+ async function main() {
15
+ console.log(chalk_1.default.cyan('\n Team Setup - System Initialization\n'));
16
+ // Check arguments
17
+ const forceReinit = process.argv.includes('--force') || process.argv.includes('-f');
18
+ const fullReset = process.argv.includes('--full-reset');
19
+ // Check if already initialized
20
+ if ((0, db_1.isDatabaseInitialized)()) {
21
+ console.log(chalk_1.default.yellow('System already initialized'));
22
+ if (fullReset) {
23
+ // Full reset (delete all data)
24
+ console.log(chalk_1.default.red('⚠️ Using --full-reset, all data (including Agents, tasks) will be deleted...'));
25
+ console.log(chalk_1.default.red(' This operation cannot be undone!'));
26
+ (0, db_1.fullResetDatabase)();
27
+ }
28
+ else if (forceReinit) {
29
+ // Reset system config only (preserve Agents and tasks)
30
+ console.log(chalk_1.default.yellow('Using --force, system config will be reset (Agents and tasks preserved)...'));
31
+ (0, db_1.resetDatabase)();
32
+ }
33
+ else {
34
+ console.log(chalk_1.default.dim('Options:'));
35
+ console.log(chalk_1.default.dim(' --force Reset system config (preserve Agents and tasks)'));
36
+ console.log(chalk_1.default.dim(' --full-reset Delete all data and reinitialize (dangerous)'));
37
+ console.log('Initialization cancelled');
38
+ return;
39
+ }
40
+ }
41
+ // Get assistant name (from argument or use default)
42
+ const nameArg = process.argv.find(arg => arg.startsWith('--name='));
43
+ const assistantName = nameArg ? nameArg.split('=')[1] : 'Assistant';
44
+ // Execute initialization
45
+ console.log(chalk_1.default.gray('\nInitializing system...'));
46
+ const result = await services_1.setupService.init(assistantName);
47
+ if (result.success) {
48
+ console.log(chalk_1.default.green('\n✓ System initialized successfully!\n'));
49
+ console.log(` Assistant ID: ${result.assistant_id}`);
50
+ console.log(` Assistant Name: ${assistantName}`);
51
+ console.log('\nNext steps:');
52
+ console.log(' 1. Create team: team-manager create-dept --name "Team Name"');
53
+ console.log(' 2. Create Agent: team-manager create-agent --name "Name" --role manager --dept DeptID');
54
+ console.log(' 3. View status: team-manager status\n');
55
+ }
56
+ else {
57
+ console.log(chalk_1.default.red('\n✗ Initialization failed'));
58
+ console.log(chalk_1.default.red(` Error: ${result.message}\n`));
59
+ process.exit(1);
60
+ }
61
+ }
62
+ main().catch(error => {
63
+ console.error(chalk_1.default.red('Error during initialization:'), error);
64
+ process.exit(1);
65
+ });
66
+ //# sourceMappingURL=team-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-setup.js","sourceRoot":"","sources":["../../src/bin/team-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Team Manager Uninstall Script
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=team-uninstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-uninstall.d.ts","sourceRoot":"","sources":["../../src/bin/team-uninstall.ts"],"names":[],"mappings":";AACA;;GAEG"}
@@ -0,0 +1,91 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Team Manager Uninstall Script
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const os = __importStar(require("os"));
43
+ const child_process = __importStar(require("child_process"));
44
+ const RESET = '\x1b[0m';
45
+ const RED = '\x1b[31m';
46
+ const GREEN = '\x1b[32m';
47
+ const YELLOW = '\x1b[33m';
48
+ const CYAN = '\x1b[36m';
49
+ function log(message, color = '') {
50
+ console.log(color ? `${color}${message}${RESET}` : message);
51
+ }
52
+ async function uninstall() {
53
+ log('\n🗑️ Team Manager Uninstall Tool\n', CYAN);
54
+ // 1. Remove workspace history
55
+ const historyDir = path.join(os.homedir(), '.team-manager');
56
+ if (fs.existsSync(historyDir)) {
57
+ log('Removing workspace history...', YELLOW);
58
+ try {
59
+ fs.rmSync(historyDir, { recursive: true, force: true });
60
+ log(' ✓ Removed ~/.team-manager', GREEN);
61
+ }
62
+ catch (error) {
63
+ log(` ✗ Failed to remove: ${error}`, RED);
64
+ }
65
+ }
66
+ else {
67
+ log(' ~/.team-manager does not exist, skipping', YELLOW);
68
+ }
69
+ // 2. Uninstall global npm package
70
+ log('\nUninstalling global npm package...', YELLOW);
71
+ try {
72
+ child_process.execSync('npm uninstall -g team-manager', { stdio: 'inherit' });
73
+ log(' ✓ Global package uninstalled', GREEN);
74
+ }
75
+ catch (error) {
76
+ log(' ⚠ Global package may not be installed or uninstall failed', YELLOW);
77
+ }
78
+ // 3. Summary
79
+ log('\n✅ Uninstall complete!\n', GREEN);
80
+ log('Removed:');
81
+ log(' - ~/.team-manager/ (workspace history)');
82
+ log(' - team-manager (global npm package)');
83
+ log('\nNote:');
84
+ log(' - Database and Agent workspaces are preserved in your OpenClaw directory');
85
+ log(' - To delete database, manually remove: <openclaw-root>/team/\n');
86
+ }
87
+ uninstall().catch(error => {
88
+ log(`\n✗ Uninstall failed: ${error}`, RED);
89
+ process.exit(1);
90
+ });
91
+ //# sourceMappingURL=team-uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-uninstall.js","sourceRoot":"","sources":["../../src/bin/team-uninstall.ts"],"names":[],"mappings":";;AACA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,6DAA+C;AAE/C,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,IAAI,GAAG,UAAU,CAAC;AAExB,SAAS,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAE;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAC;IAElD,8BAA8B;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,yBAAyB,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,kCAAkC;IAClC,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9E,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,6DAA6D,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,aAAa;IACb,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IACxC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChB,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAChD,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAC7C,GAAG,CAAC,SAAS,CAAC,CAAC;IACf,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAClF,GAAG,CAAC,kEAAkE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACxB,GAAG,CAAC,yBAAyB,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Agent Commands
3
+ */
4
+ interface CreateAgentOptions {
5
+ name: string;
6
+ role: string;
7
+ id?: string;
8
+ dept?: string;
9
+ job?: string;
10
+ }
11
+ interface GetAgentOptions {
12
+ id?: string;
13
+ departmentId?: string;
14
+ role?: string;
15
+ }
16
+ /**
17
+ * Create agent
18
+ */
19
+ export declare function createAgentCommand(options: CreateAgentOptions): Promise<void>;
20
+ /**
21
+ * Query agent
22
+ */
23
+ export declare function getAgentCommand(options: GetAgentOptions): Promise<void>;
24
+ /**
25
+ * List agents
26
+ */
27
+ export declare function listAgentsCommand(options: {
28
+ departmentId?: string;
29
+ }): Promise<void>;
30
+ /**
31
+ * Delete agent
32
+ */
33
+ export declare function deleteAgentCommand(options: {
34
+ id: string;
35
+ }): Promise<void>;
36
+ /**
37
+ * Regenerate agent files
38
+ */
39
+ export declare function regenerateAgentFilesCommand(options: {
40
+ id?: string;
41
+ }): Promise<void>;
42
+ export {};
43
+ //# sourceMappingURL=agent.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent.command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCnF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC7E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBzF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAa/E;AA4BD;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCzF"}
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Commands
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.createAgentCommand = createAgentCommand;
43
+ exports.getAgentCommand = getAgentCommand;
44
+ exports.listAgentsCommand = listAgentsCommand;
45
+ exports.deleteAgentCommand = deleteAgentCommand;
46
+ exports.regenerateAgentFilesCommand = regenerateAgentFilesCommand;
47
+ const chalk_1 = __importDefault(require("chalk"));
48
+ const services_1 = require("../../core/services");
49
+ const db_1 = require("../../db");
50
+ /**
51
+ * Create agent
52
+ */
53
+ async function createAgentCommand(options) {
54
+ if (!(0, db_1.isDatabaseInitialized)()) {
55
+ console.log(chalk_1.default.red('错误:系统未初始化,请先执行 team-setup init'));
56
+ return;
57
+ }
58
+ // Validate role type
59
+ const validRoles = ['assistant', 'manager', 'executor', 'reviewer'];
60
+ if (!validRoles.includes(options.role)) {
61
+ console.log(chalk_1.default.red(`错误:无效的角色类型 "${options.role}",必须是: ${validRoles.join(', ')}`));
62
+ return;
63
+ }
64
+ const result = services_1.agentService.create({
65
+ id: options.id,
66
+ name: options.name,
67
+ role: options.role,
68
+ department_id: options.dept,
69
+ job_id: options.job
70
+ });
71
+ if (result.success) {
72
+ console.log(chalk_1.default.green('✓ Agent创建成功'));
73
+ console.log(` ID: ${result.agent?.id}`);
74
+ console.log(` 名称: ${result.agent?.name}`);
75
+ console.log(` 角色: ${result.agent?.role}`);
76
+ if (result.agent?.department_id) {
77
+ console.log(` 所属团队: ${result.agent.department_id}`);
78
+ }
79
+ }
80
+ else {
81
+ console.log(chalk_1.default.red('错误:' + result.message));
82
+ }
83
+ }
84
+ /**
85
+ * Query agent
86
+ */
87
+ async function getAgentCommand(options) {
88
+ if (!(0, db_1.isDatabaseInitialized)()) {
89
+ console.log(chalk_1.default.red('错误:系统未初始化,请先执行 team-setup init'));
90
+ return;
91
+ }
92
+ if (options.id) {
93
+ // Query by ID
94
+ const agent = services_1.agentService.getById(options.id);
95
+ if (!agent) {
96
+ console.log(chalk_1.default.red('错误:Agent不存在'));
97
+ return;
98
+ }
99
+ printAgentDetail(agent);
100
+ }
101
+ else if (options.departmentId && options.role) {
102
+ // Query by team and role
103
+ const result = services_1.agentService.getByDepartmentAndRole(options.departmentId, options.role);
104
+ if (!result) {
105
+ console.log(chalk_1.default.yellow('未找到匹配的Agent'));
106
+ return;
107
+ }
108
+ if (Array.isArray(result)) {
109
+ console.log(chalk_1.default.bold(`\n找到 ${result.length} 个Agent:\n`));
110
+ for (const agent of result) {
111
+ printAgentBrief(agent);
112
+ }
113
+ }
114
+ else {
115
+ printAgentDetail(result);
116
+ }
117
+ }
118
+ else {
119
+ console.log(chalk_1.default.red('错误:请指定 --id 或同时指定 --department-id 和 --role'));
120
+ }
121
+ }
122
+ /**
123
+ * List agents
124
+ */
125
+ async function listAgentsCommand(options) {
126
+ if (!(0, db_1.isDatabaseInitialized)()) {
127
+ console.log(chalk_1.default.red('错误:系统未初始化,请先执行 team-setup init'));
128
+ return;
129
+ }
130
+ const agents = options.departmentId
131
+ ? services_1.agentService.listByDepartment(options.departmentId)
132
+ : services_1.agentService.listAll();
133
+ if (agents.length === 0) {
134
+ console.log(chalk_1.default.yellow('暂无Agent'));
135
+ return;
136
+ }
137
+ console.log(chalk_1.default.bold(`\nAgent列表(共 ${agents.length} 个):\n`));
138
+ console.log(' ID\t\t\t名称\t\t\t角色\t\t团队');
139
+ console.log(' ─────────────────────────────────────────────────────');
140
+ for (const agent of agents) {
141
+ const dept = agent.department_id || '-';
142
+ console.log(` ${agent.id}\t${agent.name}\t\t${agent.role}\t\t${dept}`);
143
+ }
144
+ console.log('');
145
+ }
146
+ /**
147
+ * Delete agent
148
+ */
149
+ async function deleteAgentCommand(options) {
150
+ if (!(0, db_1.isDatabaseInitialized)()) {
151
+ console.log(chalk_1.default.red('错误:系统未初始化,请先执行 team-setup init'));
152
+ return;
153
+ }
154
+ const result = services_1.agentService.delete(options.id);
155
+ if (result.success) {
156
+ console.log(chalk_1.default.green('✓ ' + result.message));
157
+ }
158
+ else {
159
+ console.log(chalk_1.default.red('错误:' + result.message));
160
+ }
161
+ }
162
+ /**
163
+ * Print agent details
164
+ */
165
+ function printAgentDetail(agent) {
166
+ if (!agent)
167
+ return;
168
+ console.log(chalk_1.default.bold('\nAgent详情:\n'));
169
+ console.log(` ID: ${agent.id}`);
170
+ console.log(` 名称: ${agent.name}`);
171
+ console.log(` 角色: ${agent.role}`);
172
+ console.log(` 状态: ${agent.status}`);
173
+ console.log(` 所属团队: ${agent.department_id || '无'}`);
174
+ console.log(` 职业: ${agent.job_id || '无'}`);
175
+ console.log(` 工作空间: ${agent.workspace_path || '未设置'}`);
176
+ console.log(` 飞书Bot: ${agent.feishu_bot_id || '未绑定'}`);
177
+ console.log('');
178
+ }
179
+ /**
180
+ * Print agent brief info
181
+ */
182
+ function printAgentBrief(agent) {
183
+ if (!agent)
184
+ return;
185
+ console.log(` ${agent.id} - ${agent.name} (${agent.role})`);
186
+ }
187
+ /**
188
+ * Regenerate agent files
189
+ */
190
+ async function regenerateAgentFilesCommand(options) {
191
+ if (!(0, db_1.isDatabaseInitialized)()) {
192
+ console.log(chalk_1.default.red('错误:系统未初始化,请先执行 team-setup init'));
193
+ return;
194
+ }
195
+ const { regenerateAgentFiles, regenerateAgentFilesById } = await Promise.resolve().then(() => __importStar(require('../../core/utils/openclaw-helper')));
196
+ if (options.id) {
197
+ // Regenerate single agent
198
+ console.log(chalk_1.default.blue(`\n正在重新生成 Agent ${options.id} 的文件...\n`));
199
+ const result = regenerateAgentFilesById(options.id);
200
+ if (result.success) {
201
+ console.log(chalk_1.default.green('✓ ' + result.message));
202
+ }
203
+ else {
204
+ console.log(chalk_1.default.red('错误:' + result.message));
205
+ }
206
+ }
207
+ else {
208
+ // Regenerate all agents
209
+ console.log(chalk_1.default.blue('\n正在重新生成所有 Agent 的文件...\n'));
210
+ const result = regenerateAgentFiles();
211
+ console.log(chalk_1.default.bold(`\n结果:${result.message}\n`));
212
+ if (result.regeneratedCount > 0) {
213
+ console.log(chalk_1.default.green(`✓ 成功重新生成 ${result.regeneratedCount} 个 Agent`));
214
+ }
215
+ if (result.errors.length > 0) {
216
+ console.log(chalk_1.default.red('\n失败的 Agent:'));
217
+ for (const error of result.errors) {
218
+ console.log(chalk_1.default.red(` ✗ ${error}`));
219
+ }
220
+ }
221
+ }
222
+ }
223
+ //# sourceMappingURL=agent.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.command.js","sourceRoot":"","sources":["../../../src/cli/commands/agent.command.ts"],"names":[],"mappings":"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"}