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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Repository
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.agentRepository = exports.AgentRepository = void 0;
|
|
7
|
+
const base_repository_1 = require("./base.repository");
|
|
8
|
+
class AgentRepository extends base_repository_1.BaseRepository {
|
|
9
|
+
constructor() {
|
|
10
|
+
super('agents', 'id');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create Agent
|
|
14
|
+
*/
|
|
15
|
+
create(data) {
|
|
16
|
+
const now = new Date().toISOString();
|
|
17
|
+
this.insert({
|
|
18
|
+
id: data.id,
|
|
19
|
+
name: data.name,
|
|
20
|
+
department_id: data.department_id || null,
|
|
21
|
+
job_id: data.job_id || null,
|
|
22
|
+
role: data.role,
|
|
23
|
+
role_flow_path: data.role_flow_path || null,
|
|
24
|
+
feishu_bot_id: null,
|
|
25
|
+
workspace_path: data.workspace_path || null,
|
|
26
|
+
status: 'active',
|
|
27
|
+
last_active_at: null,
|
|
28
|
+
created_at: now
|
|
29
|
+
});
|
|
30
|
+
return this.findById(data.id);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 更新Agent
|
|
34
|
+
*/
|
|
35
|
+
updateAgent(id, data) {
|
|
36
|
+
const updateData = {};
|
|
37
|
+
if (data.name !== undefined)
|
|
38
|
+
updateData.name = data.name;
|
|
39
|
+
if (data.job !== undefined)
|
|
40
|
+
updateData.job_id = data.job;
|
|
41
|
+
if (data.status !== undefined)
|
|
42
|
+
updateData.status = data.status;
|
|
43
|
+
if (data.feishu_bot_id !== undefined)
|
|
44
|
+
updateData.feishu_bot_id = data.feishu_bot_id;
|
|
45
|
+
if (data.workspace_path !== undefined)
|
|
46
|
+
updateData.workspace_path = data.workspace_path;
|
|
47
|
+
if (Object.keys(updateData).length > 0) {
|
|
48
|
+
this.update(id, updateData);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 按部门查询Agent
|
|
53
|
+
*/
|
|
54
|
+
findByDepartment(departmentId) {
|
|
55
|
+
return this.findWhere({ department_id: departmentId });
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 按角色查询Agent
|
|
59
|
+
*/
|
|
60
|
+
findByRole(role) {
|
|
61
|
+
return this.findWhere({ role });
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 按部门和角色查询Agent
|
|
65
|
+
*/
|
|
66
|
+
findByDepartmentAndRole(departmentId, role) {
|
|
67
|
+
return this.findWhere({ department_id: departmentId, role });
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 获取部门的第一个指定角色的Agent(用于manager和reviewer,每个部门唯一)
|
|
71
|
+
*/
|
|
72
|
+
findOneByDepartmentAndRole(departmentId, role) {
|
|
73
|
+
return this.findOneWhere({ department_id: departmentId, role });
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 获取总助理(全局唯一,role=assistant)
|
|
77
|
+
*/
|
|
78
|
+
getAssistant() {
|
|
79
|
+
return this.findOneWhere({ role: 'assistant' });
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 检查部门是否已有指定角色的Agent
|
|
83
|
+
*/
|
|
84
|
+
hasRoleInDepartment(departmentId, role) {
|
|
85
|
+
const count = this.count({ department_id: departmentId, role });
|
|
86
|
+
return count > 0;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 按部门和职业查询执行者
|
|
90
|
+
*/
|
|
91
|
+
findByDepartmentAndJob(departmentId, jobId) {
|
|
92
|
+
return this.findOneWhere({ department_id: departmentId, job_id: jobId, role: 'executor' });
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 更新最后活跃时间
|
|
96
|
+
*/
|
|
97
|
+
updateLastActive(id) {
|
|
98
|
+
this.update(id, { last_active_at: new Date().toISOString() });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.AgentRepository = AgentRepository;
|
|
102
|
+
exports.agentRepository = new AgentRepository();
|
|
103
|
+
//# sourceMappingURL=agent.repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.repo.js","sourceRoot":"","sources":["../../../src/db/repositories/agent.repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Repository
|
|
3
|
+
* Provides generic CRUD operations
|
|
4
|
+
*/
|
|
5
|
+
import Database from 'better-sqlite3';
|
|
6
|
+
export declare abstract class BaseRepository<T> {
|
|
7
|
+
protected tableName: string;
|
|
8
|
+
protected primaryKey: string;
|
|
9
|
+
constructor(tableName: string, primaryKey?: string);
|
|
10
|
+
/**
|
|
11
|
+
* Get database instance (fresh instance for each operation)
|
|
12
|
+
*/
|
|
13
|
+
protected get db(): Database.Database;
|
|
14
|
+
/**
|
|
15
|
+
* Find single record by ID
|
|
16
|
+
*/
|
|
17
|
+
findById(id: string): T | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Find all records
|
|
20
|
+
*/
|
|
21
|
+
findAll(): T[];
|
|
22
|
+
/**
|
|
23
|
+
* Find records by conditions
|
|
24
|
+
*/
|
|
25
|
+
findWhere(conditions: Record<string, unknown>): T[];
|
|
26
|
+
/**
|
|
27
|
+
* Find single record by conditions
|
|
28
|
+
*/
|
|
29
|
+
findOneWhere(conditions: Record<string, unknown>): T | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Insert record
|
|
32
|
+
*/
|
|
33
|
+
insert(data: Record<string, unknown>): Database.RunResult;
|
|
34
|
+
/**
|
|
35
|
+
* Update record
|
|
36
|
+
*/
|
|
37
|
+
update(id: string, data: Record<string, unknown>): Database.RunResult;
|
|
38
|
+
/**
|
|
39
|
+
* Delete record
|
|
40
|
+
*/
|
|
41
|
+
delete(id: string): Database.RunResult;
|
|
42
|
+
/**
|
|
43
|
+
* Check if record exists
|
|
44
|
+
*/
|
|
45
|
+
exists(id: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Count records
|
|
48
|
+
*/
|
|
49
|
+
count(conditions?: Record<string, unknown>): number;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=base.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.repository.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/base.repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,8BAAsB,cAAc,CAAC,CAAC;IACpC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEjB,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa;IAKxD;;OAEG;IACH,SAAS,KAAK,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAEpC;IAED;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKnC;;OAEG;IACH,OAAO,IAAI,CAAC,EAAE;IAKd;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;IAQnD;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS;IAKhE;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,SAAS;IASzD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,SAAS;IAQrE;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS;IAKtC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAM3B;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;CAapD"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Base Repository
|
|
4
|
+
* Provides generic CRUD operations
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BaseRepository = void 0;
|
|
8
|
+
const index_1 = require("../index");
|
|
9
|
+
class BaseRepository {
|
|
10
|
+
tableName;
|
|
11
|
+
primaryKey;
|
|
12
|
+
constructor(tableName, primaryKey = 'id') {
|
|
13
|
+
this.tableName = tableName;
|
|
14
|
+
this.primaryKey = primaryKey;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get database instance (fresh instance for each operation)
|
|
18
|
+
*/
|
|
19
|
+
get db() {
|
|
20
|
+
return (0, index_1.getDatabase)();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Find single record by ID
|
|
24
|
+
*/
|
|
25
|
+
findById(id) {
|
|
26
|
+
const sql = `SELECT * FROM ${this.tableName} WHERE ${this.primaryKey} = ?`;
|
|
27
|
+
return this.db.prepare(sql).get(id);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Find all records
|
|
31
|
+
*/
|
|
32
|
+
findAll() {
|
|
33
|
+
const sql = `SELECT * FROM ${this.tableName}`;
|
|
34
|
+
return this.db.prepare(sql).all();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Find records by conditions
|
|
38
|
+
*/
|
|
39
|
+
findWhere(conditions) {
|
|
40
|
+
const keys = Object.keys(conditions);
|
|
41
|
+
const whereClause = keys.map(k => `${k} = ?`).join(' AND ');
|
|
42
|
+
const values = Object.values(conditions);
|
|
43
|
+
const sql = `SELECT * FROM ${this.tableName} WHERE ${whereClause}`;
|
|
44
|
+
return this.db.prepare(sql).all(...values);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Find single record by conditions
|
|
48
|
+
*/
|
|
49
|
+
findOneWhere(conditions) {
|
|
50
|
+
const results = this.findWhere(conditions);
|
|
51
|
+
return results[0];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Insert record
|
|
55
|
+
*/
|
|
56
|
+
insert(data) {
|
|
57
|
+
const keys = Object.keys(data);
|
|
58
|
+
const placeholders = keys.map(() => '?').join(', ');
|
|
59
|
+
const columns = keys.join(', ');
|
|
60
|
+
const values = Object.values(data);
|
|
61
|
+
const sql = `INSERT INTO ${this.tableName} (${columns}) VALUES (${placeholders})`;
|
|
62
|
+
return this.db.prepare(sql).run(...values);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Update record
|
|
66
|
+
*/
|
|
67
|
+
update(id, data) {
|
|
68
|
+
const keys = Object.keys(data);
|
|
69
|
+
const setClause = keys.map(k => `${k} = ?`).join(', ');
|
|
70
|
+
const values = [...Object.values(data), id];
|
|
71
|
+
const sql = `UPDATE ${this.tableName} SET ${setClause} WHERE ${this.primaryKey} = ?`;
|
|
72
|
+
return this.db.prepare(sql).run(...values);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Delete record
|
|
76
|
+
*/
|
|
77
|
+
delete(id) {
|
|
78
|
+
const sql = `DELETE FROM ${this.tableName} WHERE ${this.primaryKey} = ?`;
|
|
79
|
+
return this.db.prepare(sql).run(id);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check if record exists
|
|
83
|
+
*/
|
|
84
|
+
exists(id) {
|
|
85
|
+
const sql = `SELECT 1 FROM ${this.tableName} WHERE ${this.primaryKey} = ?`;
|
|
86
|
+
const result = this.db.prepare(sql).get(id);
|
|
87
|
+
return !!result;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Count records
|
|
91
|
+
*/
|
|
92
|
+
count(conditions) {
|
|
93
|
+
let sql = `SELECT COUNT(*) as count FROM ${this.tableName}`;
|
|
94
|
+
if (conditions && Object.keys(conditions).length > 0) {
|
|
95
|
+
const keys = Object.keys(conditions);
|
|
96
|
+
const whereClause = keys.map(k => `${k} = ?`).join(' AND ');
|
|
97
|
+
const values = Object.values(conditions);
|
|
98
|
+
sql += ` WHERE ${whereClause}`;
|
|
99
|
+
const result = this.db.prepare(sql).get(...values);
|
|
100
|
+
return result.count;
|
|
101
|
+
}
|
|
102
|
+
const result = this.db.prepare(sql).get();
|
|
103
|
+
return result.count;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.BaseRepository = BaseRepository;
|
|
107
|
+
//# sourceMappingURL=base.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../../src/db/repositories/base.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Company Repository
|
|
3
|
+
*/
|
|
4
|
+
import { BaseRepository } from './base.repository';
|
|
5
|
+
import { Company } from '../../core/models/types';
|
|
6
|
+
export declare class CompanyRepository extends BaseRepository<Company> {
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* 创建公司
|
|
10
|
+
*/
|
|
11
|
+
create(id: string, name: string): Company;
|
|
12
|
+
/**
|
|
13
|
+
* 获取默认公司(第一个)
|
|
14
|
+
*/
|
|
15
|
+
getDefault(): Company | undefined;
|
|
16
|
+
}
|
|
17
|
+
export declare const companyRepository: CompanyRepository;
|
|
18
|
+
//# sourceMappingURL=company.repo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company.repo.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/company.repo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,OAAO,CAAC;;IAK5D;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAUzC;;OAEG;IACH,UAAU,IAAI,OAAO,GAAG,SAAS;CAGlC;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Company Repository
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.companyRepository = exports.CompanyRepository = void 0;
|
|
7
|
+
const base_repository_1 = require("./base.repository");
|
|
8
|
+
class CompanyRepository extends base_repository_1.BaseRepository {
|
|
9
|
+
constructor() {
|
|
10
|
+
super('companies', 'id');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 创建公司
|
|
14
|
+
*/
|
|
15
|
+
create(id, name) {
|
|
16
|
+
const now = new Date().toISOString();
|
|
17
|
+
this.insert({
|
|
18
|
+
id,
|
|
19
|
+
name,
|
|
20
|
+
created_at: now
|
|
21
|
+
});
|
|
22
|
+
return this.findById(id);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 获取默认公司(第一个)
|
|
26
|
+
*/
|
|
27
|
+
getDefault() {
|
|
28
|
+
return this.findAll()[0];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.CompanyRepository = CompanyRepository;
|
|
32
|
+
exports.companyRepository = new CompanyRepository();
|
|
33
|
+
//# sourceMappingURL=company.repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company.repo.js","sourceRoot":"","sources":["../../../src/db/repositories/company.repo.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAAmD;AAGnD,MAAa,iBAAkB,SAAQ,gCAAuB;IAC5D;QACE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,IAAY;QAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC;YACV,EAAE;YACF,IAAI;YACJ,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;CACF;AAxBD,8CAwBC;AAEY,QAAA,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Change Repository
|
|
3
|
+
*/
|
|
4
|
+
export interface ConfigChange {
|
|
5
|
+
id: string;
|
|
6
|
+
session_id: string;
|
|
7
|
+
change_type: 'agent_create' | 'agent_delete' | 'agent_allow_list_update' | 'agent_to_agent_update' | 'binding_create' | 'binding_delete' | 'channel_config' | 'skill_pack_create' | 'skill_pack_delete' | 'job_create' | 'job_delete' | 'directory_create' | 'department_create' | 'department_delete' | 'config_update' | 'feishu_group_bind' | 'feishu_group_unbind' | 'feishu_pairing_approve' | 'other';
|
|
8
|
+
target_type: 'agents.list' | 'agents.list.allow_agents' | 'tools.agentToAgent' | 'bindings' | 'channels.feishu' | 'channels.feishu.groups' | 'skill_packs' | 'jobs' | 'directories' | 'gateway' | 'departments' | 'credentials' | 'other';
|
|
9
|
+
target_path: string;
|
|
10
|
+
action: 'add' | 'remove' | 'update';
|
|
11
|
+
old_value?: string;
|
|
12
|
+
new_value?: string;
|
|
13
|
+
related_id?: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
cleaned: boolean;
|
|
16
|
+
created_at: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 记录配置变更
|
|
20
|
+
*/
|
|
21
|
+
export declare function recordChange(sessionId: string, change: Omit<ConfigChange, 'id' | 'session_id' | 'cleaned' | 'created_at'>): string;
|
|
22
|
+
/**
|
|
23
|
+
* 获取指定会话的所有配置变更
|
|
24
|
+
*/
|
|
25
|
+
export declare function getBySession(sessionId: string): ConfigChange[];
|
|
26
|
+
/**
|
|
27
|
+
* 获取指定会话未清理的配置变更
|
|
28
|
+
*/
|
|
29
|
+
export declare function getUncleanedBySession(sessionId: string): ConfigChange[];
|
|
30
|
+
/**
|
|
31
|
+
* 获取所有配置变更
|
|
32
|
+
*/
|
|
33
|
+
export declare function getAllChanges(): ConfigChange[];
|
|
34
|
+
/**
|
|
35
|
+
* 获取指定类型的配置变更
|
|
36
|
+
*/
|
|
37
|
+
export declare function getChangesByType(targetType: ConfigChange['target_type']): ConfigChange[];
|
|
38
|
+
/**
|
|
39
|
+
* 获取指定关联ID的配置变更
|
|
40
|
+
*/
|
|
41
|
+
export declare function getChangesByRelatedId(relatedId: string): ConfigChange[];
|
|
42
|
+
/**
|
|
43
|
+
* 标记指定会话的所有变更为已清理
|
|
44
|
+
*/
|
|
45
|
+
export declare function markAllCleanedBySession(sessionId: string): void;
|
|
46
|
+
/**
|
|
47
|
+
* 标记单条变更为已清理
|
|
48
|
+
*/
|
|
49
|
+
export declare function markAsCleaned(changeId: string): void;
|
|
50
|
+
/**
|
|
51
|
+
* 清空所有配置变更记录
|
|
52
|
+
*/
|
|
53
|
+
export declare function clearAllChanges(): void;
|
|
54
|
+
/**
|
|
55
|
+
* 获取变更统计
|
|
56
|
+
*/
|
|
57
|
+
export declare function getChangeStats(): Record<string, number>;
|
|
58
|
+
/**
|
|
59
|
+
* 获取指定会话的变更统计
|
|
60
|
+
*/
|
|
61
|
+
export declare function getChangeStatsBySession(sessionId: string): {
|
|
62
|
+
total: number;
|
|
63
|
+
byType: Record<string, number>;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=config-change.repo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-change.repo.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/config-change.repo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,cAAc,GAAG,cAAc,GAAG,yBAAyB,GAAG,uBAAuB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,eAAe,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,OAAO,CAAC;IAC5Y,WAAW,EAAE,aAAa,GAAG,0BAA0B,GAAG,oBAAoB,GAAG,UAAU,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,aAAa,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;IAC1O,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC,GAAG,MAAM,CAWlI;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAG9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAGvE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAG9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,CAGxF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAGvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGpD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAiB5G"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Config Change Repository
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.recordChange = recordChange;
|
|
7
|
+
exports.getBySession = getBySession;
|
|
8
|
+
exports.getUncleanedBySession = getUncleanedBySession;
|
|
9
|
+
exports.getAllChanges = getAllChanges;
|
|
10
|
+
exports.getChangesByType = getChangesByType;
|
|
11
|
+
exports.getChangesByRelatedId = getChangesByRelatedId;
|
|
12
|
+
exports.markAllCleanedBySession = markAllCleanedBySession;
|
|
13
|
+
exports.markAsCleaned = markAsCleaned;
|
|
14
|
+
exports.clearAllChanges = clearAllChanges;
|
|
15
|
+
exports.getChangeStats = getChangeStats;
|
|
16
|
+
exports.getChangeStatsBySession = getChangeStatsBySession;
|
|
17
|
+
const index_1 = require("../index");
|
|
18
|
+
/**
|
|
19
|
+
* 记录配置变更
|
|
20
|
+
*/
|
|
21
|
+
function recordChange(sessionId, change) {
|
|
22
|
+
const db = (0, index_1.getDatabase)();
|
|
23
|
+
const id = `cfg_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
24
|
+
db.prepare(`
|
|
25
|
+
INSERT INTO config_changes (id, session_id, change_type, target_type, target_path, action, old_value, new_value, related_id, description, cleaned, created_at)
|
|
26
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0, datetime('now'))
|
|
27
|
+
`).run(id, sessionId, change.change_type, change.target_type, change.target_path, change.action, change.old_value || null, change.new_value || null, change.related_id || null, change.description || null);
|
|
28
|
+
return id;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 获取指定会话的所有配置变更
|
|
32
|
+
*/
|
|
33
|
+
function getBySession(sessionId) {
|
|
34
|
+
const db = (0, index_1.getDatabase)();
|
|
35
|
+
return db.prepare('SELECT * FROM config_changes WHERE session_id = ? ORDER BY created_at ASC').all(sessionId);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 获取指定会话未清理的配置变更
|
|
39
|
+
*/
|
|
40
|
+
function getUncleanedBySession(sessionId) {
|
|
41
|
+
const db = (0, index_1.getDatabase)();
|
|
42
|
+
return db.prepare('SELECT * FROM config_changes WHERE session_id = ? AND cleaned = 0 ORDER BY created_at ASC').all(sessionId);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 获取所有配置变更
|
|
46
|
+
*/
|
|
47
|
+
function getAllChanges() {
|
|
48
|
+
const db = (0, index_1.getDatabase)();
|
|
49
|
+
return db.prepare('SELECT * FROM config_changes ORDER BY created_at ASC').all();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 获取指定类型的配置变更
|
|
53
|
+
*/
|
|
54
|
+
function getChangesByType(targetType) {
|
|
55
|
+
const db = (0, index_1.getDatabase)();
|
|
56
|
+
return db.prepare('SELECT * FROM config_changes WHERE target_type = ? ORDER BY created_at ASC').all(targetType);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 获取指定关联ID的配置变更
|
|
60
|
+
*/
|
|
61
|
+
function getChangesByRelatedId(relatedId) {
|
|
62
|
+
const db = (0, index_1.getDatabase)();
|
|
63
|
+
return db.prepare('SELECT * FROM config_changes WHERE related_id = ? ORDER BY created_at ASC').all(relatedId);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 标记指定会话的所有变更为已清理
|
|
67
|
+
*/
|
|
68
|
+
function markAllCleanedBySession(sessionId) {
|
|
69
|
+
const db = (0, index_1.getDatabase)();
|
|
70
|
+
db.prepare("UPDATE config_changes SET cleaned = 1 WHERE session_id = ?").run(sessionId);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* 标记单条变更为已清理
|
|
74
|
+
*/
|
|
75
|
+
function markAsCleaned(changeId) {
|
|
76
|
+
const db = (0, index_1.getDatabase)();
|
|
77
|
+
db.prepare("UPDATE config_changes SET cleaned = 1 WHERE id = ?").run(changeId);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 清空所有配置变更记录
|
|
81
|
+
*/
|
|
82
|
+
function clearAllChanges() {
|
|
83
|
+
const db = (0, index_1.getDatabase)();
|
|
84
|
+
db.prepare('DELETE FROM config_changes').run();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 获取变更统计
|
|
88
|
+
*/
|
|
89
|
+
function getChangeStats() {
|
|
90
|
+
const db = (0, index_1.getDatabase)();
|
|
91
|
+
const stats = db.prepare(`
|
|
92
|
+
SELECT target_type, COUNT(*) as count
|
|
93
|
+
FROM config_changes
|
|
94
|
+
GROUP BY target_type
|
|
95
|
+
`).all();
|
|
96
|
+
return stats.reduce((acc, row) => {
|
|
97
|
+
acc[row.target_type] = row.count;
|
|
98
|
+
return acc;
|
|
99
|
+
}, {});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 获取指定会话的变更统计
|
|
103
|
+
*/
|
|
104
|
+
function getChangeStatsBySession(sessionId) {
|
|
105
|
+
const db = (0, index_1.getDatabase)();
|
|
106
|
+
const total = db.prepare("SELECT COUNT(*) as count FROM config_changes WHERE session_id = ? AND cleaned = 0").get(sessionId);
|
|
107
|
+
const stats = db.prepare(`
|
|
108
|
+
SELECT target_type, COUNT(*) as count
|
|
109
|
+
FROM config_changes
|
|
110
|
+
WHERE session_id = ? AND cleaned = 0
|
|
111
|
+
GROUP BY target_type
|
|
112
|
+
`).all(sessionId);
|
|
113
|
+
const byType = stats.reduce((acc, row) => {
|
|
114
|
+
acc[row.target_type] = row.count;
|
|
115
|
+
return acc;
|
|
116
|
+
}, {});
|
|
117
|
+
return { total: total.count, byType };
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=config-change.repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-change.repo.js","sourceRoot":"","sources":["../../../src/db/repositories/config-change.repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Department (Team) Repository
|
|
3
|
+
*/
|
|
4
|
+
import { BaseRepository } from './base.repository';
|
|
5
|
+
import { Department } from '../../core/models/types';
|
|
6
|
+
export declare class DepartmentRepository extends BaseRepository<Department> {
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Create department (team)
|
|
10
|
+
*/
|
|
11
|
+
create(id: string, name: string): Department;
|
|
12
|
+
/**
|
|
13
|
+
* Update department (team)
|
|
14
|
+
*/
|
|
15
|
+
updateDept(id: string, data: {
|
|
16
|
+
name?: string;
|
|
17
|
+
feishu_group_id?: string | null;
|
|
18
|
+
}): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get all departments (teams)
|
|
21
|
+
*/
|
|
22
|
+
findAll(): Department[];
|
|
23
|
+
/**
|
|
24
|
+
* Get department by ID
|
|
25
|
+
*/
|
|
26
|
+
findById(id: string): Department | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Check if department exists
|
|
29
|
+
*/
|
|
30
|
+
exists(id: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Delete department (team)
|
|
33
|
+
*/
|
|
34
|
+
deleteDept(id: string): void;
|
|
35
|
+
}
|
|
36
|
+
export declare const departmentRepository: DepartmentRepository;
|
|
37
|
+
//# sourceMappingURL=dept.repo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dept.repo.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/dept.repo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,qBAAa,oBAAqB,SAAQ,cAAc,CAAC,UAAU,CAAC;;IAKlE;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAW5C;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI;IAUtF;;OAEG;IACH,OAAO,IAAI,UAAU,EAAE;IAIvB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI5C;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAK3B;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAG7B;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Department (Team) Repository
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.departmentRepository = exports.DepartmentRepository = void 0;
|
|
7
|
+
const base_repository_1 = require("./base.repository");
|
|
8
|
+
class DepartmentRepository extends base_repository_1.BaseRepository {
|
|
9
|
+
constructor() {
|
|
10
|
+
super('departments', 'id');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create department (team)
|
|
14
|
+
*/
|
|
15
|
+
create(id, name) {
|
|
16
|
+
this.insert({
|
|
17
|
+
id,
|
|
18
|
+
name,
|
|
19
|
+
company_id: null,
|
|
20
|
+
feishu_group_id: null,
|
|
21
|
+
created_at: new Date().toISOString()
|
|
22
|
+
});
|
|
23
|
+
return this.findById(id);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Update department (team)
|
|
27
|
+
*/
|
|
28
|
+
updateDept(id, data) {
|
|
29
|
+
const updateData = {};
|
|
30
|
+
if (data.name !== undefined)
|
|
31
|
+
updateData.name = data.name;
|
|
32
|
+
if (data.feishu_group_id !== undefined)
|
|
33
|
+
updateData.feishu_group_id = data.feishu_group_id;
|
|
34
|
+
if (Object.keys(updateData).length > 0) {
|
|
35
|
+
this.update(id, updateData);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get all departments (teams)
|
|
40
|
+
*/
|
|
41
|
+
findAll() {
|
|
42
|
+
return this.db.prepare('SELECT * FROM departments ORDER BY name').all();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get department by ID
|
|
46
|
+
*/
|
|
47
|
+
findById(id) {
|
|
48
|
+
return this.db.prepare('SELECT * FROM departments WHERE id = ?').get(id);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if department exists
|
|
52
|
+
*/
|
|
53
|
+
exists(id) {
|
|
54
|
+
const result = this.db.prepare('SELECT 1 FROM departments WHERE id = ?').get(id);
|
|
55
|
+
return !!result;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Delete department (team)
|
|
59
|
+
*/
|
|
60
|
+
deleteDept(id) {
|
|
61
|
+
this.delete(id);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.DepartmentRepository = DepartmentRepository;
|
|
65
|
+
exports.departmentRepository = new DepartmentRepository();
|
|
66
|
+
//# sourceMappingURL=dept.repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dept.repo.js","sourceRoot":"","sources":["../../../src/db/repositories/dept.repo.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAAmD;AAInD,MAAa,oBAAqB,SAAQ,gCAA0B;IAClE;QACE,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,IAAY;QAC7B,IAAI,CAAC,MAAM,CAAC;YACV,EAAE;YACF,IAAI;YACJ,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,EAAU,EAAE,IAAwD;QAC7E,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAE1F,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,EAAkB,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,EAAE,CAA2B,CAAC;IACrG,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,CAAC,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,EAAU;QACnB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF;AA5DD,oDA4DC;AAEY,QAAA,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC"}
|