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.
- package/README.md +136 -0
- package/dist/bin/team-manager.d.ts +6 -0
- package/dist/bin/team-manager.d.ts.map +1 -0
- package/dist/bin/team-manager.js +36 -0
- package/dist/bin/team-manager.js.map +1 -0
- package/dist/bin/team-setup.d.ts +7 -0
- package/dist/bin/team-setup.d.ts.map +1 -0
- package/dist/bin/team-setup.js +66 -0
- package/dist/bin/team-setup.js.map +1 -0
- package/dist/bin/team-uninstall.d.ts +6 -0
- package/dist/bin/team-uninstall.d.ts.map +1 -0
- package/dist/bin/team-uninstall.js +91 -0
- package/dist/bin/team-uninstall.js.map +1 -0
- package/dist/cli/commands/agent.command.d.ts +43 -0
- package/dist/cli/commands/agent.command.d.ts.map +1 -0
- package/dist/cli/commands/agent.command.js +223 -0
- package/dist/cli/commands/agent.command.js.map +1 -0
- package/dist/cli/commands/checklist.command.d.ts +35 -0
- package/dist/cli/commands/checklist.command.d.ts.map +1 -0
- package/dist/cli/commands/checklist.command.js +77 -0
- package/dist/cli/commands/checklist.command.js.map +1 -0
- package/dist/cli/commands/dept.command.d.ts +32 -0
- package/dist/cli/commands/dept.command.d.ts.map +1 -0
- package/dist/cli/commands/dept.command.js +92 -0
- package/dist/cli/commands/dept.command.js.map +1 -0
- package/dist/cli/commands/document.command.d.ts +37 -0
- package/dist/cli/commands/document.command.d.ts.map +1 -0
- package/dist/cli/commands/document.command.js +146 -0
- package/dist/cli/commands/document.command.js.map +1 -0
- package/dist/cli/commands/domain.command.d.ts +36 -0
- package/dist/cli/commands/domain.command.d.ts.map +1 -0
- package/dist/cli/commands/domain.command.js +97 -0
- package/dist/cli/commands/domain.command.js.map +1 -0
- package/dist/cli/commands/feishu.command.d.ts +63 -0
- package/dist/cli/commands/feishu.command.d.ts.map +1 -0
- package/dist/cli/commands/feishu.command.js +433 -0
- package/dist/cli/commands/feishu.command.js.map +1 -0
- package/dist/cli/commands/job.command.d.ts +39 -0
- package/dist/cli/commands/job.command.d.ts.map +1 -0
- package/dist/cli/commands/job.command.js +168 -0
- package/dist/cli/commands/job.command.js.map +1 -0
- package/dist/cli/commands/license.command.d.ts +22 -0
- package/dist/cli/commands/license.command.d.ts.map +1 -0
- package/dist/cli/commands/license.command.js +68 -0
- package/dist/cli/commands/license.command.js.map +1 -0
- package/dist/cli/commands/message-failure.command.d.ts +44 -0
- package/dist/cli/commands/message-failure.command.d.ts.map +1 -0
- package/dist/cli/commands/message-failure.command.js +137 -0
- package/dist/cli/commands/message-failure.command.js.map +1 -0
- package/dist/cli/commands/message.command.d.ts +47 -0
- package/dist/cli/commands/message.command.d.ts.map +1 -0
- package/dist/cli/commands/message.command.js +129 -0
- package/dist/cli/commands/message.command.js.map +1 -0
- package/dist/cli/commands/node.command.d.ts +76 -0
- package/dist/cli/commands/node.command.d.ts.map +1 -0
- package/dist/cli/commands/node.command.js +251 -0
- package/dist/cli/commands/node.command.js.map +1 -0
- package/dist/cli/commands/role-flow.command.d.ts +12 -0
- package/dist/cli/commands/role-flow.command.d.ts.map +1 -0
- package/dist/cli/commands/role-flow.command.js +54 -0
- package/dist/cli/commands/role-flow.command.js.map +1 -0
- package/dist/cli/commands/skill-pack.command.d.ts +41 -0
- package/dist/cli/commands/skill-pack.command.d.ts.map +1 -0
- package/dist/cli/commands/skill-pack.command.js +137 -0
- package/dist/cli/commands/skill-pack.command.js.map +1 -0
- package/dist/cli/commands/status.command.d.ts +8 -0
- package/dist/cli/commands/status.command.d.ts.map +1 -0
- package/dist/cli/commands/status.command.js +61 -0
- package/dist/cli/commands/status.command.js.map +1 -0
- package/dist/cli/commands/task.command.d.ts +105 -0
- package/dist/cli/commands/task.command.d.ts.map +1 -0
- package/dist/cli/commands/task.command.js +402 -0
- package/dist/cli/commands/task.command.js.map +1 -0
- package/dist/cli/commands/user.command.d.ts +43 -0
- package/dist/cli/commands/user.command.d.ts.map +1 -0
- package/dist/cli/commands/user.command.js +134 -0
- package/dist/cli/commands/user.command.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +863 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/tui/index.d.ts +45 -0
- package/dist/cli/tui/index.d.ts.map +1 -0
- package/dist/cli/tui/index.js +470 -0
- package/dist/cli/tui/index.js.map +1 -0
- package/dist/cli/tui/menus/agent-manage.menu.d.ts +8 -0
- package/dist/cli/tui/menus/agent-manage.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/agent-manage.menu.js +614 -0
- package/dist/cli/tui/menus/agent-manage.menu.js.map +1 -0
- package/dist/cli/tui/menus/dept-manage.menu.d.ts +8 -0
- package/dist/cli/tui/menus/dept-manage.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/dept-manage.menu.js +299 -0
- package/dist/cli/tui/menus/dept-manage.menu.js.map +1 -0
- package/dist/cli/tui/menus/domain-manage.menu.d.ts +8 -0
- package/dist/cli/tui/menus/domain-manage.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/domain-manage.menu.js +208 -0
- package/dist/cli/tui/menus/domain-manage.menu.js.map +1 -0
- package/dist/cli/tui/menus/feishu.menu.d.ts +8 -0
- package/dist/cli/tui/menus/feishu.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/feishu.menu.js +1727 -0
- package/dist/cli/tui/menus/feishu.menu.js.map +1 -0
- package/dist/cli/tui/menus/job-manage.menu.d.ts +16 -0
- package/dist/cli/tui/menus/job-manage.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/job-manage.menu.js +734 -0
- package/dist/cli/tui/menus/job-manage.menu.js.map +1 -0
- package/dist/cli/tui/menus/license.menu.d.ts +12 -0
- package/dist/cli/tui/menus/license.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/license.menu.js +164 -0
- package/dist/cli/tui/menus/license.menu.js.map +1 -0
- package/dist/cli/tui/menus/main.menu.d.ts +10 -0
- package/dist/cli/tui/menus/main.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/main.menu.js +94 -0
- package/dist/cli/tui/menus/main.menu.js.map +1 -0
- package/dist/cli/tui/menus/reset.menu.d.ts +10 -0
- package/dist/cli/tui/menus/reset.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/reset.menu.js +767 -0
- package/dist/cli/tui/menus/reset.menu.js.map +1 -0
- package/dist/cli/tui/menus/status.menu.d.ts +8 -0
- package/dist/cli/tui/menus/status.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/status.menu.js +123 -0
- package/dist/cli/tui/menus/status.menu.js.map +1 -0
- package/dist/cli/tui/menus/task-manage.menu.d.ts +11 -0
- package/dist/cli/tui/menus/task-manage.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/task-manage.menu.js +129 -0
- package/dist/cli/tui/menus/task-manage.menu.js.map +1 -0
- package/dist/cli/tui/menus/team-create.menu.d.ts +8 -0
- package/dist/cli/tui/menus/team-create.menu.d.ts.map +1 -0
- package/dist/cli/tui/menus/team-create.menu.js +353 -0
- package/dist/cli/tui/menus/team-create.menu.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +74 -0
- package/dist/config.js.map +1 -0
- package/dist/core/auth/index.d.ts +6 -0
- package/dist/core/auth/index.d.ts.map +1 -0
- package/dist/core/auth/index.js +22 -0
- package/dist/core/auth/index.js.map +1 -0
- package/dist/core/auth/middleware.d.ts +73 -0
- package/dist/core/auth/middleware.d.ts.map +1 -0
- package/dist/core/auth/middleware.js +456 -0
- package/dist/core/auth/middleware.js.map +1 -0
- package/dist/core/auth/storage.d.ts +38 -0
- package/dist/core/auth/storage.d.ts.map +1 -0
- package/dist/core/auth/storage.js +280 -0
- package/dist/core/auth/storage.js.map +1 -0
- package/dist/core/keys/public.pem +9 -0
- package/dist/core/models/types.d.ts +426 -0
- package/dist/core/models/types.d.ts.map +1 -0
- package/dist/core/models/types.js +9 -0
- package/dist/core/models/types.js.map +1 -0
- package/dist/core/services/agent-template.service.d.ts +49 -0
- package/dist/core/services/agent-template.service.d.ts.map +1 -0
- package/dist/core/services/agent-template.service.js +88 -0
- package/dist/core/services/agent-template.service.js.map +1 -0
- package/dist/core/services/agent.service.d.ts +120 -0
- package/dist/core/services/agent.service.d.ts.map +1 -0
- package/dist/core/services/agent.service.js +381 -0
- package/dist/core/services/agent.service.js.map +1 -0
- package/dist/core/services/auth-profiles.service.d.ts +93 -0
- package/dist/core/services/auth-profiles.service.d.ts.map +1 -0
- package/dist/core/services/auth-profiles.service.js +220 -0
- package/dist/core/services/auth-profiles.service.js.map +1 -0
- package/dist/core/services/checklist.service.d.ts +58 -0
- package/dist/core/services/checklist.service.d.ts.map +1 -0
- package/dist/core/services/checklist.service.js +240 -0
- package/dist/core/services/checklist.service.js.map +1 -0
- package/dist/core/services/config-tracker.service.d.ts +119 -0
- package/dist/core/services/config-tracker.service.d.ts.map +1 -0
- package/dist/core/services/config-tracker.service.js +1093 -0
- package/dist/core/services/config-tracker.service.js.map +1 -0
- package/dist/core/services/crypto.service.d.ts +102 -0
- package/dist/core/services/crypto.service.d.ts.map +1 -0
- package/dist/core/services/crypto.service.js +377 -0
- package/dist/core/services/crypto.service.js.map +1 -0
- package/dist/core/services/dept.service.d.ts +92 -0
- package/dist/core/services/dept.service.d.ts.map +1 -0
- package/dist/core/services/dept.service.js +260 -0
- package/dist/core/services/dept.service.js.map +1 -0
- package/dist/core/services/document.service.d.ts +131 -0
- package/dist/core/services/document.service.d.ts.map +1 -0
- package/dist/core/services/document.service.js +368 -0
- package/dist/core/services/document.service.js.map +1 -0
- package/dist/core/services/domain.service.d.ts +50 -0
- package/dist/core/services/domain.service.d.ts.map +1 -0
- package/dist/core/services/domain.service.js +98 -0
- package/dist/core/services/domain.service.js.map +1 -0
- package/dist/core/services/feishu.service.d.ts +124 -0
- package/dist/core/services/feishu.service.d.ts.map +1 -0
- package/dist/core/services/feishu.service.js +165 -0
- package/dist/core/services/feishu.service.js.map +1 -0
- package/dist/core/services/index.d.ts +27 -0
- package/dist/core/services/index.d.ts.map +1 -0
- package/dist/core/services/index.js +89 -0
- package/dist/core/services/index.js.map +1 -0
- package/dist/core/services/job.service.d.ts +60 -0
- package/dist/core/services/job.service.d.ts.map +1 -0
- package/dist/core/services/job.service.js +190 -0
- package/dist/core/services/job.service.js.map +1 -0
- package/dist/core/services/log.service.d.ts +111 -0
- package/dist/core/services/log.service.d.ts.map +1 -0
- package/dist/core/services/log.service.js +237 -0
- package/dist/core/services/log.service.js.map +1 -0
- package/dist/core/services/message-failure.service.d.ts +65 -0
- package/dist/core/services/message-failure.service.d.ts.map +1 -0
- package/dist/core/services/message-failure.service.js +112 -0
- package/dist/core/services/message-failure.service.js.map +1 -0
- package/dist/core/services/message.service.d.ts +122 -0
- package/dist/core/services/message.service.d.ts.map +1 -0
- package/dist/core/services/message.service.js +374 -0
- package/dist/core/services/message.service.js.map +1 -0
- package/dist/core/services/node.service.d.ts +150 -0
- package/dist/core/services/node.service.d.ts.map +1 -0
- package/dist/core/services/node.service.js +257 -0
- package/dist/core/services/node.service.js.map +1 -0
- package/dist/core/services/openclaw-config.service.d.ts +187 -0
- package/dist/core/services/openclaw-config.service.d.ts.map +1 -0
- package/dist/core/services/openclaw-config.service.js +268 -0
- package/dist/core/services/openclaw-config.service.js.map +1 -0
- package/dist/core/services/preset-loader.service.d.ts +80 -0
- package/dist/core/services/preset-loader.service.d.ts.map +1 -0
- package/dist/core/services/preset-loader.service.js +379 -0
- package/dist/core/services/preset-loader.service.js.map +1 -0
- package/dist/core/services/role-flow.service.d.ts +21 -0
- package/dist/core/services/role-flow.service.d.ts.map +1 -0
- package/dist/core/services/role-flow.service.js +47 -0
- package/dist/core/services/role-flow.service.js.map +1 -0
- package/dist/core/services/setup.service.d.ts +46 -0
- package/dist/core/services/setup.service.d.ts.map +1 -0
- package/dist/core/services/setup.service.js +336 -0
- package/dist/core/services/setup.service.js.map +1 -0
- package/dist/core/services/skill-pack.service.d.ts +56 -0
- package/dist/core/services/skill-pack.service.d.ts.map +1 -0
- package/dist/core/services/skill-pack.service.js +113 -0
- package/dist/core/services/skill-pack.service.js.map +1 -0
- package/dist/core/services/task.service.d.ts +177 -0
- package/dist/core/services/task.service.d.ts.map +1 -0
- package/dist/core/services/task.service.js +397 -0
- package/dist/core/services/task.service.js.map +1 -0
- package/dist/core/services/template.service.d.ts +51 -0
- package/dist/core/services/template.service.d.ts.map +1 -0
- package/dist/core/services/template.service.js +88 -0
- package/dist/core/services/template.service.js.map +1 -0
- package/dist/core/services/user.service.d.ts +50 -0
- package/dist/core/services/user.service.d.ts.map +1 -0
- package/dist/core/services/user.service.js +111 -0
- package/dist/core/services/user.service.js.map +1 -0
- package/dist/core/utils/agent-guide-generator.d.ts +38 -0
- package/dist/core/utils/agent-guide-generator.d.ts.map +1 -0
- package/dist/core/utils/agent-guide-generator.js +187 -0
- package/dist/core/utils/agent-guide-generator.js.map +1 -0
- package/dist/core/utils/credentials-cleanup.d.ts +81 -0
- package/dist/core/utils/credentials-cleanup.d.ts.map +1 -0
- package/dist/core/utils/credentials-cleanup.js +256 -0
- package/dist/core/utils/credentials-cleanup.js.map +1 -0
- package/dist/core/utils/index.d.ts +215 -0
- package/dist/core/utils/index.d.ts.map +1 -0
- package/dist/core/utils/index.js +462 -0
- package/dist/core/utils/index.js.map +1 -0
- package/dist/core/utils/openclaw-helper.d.ts +250 -0
- package/dist/core/utils/openclaw-helper.d.ts.map +1 -0
- package/dist/core/utils/openclaw-helper.js +1629 -0
- package/dist/core/utils/openclaw-helper.js.map +1 -0
- package/dist/core/utils/template-generator.d.ts +67 -0
- package/dist/core/utils/template-generator.d.ts.map +1 -0
- package/dist/core/utils/template-generator.js +170 -0
- package/dist/core/utils/template-generator.js.map +1 -0
- package/dist/db/index.d.ts +54 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +403 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/repositories/agent-template.repo.d.ts +47 -0
- package/dist/db/repositories/agent-template.repo.d.ts.map +1 -0
- package/dist/db/repositories/agent-template.repo.js +108 -0
- package/dist/db/repositories/agent-template.repo.js.map +1 -0
- package/dist/db/repositories/agent.repo.d.ts +64 -0
- package/dist/db/repositories/agent.repo.d.ts.map +1 -0
- package/dist/db/repositories/agent.repo.js +103 -0
- package/dist/db/repositories/agent.repo.js.map +1 -0
- package/dist/db/repositories/base.repository.d.ts +51 -0
- package/dist/db/repositories/base.repository.d.ts.map +1 -0
- package/dist/db/repositories/base.repository.js +107 -0
- package/dist/db/repositories/base.repository.js.map +1 -0
- package/dist/db/repositories/company.repo.d.ts +18 -0
- package/dist/db/repositories/company.repo.d.ts.map +1 -0
- package/dist/db/repositories/company.repo.js +33 -0
- package/dist/db/repositories/company.repo.js.map +1 -0
- package/dist/db/repositories/config-change.repo.d.ts +65 -0
- package/dist/db/repositories/config-change.repo.d.ts.map +1 -0
- package/dist/db/repositories/config-change.repo.js +119 -0
- package/dist/db/repositories/config-change.repo.js.map +1 -0
- package/dist/db/repositories/dept.repo.d.ts +37 -0
- package/dist/db/repositories/dept.repo.d.ts.map +1 -0
- package/dist/db/repositories/dept.repo.js +66 -0
- package/dist/db/repositories/dept.repo.js.map +1 -0
- package/dist/db/repositories/document.repo.d.ts +25 -0
- package/dist/db/repositories/document.repo.d.ts.map +1 -0
- package/dist/db/repositories/document.repo.js +51 -0
- package/dist/db/repositories/document.repo.js.map +1 -0
- package/dist/db/repositories/domain.repo.d.ts +42 -0
- package/dist/db/repositories/domain.repo.d.ts.map +1 -0
- package/dist/db/repositories/domain.repo.js +79 -0
- package/dist/db/repositories/domain.repo.js.map +1 -0
- package/dist/db/repositories/index.d.ts +24 -0
- package/dist/db/repositories/index.d.ts.map +1 -0
- package/dist/db/repositories/index.js +81 -0
- package/dist/db/repositories/index.js.map +1 -0
- package/dist/db/repositories/init-session.repo.d.ts +38 -0
- package/dist/db/repositories/init-session.repo.d.ts.map +1 -0
- package/dist/db/repositories/init-session.repo.js +112 -0
- package/dist/db/repositories/init-session.repo.js.map +1 -0
- package/dist/db/repositories/job.repo.d.ts +54 -0
- package/dist/db/repositories/job.repo.d.ts.map +1 -0
- package/dist/db/repositories/job.repo.js +119 -0
- package/dist/db/repositories/job.repo.js.map +1 -0
- package/dist/db/repositories/message-failure.repo.d.ts +92 -0
- package/dist/db/repositories/message-failure.repo.d.ts.map +1 -0
- package/dist/db/repositories/message-failure.repo.js +141 -0
- package/dist/db/repositories/message-failure.repo.js.map +1 -0
- package/dist/db/repositories/message-log.repo.d.ts +36 -0
- package/dist/db/repositories/message-log.repo.d.ts.map +1 -0
- package/dist/db/repositories/message-log.repo.js +64 -0
- package/dist/db/repositories/message-log.repo.js.map +1 -0
- package/dist/db/repositories/node.repo.d.ts +107 -0
- package/dist/db/repositories/node.repo.d.ts.map +1 -0
- package/dist/db/repositories/node.repo.js +276 -0
- package/dist/db/repositories/node.repo.js.map +1 -0
- package/dist/db/repositories/role-flow.repo.d.ts +43 -0
- package/dist/db/repositories/role-flow.repo.d.ts.map +1 -0
- package/dist/db/repositories/role-flow.repo.js +83 -0
- package/dist/db/repositories/role-flow.repo.js.map +1 -0
- package/dist/db/repositories/skill-pack.repo.d.ts +45 -0
- package/dist/db/repositories/skill-pack.repo.d.ts.map +1 -0
- package/dist/db/repositories/skill-pack.repo.js +149 -0
- package/dist/db/repositories/skill-pack.repo.js.map +1 -0
- package/dist/db/repositories/task.repo.d.ts +168 -0
- package/dist/db/repositories/task.repo.d.ts.map +1 -0
- package/dist/db/repositories/task.repo.js +381 -0
- package/dist/db/repositories/task.repo.js.map +1 -0
- package/dist/db/repositories/template.repo.d.ts +40 -0
- package/dist/db/repositories/template.repo.d.ts.map +1 -0
- package/dist/db/repositories/template.repo.js +66 -0
- package/dist/db/repositories/template.repo.js.map +1 -0
- package/dist/db/repositories/user.repo.d.ts +46 -0
- package/dist/db/repositories/user.repo.d.ts.map +1 -0
- package/dist/db/repositories/user.repo.js +75 -0
- package/dist/db/repositories/user.repo.js.map +1 -0
- package/dist/db/schema.sql +364 -0
- package/package.json +90 -0
- package/resources/preset-data-hash.enc +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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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"}
|