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
@@ -0,0 +1,46 @@
1
+ /**
2
+ * User Repository
3
+ * Manages user information including Feishu binding
4
+ */
5
+ import { BaseRepository } from './base.repository';
6
+ export interface User {
7
+ id: string;
8
+ name: string | null;
9
+ feishu_open_id: string | null;
10
+ feishu_union_id: string | null;
11
+ created_at: string;
12
+ updated_at: string;
13
+ }
14
+ export declare class UserRepository extends BaseRepository<User> {
15
+ constructor();
16
+ /**
17
+ * Get default user
18
+ */
19
+ getDefaultUser(): User | undefined;
20
+ /**
21
+ * Get user by Feishu open_id
22
+ */
23
+ findByFeishuOpenId(openId: string): User | undefined;
24
+ /**
25
+ * Bind Feishu open_id to user
26
+ */
27
+ bindFeishu(userId: string, openId: string, unionId?: string): void;
28
+ /**
29
+ * Unbind Feishu from user
30
+ */
31
+ unbindFeishu(userId: string): void;
32
+ /**
33
+ * Check if Feishu is bound
34
+ */
35
+ isFeishuBound(userId: string): boolean;
36
+ /**
37
+ * Get Feishu open_id
38
+ */
39
+ getFeishuOpenId(userId: string): string | null;
40
+ /**
41
+ * Update user name
42
+ */
43
+ updateName(userId: string, name: string): void;
44
+ }
45
+ export declare const userRepository: UserRepository;
46
+ //# sourceMappingURL=user.repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.repo.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/user.repo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;;IAKtD;;OAEG;IACH,cAAc,IAAI,IAAI,GAAG,SAAS;IAIlC;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIpD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IASlE;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASlC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKtC;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK9C;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAO/C;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * User Repository
4
+ * Manages user information including Feishu binding
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.userRepository = exports.UserRepository = void 0;
8
+ const base_repository_1 = require("./base.repository");
9
+ class UserRepository extends base_repository_1.BaseRepository {
10
+ constructor() {
11
+ super('users', 'id');
12
+ }
13
+ /**
14
+ * Get default user
15
+ */
16
+ getDefaultUser() {
17
+ return this.findById('default_user');
18
+ }
19
+ /**
20
+ * Get user by Feishu open_id
21
+ */
22
+ findByFeishuOpenId(openId) {
23
+ return this.findOneWhere({ feishu_open_id: openId });
24
+ }
25
+ /**
26
+ * Bind Feishu open_id to user
27
+ */
28
+ bindFeishu(userId, openId, unionId) {
29
+ const now = new Date().toISOString();
30
+ this.update(userId, {
31
+ feishu_open_id: openId,
32
+ feishu_union_id: unionId || null,
33
+ updated_at: now
34
+ });
35
+ }
36
+ /**
37
+ * Unbind Feishu from user
38
+ */
39
+ unbindFeishu(userId) {
40
+ const now = new Date().toISOString();
41
+ this.update(userId, {
42
+ feishu_open_id: null,
43
+ feishu_union_id: null,
44
+ updated_at: now
45
+ });
46
+ }
47
+ /**
48
+ * Check if Feishu is bound
49
+ */
50
+ isFeishuBound(userId) {
51
+ const user = this.findById(userId);
52
+ return !!user && !!user.feishu_open_id;
53
+ }
54
+ /**
55
+ * Get Feishu open_id
56
+ */
57
+ getFeishuOpenId(userId) {
58
+ const user = this.findById(userId);
59
+ return user?.feishu_open_id || null;
60
+ }
61
+ /**
62
+ * Update user name
63
+ */
64
+ updateName(userId, name) {
65
+ const now = new Date().toISOString();
66
+ this.update(userId, {
67
+ name,
68
+ updated_at: now
69
+ });
70
+ }
71
+ }
72
+ exports.UserRepository = UserRepository;
73
+ // Singleton instance
74
+ exports.userRepository = new UserRepository();
75
+ //# sourceMappingURL=user.repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.repo.js","sourceRoot":"","sources":["../../../src/db/repositories/user.repo.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uDAAmD;AAWnD,MAAa,cAAe,SAAQ,gCAAoB;IACtD;QACE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc;QAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc,EAAE,MAAc,EAAE,OAAgB;QACzD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,cAAc,EAAE,MAAM;YACtB,eAAe,EAAE,OAAO,IAAI,IAAI;YAChC,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAc;QACzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAc;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,EAAE,cAAc,IAAI,IAAI,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc,EAAE,IAAY;QACrC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,IAAI;YACJ,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AArED,wCAqEC;AAED,qBAAqB;AACR,QAAA,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
@@ -0,0 +1,364 @@
1
+ -- Team Manager Database Schema v1.0.0
2
+ -- Multi-Agent Collaboration Framework Database Schema
3
+ -- Supports three-layer structure: Domain - Job - SkillPack
4
+ -- Features: Task management, Message system, Data encryption, Preset data
5
+
6
+ -- ============================================
7
+ -- 1. Users Table
8
+ -- ============================================
9
+ CREATE TABLE IF NOT EXISTS users (
10
+ id TEXT PRIMARY KEY, -- User ID, e.g. 'default_user'
11
+ name TEXT, -- User display name
12
+ feishu_open_id TEXT, -- Feishu open_id (ou_xxx format)
13
+ feishu_union_id TEXT, -- Feishu union_id (optional)
14
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
15
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
16
+ );
17
+
18
+ -- Initial default user
19
+ INSERT OR IGNORE INTO users (id, name) VALUES ('default_user', 'Default User');
20
+
21
+ -- ============================================
22
+ -- 2. Company Info Table
23
+ -- ============================================
24
+ CREATE TABLE IF NOT EXISTS companies (
25
+ id TEXT PRIMARY KEY,
26
+ name TEXT NOT NULL,
27
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP
28
+ );
29
+
30
+ -- ============================================
31
+ -- 2. Department Table
32
+ -- ============================================
33
+ CREATE TABLE IF NOT EXISTS departments (
34
+ id TEXT PRIMARY KEY,
35
+ name TEXT NOT NULL,
36
+ company_id TEXT,
37
+ feishu_group_id TEXT,
38
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
39
+ FOREIGN KEY (company_id) REFERENCES companies(id)
40
+ );
41
+
42
+ -- ============================================
43
+ -- 3. Project Table
44
+ -- ============================================
45
+ CREATE TABLE IF NOT EXISTS projects (
46
+ id TEXT PRIMARY KEY,
47
+ name TEXT NOT NULL,
48
+ department_id TEXT,
49
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
50
+ FOREIGN KEY (department_id) REFERENCES departments(id)
51
+ );
52
+
53
+ -- ============================================
54
+ -- 4. Domain Table (Global Shared)
55
+ -- ============================================
56
+ CREATE TABLE IF NOT EXISTS domains (
57
+ id TEXT PRIMARY KEY,
58
+ name TEXT NOT NULL,
59
+ content TEXT, -- Domain description (encrypted)
60
+ is_preset BOOLEAN DEFAULT 1, -- Is preset data
61
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
62
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
63
+ );
64
+
65
+ -- ============================================
66
+ -- 5. Skill Pack Table (Global Shared)
67
+ -- ============================================
68
+ CREATE TABLE IF NOT EXISTS skill_packs (
69
+ id TEXT PRIMARY KEY,
70
+ name TEXT NOT NULL,
71
+ description TEXT,
72
+ content TEXT, -- JSON format, encrypted for preset data
73
+ is_preset BOOLEAN DEFAULT 1, -- Is preset data (preset cannot be modified/deleted)
74
+ version TEXT DEFAULT '1.0.0',
75
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
76
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
77
+ );
78
+
79
+ -- ============================================
80
+ -- 6. Job Table (Global Shared, only related to executor)
81
+ -- ============================================
82
+ CREATE TABLE IF NOT EXISTS jobs (
83
+ id TEXT PRIMARY KEY,
84
+ name TEXT NOT NULL,
85
+ domain_id TEXT, -- Domain ID
86
+ skill_pack_ids TEXT, -- JSON array, related to skill_packs table (encrypted)
87
+ is_preset BOOLEAN DEFAULT 1, -- Is preset data (preset cannot be modified/deleted)
88
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
89
+ FOREIGN KEY (domain_id) REFERENCES domains(id)
90
+ );
91
+
92
+ -- ============================================
93
+ -- 7. Agent Table
94
+ -- ============================================
95
+ CREATE TABLE IF NOT EXISTS agents (
96
+ id TEXT PRIMARY KEY,
97
+ name TEXT NOT NULL,
98
+ department_id TEXT, -- NULL for assistant
99
+ job_id TEXT, -- Only for executor, NULL for others
100
+ role TEXT NOT NULL CHECK(role IN ('assistant', 'manager', 'executor', 'reviewer', 'watchdog')),
101
+ role_flow_path TEXT, -- NULL for assistant, others have preset template path
102
+ feishu_bot_id TEXT,
103
+ workspace_path TEXT,
104
+ status TEXT DEFAULT 'active' CHECK(status IN ('active', 'inactive')),
105
+ last_active_at DATETIME,
106
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
107
+ FOREIGN KEY (department_id) REFERENCES departments(id),
108
+ FOREIGN KEY (job_id) REFERENCES jobs(id)
109
+ );
110
+
111
+ -- ============================================
112
+ -- 8. Task Table
113
+ -- ============================================
114
+ CREATE TABLE IF NOT EXISTS tasks (
115
+ id TEXT PRIMARY KEY,
116
+ title TEXT NOT NULL,
117
+ description TEXT,
118
+ status TEXT DEFAULT 'pending' CHECK(status IN ('pending', 'in_progress', 'stage_completed', 'pending_acceptance', 'rejected', 'completed', 'finalized')),
119
+ department_id TEXT,
120
+ manager_id TEXT, -- Manager ID, related to agents.id
121
+ user_id TEXT, -- Task initiator
122
+ base_task_id TEXT, -- For incremental task, related to status=finalized base task
123
+ is_increment BOOLEAN DEFAULT 0,
124
+ parent_task_id TEXT, -- For rework task, related to status=rejected parent task
125
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
126
+ finalized_at DATETIME,
127
+ -- Heartbeat fields (v1.1.1)
128
+ last_manager_heartbeat_at DATETIME, -- Manager's last heartbeat time (for watchdog)
129
+ FOREIGN KEY (department_id) REFERENCES departments(id),
130
+ FOREIGN KEY (manager_id) REFERENCES agents(id),
131
+ FOREIGN KEY (base_task_id) REFERENCES tasks(id),
132
+ FOREIGN KEY (parent_task_id) REFERENCES tasks(id)
133
+ );
134
+
135
+ -- ============================================
136
+ -- 9. Task Node Table
137
+ -- ============================================
138
+ CREATE TABLE IF NOT EXISTS task_nodes (
139
+ id TEXT PRIMARY KEY,
140
+ task_id TEXT NOT NULL,
141
+ node_name TEXT NOT NULL,
142
+ agent_id TEXT, -- Executor ID
143
+ reviewer_id TEXT, -- Reviewer ID (v1.1.8)
144
+ status TEXT DEFAULT 'pending' CHECK(status IN ('pending', 'in_progress', 'pending_review', 'completed', 'failed')),
145
+ sequence INTEGER, -- Execution order
146
+ timeout INTEGER DEFAULT 24, -- Timeout (hours)
147
+ rework_history TEXT, -- JSON array, stores each rework issue, time, reviewer
148
+ failure_history TEXT, -- JSON array, stores each failure reason, time
149
+ review_comment TEXT, -- Review comment
150
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
151
+ started_at DATETIME, -- Node start time
152
+ completed_at DATETIME, -- Node completion time
153
+ -- Heartbeat fields (v1.1.1)
154
+ last_heartbeat_at DATETIME, -- Executor's last heartbeat time (for watchdog)
155
+ last_review_heartbeat_at DATETIME,-- Reviewer's last heartbeat time (for watchdog)
156
+ FOREIGN KEY (task_id) REFERENCES tasks(id),
157
+ FOREIGN KEY (agent_id) REFERENCES agents(id),
158
+ FOREIGN KEY (reviewer_id) REFERENCES agents(id)
159
+ );
160
+
161
+ -- ============================================
162
+ -- 10. Document Table
163
+ -- ============================================
164
+ CREATE TABLE IF NOT EXISTS documents (
165
+ id TEXT PRIMARY KEY,
166
+ task_id TEXT,
167
+ node_id TEXT, -- Optional
168
+ type TEXT NOT NULL CHECK(type IN ('requirement', 'plan', 'output')),
169
+ status TEXT DEFAULT 'draft' CHECK(status IN ('draft', 'final')),
170
+ file_path TEXT NOT NULL, -- Document storage path
171
+ created_by TEXT, -- Creator Agent ID
172
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
173
+ FOREIGN KEY (task_id) REFERENCES tasks(id),
174
+ FOREIGN KEY (node_id) REFERENCES task_nodes(id),
175
+ FOREIGN KEY (created_by) REFERENCES agents(id)
176
+ );
177
+
178
+ -- ============================================
179
+ -- 11. Message Log Table
180
+ -- ============================================
181
+ CREATE TABLE IF NOT EXISTS message_logs (
182
+ id TEXT PRIMARY KEY,
183
+ task_id TEXT,
184
+ message_type TEXT NOT NULL CHECK(message_type IN ('task_assigned', 'node_assigned', 'review_requested', 'review_completed', 'task_completed')),
185
+ sender_id TEXT, -- Sender Agent ID
186
+ receiver_id TEXT, -- Receiver Agent ID
187
+ content TEXT, -- JSON format message body
188
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
189
+ FOREIGN KEY (task_id) REFERENCES tasks(id),
190
+ FOREIGN KEY (sender_id) REFERENCES agents(id),
191
+ FOREIGN KEY (receiver_id) REFERENCES agents(id)
192
+ );
193
+
194
+ -- ============================================
195
+ -- 12. Config Change Record Table
196
+ -- ============================================
197
+ CREATE TABLE IF NOT EXISTS config_changes (
198
+ id TEXT PRIMARY KEY,
199
+ session_id TEXT NOT NULL, -- Related to init session ID
200
+ change_type TEXT NOT NULL CHECK(change_type IN (
201
+ 'agent_create', 'agent_delete',
202
+ 'agent_allow_list_update', -- Agent allowAgents list update
203
+ 'binding_create', 'binding_delete',
204
+ 'channel_config',
205
+ 'skill_pack_create', 'skill_pack_delete',
206
+ 'job_create', 'job_delete',
207
+ 'directory_create',
208
+ 'department_create', 'department_delete', -- Department operations
209
+ 'config_update',
210
+ 'feishu_group_bind', 'feishu_group_unbind',
211
+ 'feishu_pairing_approve', -- From team-manager: pairing approval
212
+ 'other'
213
+ )),
214
+ target_type TEXT NOT NULL CHECK(target_type IN (
215
+ 'agents.list',
216
+ 'agents.list.allow_agents', -- Agent allowAgents list
217
+ 'bindings',
218
+ 'channels.feishu', 'channels.feishu.groups',
219
+ 'skill_packs', 'jobs', 'directories',
220
+ 'gateway', 'departments',
221
+ 'credentials', -- From team-manager: credentials support
222
+ 'other'
223
+ )),
224
+ target_path TEXT NOT NULL, -- JSONPath, e.g. 'agents.list[0]' or 'bindings[0]'
225
+ action TEXT NOT NULL CHECK(action IN ('add', 'remove', 'update')),
226
+ old_value TEXT, -- Old value (JSON format)
227
+ new_value TEXT, -- New value (JSON format)
228
+ related_id TEXT, -- Related entity ID (e.g. agent_id)
229
+ description TEXT, -- Change description
230
+ cleaned BOOLEAN DEFAULT 0, -- Is cleaned
231
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP
232
+ );
233
+
234
+ -- ============================================
235
+ -- 13. Init Session Table
236
+ -- ============================================
237
+ CREATE TABLE IF NOT EXISTS init_sessions (
238
+ id TEXT PRIMARY KEY,
239
+ openclaw_root TEXT NOT NULL, -- OpenClaw workspace path
240
+ assistant_name TEXT, -- Assistant name
241
+ status TEXT DEFAULT 'active' CHECK(status IN ('active', 'reset')),
242
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
243
+ reset_at DATETIME -- Reset time
244
+ );
245
+
246
+ -- ============================================
247
+ -- 14. Role Flow Table
248
+ -- ============================================
249
+ CREATE TABLE IF NOT EXISTS role_flows (
250
+ id TEXT PRIMARY KEY, -- manager_flow / executor_flow / reviewer_flow
251
+ name TEXT NOT NULL, -- Manager flow / Executor flow / Reviewer flow
252
+ content TEXT NOT NULL, -- Encrypted content
253
+ is_preset BOOLEAN DEFAULT 1, -- Is preset data
254
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
255
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
256
+ );
257
+
258
+ -- ============================================
259
+ -- 15. Template Table
260
+ -- ============================================
261
+ CREATE TABLE IF NOT EXISTS templates (
262
+ id TEXT PRIMARY KEY, -- requirement / plan / node_flow / review_flow
263
+ name TEXT NOT NULL, -- Requirement template / Plan template etc.
264
+ type TEXT NOT NULL, -- doc / flow / report
265
+ content TEXT NOT NULL, -- Encrypted (preset) or plain (user-defined)
266
+ is_preset BOOLEAN DEFAULT 1, -- Is preset data
267
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
268
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
269
+ );
270
+
271
+ -- ============================================
272
+ -- 16. Agent Template Table
273
+ -- ============================================
274
+ CREATE TABLE IF NOT EXISTS agent_templates (
275
+ id TEXT PRIMARY KEY, -- agents_md / soul_md / user_md
276
+ name TEXT NOT NULL, -- AGENTS.md / SOUL.md / USER.md
277
+ content TEXT NOT NULL, -- Encrypted content
278
+ is_preset BOOLEAN DEFAULT 1, -- Is preset data
279
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
280
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
281
+ );
282
+
283
+ -- ============================================
284
+ -- 17. Message Failures Table (v1.1.5)
285
+ -- ============================================
286
+ CREATE TABLE IF NOT EXISTS message_failures (
287
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
288
+ message_id TEXT, -- Message unique identifier
289
+ task_id TEXT, -- Related task ID
290
+ sender_id TEXT NOT NULL, -- Sender Agent ID
291
+ receiver_id TEXT NOT NULL, -- Receiver Agent ID
292
+ message_type TEXT NOT NULL, -- Message type (task_completed, node_assigned, etc.)
293
+ message_content TEXT NOT NULL, -- Full message content (JSON)
294
+ failure_reason TEXT, -- Failure reason
295
+ retry_count INTEGER DEFAULT 0, -- Retry count
296
+ status TEXT DEFAULT 'pending' CHECK(status IN ('pending', 'retrying', 'resolved', 'expired')),
297
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
298
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
299
+ );
300
+
301
+ -- Message failures indexes
302
+ CREATE INDEX IF NOT EXISTS idx_message_failures_status ON message_failures(status);
303
+ CREATE INDEX IF NOT EXISTS idx_message_failures_sender ON message_failures(sender_id);
304
+ CREATE INDEX IF NOT EXISTS idx_message_failures_receiver ON message_failures(receiver_id);
305
+ CREATE INDEX IF NOT EXISTS idx_message_failures_task ON message_failures(task_id);
306
+
307
+ -- ============================================
308
+ -- Indexes
309
+ -- ============================================
310
+ CREATE INDEX IF NOT EXISTS idx_departments_company ON departments(company_id);
311
+ CREATE INDEX IF NOT EXISTS idx_agents_department ON agents(department_id);
312
+ CREATE INDEX IF NOT EXISTS idx_agents_role ON agents(role);
313
+ CREATE INDEX IF NOT EXISTS idx_tasks_department ON tasks(department_id);
314
+ CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);
315
+ CREATE INDEX IF NOT EXISTS idx_tasks_manager ON tasks(manager_id);
316
+ CREATE INDEX IF NOT EXISTS idx_tasks_heartbeat ON tasks(last_manager_heartbeat_at); -- v1.1.1
317
+ CREATE INDEX IF NOT EXISTS idx_nodes_task ON task_nodes(task_id);
318
+ CREATE INDEX IF NOT EXISTS idx_nodes_status ON task_nodes(status);
319
+ CREATE INDEX IF NOT EXISTS idx_nodes_heartbeat ON task_nodes(last_heartbeat_at); -- v1.1.1
320
+ CREATE INDEX IF NOT EXISTS idx_nodes_review_heartbeat ON task_nodes(last_review_heartbeat_at); -- v1.1.1
321
+ CREATE INDEX IF NOT EXISTS idx_documents_task ON documents(task_id);
322
+ CREATE INDEX IF NOT EXISTS idx_documents_type ON documents(type);
323
+ CREATE INDEX IF NOT EXISTS idx_message_logs_task ON message_logs(task_id);
324
+ CREATE INDEX IF NOT EXISTS idx_config_changes_type ON config_changes(target_type);
325
+ CREATE INDEX IF NOT EXISTS idx_config_changes_related ON config_changes(related_id);
326
+ CREATE INDEX IF NOT EXISTS idx_domains_preset ON domains(is_preset);
327
+ CREATE INDEX IF NOT EXISTS idx_skill_packs_preset ON skill_packs(is_preset);
328
+ CREATE INDEX IF NOT EXISTS idx_jobs_preset ON jobs(is_preset);
329
+ CREATE INDEX IF NOT EXISTS idx_jobs_domain ON jobs(domain_id);
330
+ CREATE INDEX IF NOT EXISTS idx_role_flows_preset ON role_flows(is_preset);
331
+ CREATE INDEX IF NOT EXISTS idx_templates_preset ON templates(is_preset);
332
+ CREATE INDEX IF NOT EXISTS idx_templates_type ON templates(type);
333
+ CREATE INDEX IF NOT EXISTS idx_agent_templates_preset ON agent_templates(is_preset);
334
+ -- ============================================
335
+ -- v1.1.7: Task Stages Table (Multi-Department Collaboration)
336
+ -- ============================================
337
+ CREATE TABLE IF NOT EXISTS task_stages (
338
+ id TEXT PRIMARY KEY,
339
+ task_id TEXT NOT NULL,
340
+ stage_name TEXT NOT NULL,
341
+ department_id TEXT NOT NULL,
342
+ manager_id TEXT NOT NULL,
343
+ status TEXT DEFAULT 'pending' CHECK(status IN ('pending', 'in_progress', 'completed')),
344
+ sequence INTEGER,
345
+ output_summary TEXT,
346
+ handover_note TEXT,
347
+ started_at DATETIME,
348
+ completed_at DATETIME,
349
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
350
+ FOREIGN KEY (task_id) REFERENCES tasks(id),
351
+ FOREIGN KEY (department_id) REFERENCES departments(id),
352
+ FOREIGN KEY (manager_id) REFERENCES agents(id)
353
+ );
354
+
355
+ CREATE INDEX IF NOT EXISTS idx_task_stages_task ON task_stages(task_id);
356
+ CREATE INDEX IF NOT EXISTS idx_task_stages_department ON task_stages(department_id);
357
+ CREATE INDEX IF NOT EXISTS idx_task_stages_status ON task_stages(status);
358
+
359
+ -- ============================================
360
+ -- v1.1.7: Migration for existing databases
361
+ -- ============================================
362
+ -- Note: SQLite does not support ALTER CONSTRAINT
363
+ -- For existing databases, the new 'stage_completed' status will work
364
+ -- because CHECK constraints are not enforced on existing data in SQLite
package/package.json ADDED
@@ -0,0 +1,90 @@
1
+ {
2
+ "name": "opclawtm",
3
+ "version": "1.4.0",
4
+ "description": "Multi-Agent Collaboration Framework - CLI Management Tool (Full Version: Agent Management + Task Flow + Feishu Integration)",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "opclawtm": "./dist/bin/team-manager.js",
9
+ "openclaw-team-manager": "./dist/bin/team-manager.js",
10
+ "openclaw-team-setup": "./dist/bin/team-setup.js",
11
+ "openclaw-team-uninstall": "./dist/bin/team-uninstall.js"
12
+ },
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "postbuild": "node -e \"require('fs').cpSync('src/core/keys', 'dist/core/keys', {recursive:true}); require('fs').copyFileSync('src/db/schema.sql', 'dist/db/schema.sql')\"",
16
+ "start": "node dist/bin/team-manager.js",
17
+ "dev": "ts-node src/bin/team-manager.ts",
18
+ "uninstall": "node dist/bin/team-uninstall.js",
19
+ "prepublishOnly": "npm run build",
20
+ "test": "jest",
21
+ "test:watch": "jest --watch",
22
+ "obfuscate": "node scripts/obfuscate.js",
23
+ "bytecode": "node scripts/bytecode.js",
24
+ "pack:protected": "npm run build && npm run obfuscate && npm run bytecode"
25
+ },
26
+ "keywords": [
27
+ "agent",
28
+ "collaboration",
29
+ "openclaw",
30
+ "cli",
31
+ "multi-agent",
32
+ "feishu",
33
+ "lark",
34
+ "assistant",
35
+ "automation",
36
+ "team",
37
+ "task-management",
38
+ "workflow"
39
+ ],
40
+ "author": "",
41
+ "license": "UNLICENSED",
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/poderosom1/opclawtm.git"
45
+ },
46
+ "bugs": {
47
+ "url": "https://github.com/poderosom1/opclawtm/issues"
48
+ },
49
+ "homepage": "https://github.com/poderosom1/opclawtm#readme",
50
+ "files": [
51
+ "dist/**/*",
52
+ "resources/**/*",
53
+ "README.md",
54
+ "README_EN.md",
55
+ "LICENSE"
56
+ ],
57
+ "dependencies": {
58
+ "better-sqlite3": "^12.6.2",
59
+ "better-sqlite3-multiple-ciphers": "^12.6.2",
60
+ "chalk": "^4.1.2",
61
+ "commander": "^12.0.0",
62
+ "handlebars": "^4.7.8",
63
+ "inquirer": "^8.2.6",
64
+ "ora": "^5.4.1",
65
+ "uuid": "^9.0.1",
66
+ "ws": "^8.19.0",
67
+ "axios": "^1.6.0"
68
+ },
69
+ "devDependencies": {
70
+ "@types/better-sqlite3": "^7.6.12",
71
+ "@types/inquirer": "^9.0.7",
72
+ "@types/jest": "^29.5.12",
73
+ "@types/node": "^20.11.24",
74
+ "@types/uuid": "^9.0.8",
75
+ "bytenode": "^1.5.7",
76
+ "javascript-obfuscator": "^4.1.0",
77
+ "jest": "^29.7.0",
78
+ "ts-jest": "^29.1.2",
79
+ "ts-node": "^10.9.2",
80
+ "typescript": "^5.3.3"
81
+ },
82
+ "engines": {
83
+ "node": ">=20.0.0"
84
+ },
85
+ "os": [
86
+ "win32",
87
+ "darwin",
88
+ "linux"
89
+ ]
90
+ }
@@ -0,0 +1 @@
1
+ PBOqIkAZQDmYzDSt7Da8IJudv+2OQjHbGMi/tSbwF1As88l88himj8asna+0zatEf13SYxSUgUV1c6fESfiE1m3Wk7SVFcMiad9G105Rz10y8ywRjznXO9c+el9fAosBPAPTTy/UzOj0LaOnSjNBCA5r8766S5rM73JYuRO5dYg=