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,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 职业 Repository
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.jobRepository = exports.JobRepository = void 0;
|
|
7
|
+
const base_repository_1 = require("./base.repository");
|
|
8
|
+
const crypto_service_1 = require("../../core/services/crypto.service");
|
|
9
|
+
class JobRepository extends base_repository_1.BaseRepository {
|
|
10
|
+
constructor() {
|
|
11
|
+
super('jobs', 'id');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 创建职业
|
|
15
|
+
*/
|
|
16
|
+
create(data) {
|
|
17
|
+
const now = new Date().toISOString();
|
|
18
|
+
this.insert({
|
|
19
|
+
id: data.id,
|
|
20
|
+
name: data.name,
|
|
21
|
+
domain_id: data.domain_id || null,
|
|
22
|
+
skill_pack_ids: data.skill_pack_ids || null,
|
|
23
|
+
is_preset: data.is_preset ?? 0,
|
|
24
|
+
created_at: now
|
|
25
|
+
});
|
|
26
|
+
return this.findById(data.id);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 更新职业
|
|
30
|
+
*/
|
|
31
|
+
updateJob(id, data) {
|
|
32
|
+
const updateData = {};
|
|
33
|
+
if (data.name !== undefined)
|
|
34
|
+
updateData.name = data.name;
|
|
35
|
+
if (data.domain_id !== undefined)
|
|
36
|
+
updateData.domain_id = data.domain_id;
|
|
37
|
+
if (data.skill_pack_ids !== undefined) {
|
|
38
|
+
updateData.skill_pack_ids = data.skill_pack_ids;
|
|
39
|
+
}
|
|
40
|
+
if (Object.keys(updateData).length > 0) {
|
|
41
|
+
this.update(id, updateData);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 获取职业关联的技能包ID列表(支持加密数据)
|
|
46
|
+
*/
|
|
47
|
+
getSkillPackIds(jobId) {
|
|
48
|
+
const job = this.findById(jobId);
|
|
49
|
+
if (!job || !job.skill_pack_ids)
|
|
50
|
+
return [];
|
|
51
|
+
try {
|
|
52
|
+
// 先解密(如果是加密的)
|
|
53
|
+
let content = job.skill_pack_ids;
|
|
54
|
+
if ((0, crypto_service_1.isEncrypted)(content)) {
|
|
55
|
+
content = (0, crypto_service_1.decryptSync)(content);
|
|
56
|
+
}
|
|
57
|
+
return JSON.parse(content);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error(`[Job] 解析技能包ID列表失败: ${jobId}`, error);
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 根据领域ID获取职业列表
|
|
66
|
+
*/
|
|
67
|
+
findByDomain(domainId) {
|
|
68
|
+
return this.findWhere({ domain_id: domainId });
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 获取所有预置职业
|
|
72
|
+
*/
|
|
73
|
+
findPreset() {
|
|
74
|
+
return this.findWhere({ is_preset: 1 });
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 获取所有用户自定义职业
|
|
78
|
+
*/
|
|
79
|
+
findCustom() {
|
|
80
|
+
return this.findWhere({ is_preset: 0 });
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 检查是否为预置数据
|
|
84
|
+
*/
|
|
85
|
+
isPreset(id) {
|
|
86
|
+
const job = this.findById(id);
|
|
87
|
+
return job ? job.is_preset === 1 : false;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* 获取解密后的职业名称
|
|
91
|
+
* 预设数据的 name 字段是加密的,需要解密
|
|
92
|
+
* 自定义数据的 name 是明文
|
|
93
|
+
*/
|
|
94
|
+
getName(jobId) {
|
|
95
|
+
const job = this.findById(jobId);
|
|
96
|
+
if (!job)
|
|
97
|
+
return jobId; // 返回 ID 作为 fallback
|
|
98
|
+
// 预设数据:name 是加密的,id 是明文名称
|
|
99
|
+
if (job.is_preset === 1) {
|
|
100
|
+
return job.id; // 预设数据的 id 就是中文名称
|
|
101
|
+
}
|
|
102
|
+
// 自定义数据:name 可能是加密的也可能是明文
|
|
103
|
+
if (job.name) {
|
|
104
|
+
if ((0, crypto_service_1.isEncrypted)(job.name)) {
|
|
105
|
+
try {
|
|
106
|
+
return (0, crypto_service_1.decryptSync)(job.name);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return job.id;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return job.name;
|
|
113
|
+
}
|
|
114
|
+
return job.id;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.JobRepository = JobRepository;
|
|
118
|
+
exports.jobRepository = new JobRepository();
|
|
119
|
+
//# sourceMappingURL=job.repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.repo.js","sourceRoot":"","sources":["../../../src/db/repositories/job.repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Failure Repository (v1.1.5)
|
|
3
|
+
*
|
|
4
|
+
* Records and manages failed message deliveries
|
|
5
|
+
*/
|
|
6
|
+
import type Database from 'better-sqlite3';
|
|
7
|
+
export interface MessageFailure {
|
|
8
|
+
id: number;
|
|
9
|
+
message_id: string | null;
|
|
10
|
+
task_id: string | null;
|
|
11
|
+
sender_id: string;
|
|
12
|
+
receiver_id: string;
|
|
13
|
+
message_type: string;
|
|
14
|
+
message_content: string;
|
|
15
|
+
failure_reason: string | null;
|
|
16
|
+
retry_count: number;
|
|
17
|
+
status: 'pending' | 'retrying' | 'resolved' | 'expired';
|
|
18
|
+
created_at: string;
|
|
19
|
+
updated_at: string;
|
|
20
|
+
}
|
|
21
|
+
export interface CreateMessageFailureData {
|
|
22
|
+
message_id?: string;
|
|
23
|
+
task_id?: string;
|
|
24
|
+
sender_id: string;
|
|
25
|
+
receiver_id: string;
|
|
26
|
+
message_type: string;
|
|
27
|
+
message_content: string;
|
|
28
|
+
failure_reason?: string;
|
|
29
|
+
}
|
|
30
|
+
export declare class MessageFailureRepository {
|
|
31
|
+
private tableName;
|
|
32
|
+
protected get db(): Database.Database;
|
|
33
|
+
/**
|
|
34
|
+
* Find by ID
|
|
35
|
+
*/
|
|
36
|
+
findById(id: number): MessageFailure | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Update
|
|
39
|
+
*/
|
|
40
|
+
update(id: number, data: Partial<MessageFailure>): void;
|
|
41
|
+
/**
|
|
42
|
+
* Find by conditions
|
|
43
|
+
*/
|
|
44
|
+
findWhere(conditions: Record<string, unknown>): MessageFailure[];
|
|
45
|
+
/**
|
|
46
|
+
* Create a new message failure record
|
|
47
|
+
*/
|
|
48
|
+
createFailure(data: CreateMessageFailureData): MessageFailure;
|
|
49
|
+
/**
|
|
50
|
+
* Find pending failures
|
|
51
|
+
*/
|
|
52
|
+
findPending(): MessageFailure[];
|
|
53
|
+
/**
|
|
54
|
+
* Find pending failures with retry count less than max
|
|
55
|
+
*/
|
|
56
|
+
findPendingForRetry(maxRetries?: number): MessageFailure[];
|
|
57
|
+
/**
|
|
58
|
+
* Find failures that need proxy send (retry_count >= threshold)
|
|
59
|
+
*/
|
|
60
|
+
findNeedsProxy(threshold?: number): MessageFailure[];
|
|
61
|
+
/**
|
|
62
|
+
* Increment retry count
|
|
63
|
+
*/
|
|
64
|
+
incrementRetry(id: number): void;
|
|
65
|
+
/**
|
|
66
|
+
* Update status
|
|
67
|
+
*/
|
|
68
|
+
updateStatus(id: number, status: MessageFailure['status']): void;
|
|
69
|
+
/**
|
|
70
|
+
* Mark as resolved
|
|
71
|
+
*/
|
|
72
|
+
markResolved(id: number): void;
|
|
73
|
+
/**
|
|
74
|
+
* Mark as expired
|
|
75
|
+
*/
|
|
76
|
+
markExpired(id: number): void;
|
|
77
|
+
/**
|
|
78
|
+
* Clean up old records (older than specified hours)
|
|
79
|
+
*/
|
|
80
|
+
cleanupOld(hours?: number): number;
|
|
81
|
+
/**
|
|
82
|
+
* Get statistics
|
|
83
|
+
*/
|
|
84
|
+
getStats(): {
|
|
85
|
+
pending: number;
|
|
86
|
+
resolved: number;
|
|
87
|
+
expired: number;
|
|
88
|
+
total: number;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export declare const messageFailureRepository: MessageFailureRepository;
|
|
92
|
+
//# sourceMappingURL=message-failure.repo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-failure.repo.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/message-failure.repo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,SAAS,CAAsB;IAEvC,SAAS,KAAK,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAEpC;IAED;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAKhD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAOvD;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,EAAE;IAQhE;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,wBAAwB,GAAG,cAAc;IAuB7D;;OAEG;IACH,WAAW,IAAI,cAAc,EAAE;IAI/B;;OAEG;IACH,mBAAmB,CAAC,UAAU,GAAE,MAAU,GAAG,cAAc,EAAE;IAS7D;;OAEG;IACH,cAAc,CAAC,SAAS,GAAE,MAAU,GAAG,cAAc,EAAE;IASvD;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAShC;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI;IAKhE;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,UAAU,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM;IAStC;;OAEG;IACH,QAAQ,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAWlF;AAGD,eAAO,MAAM,wBAAwB,0BAAiC,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Message Failure Repository (v1.1.5)
|
|
4
|
+
*
|
|
5
|
+
* Records and manages failed message deliveries
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.messageFailureRepository = exports.MessageFailureRepository = void 0;
|
|
9
|
+
const index_1 = require("../index");
|
|
10
|
+
class MessageFailureRepository {
|
|
11
|
+
tableName = 'message_failures';
|
|
12
|
+
get db() {
|
|
13
|
+
return (0, index_1.getDatabase)();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Find by ID
|
|
17
|
+
*/
|
|
18
|
+
findById(id) {
|
|
19
|
+
const sql = `SELECT * FROM ${this.tableName} WHERE id = ?`;
|
|
20
|
+
return this.db.prepare(sql).get(id);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Update
|
|
24
|
+
*/
|
|
25
|
+
update(id, data) {
|
|
26
|
+
const keys = Object.keys(data);
|
|
27
|
+
const setClause = keys.map(k => `${k} = @${k}`).join(', ');
|
|
28
|
+
const sql = `UPDATE ${this.tableName} SET ${setClause} WHERE id = @id`;
|
|
29
|
+
this.db.prepare(sql).run({ ...data, id });
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Find by conditions
|
|
33
|
+
*/
|
|
34
|
+
findWhere(conditions) {
|
|
35
|
+
const keys = Object.keys(conditions);
|
|
36
|
+
const whereClause = keys.map(k => `${k} = ?`).join(' AND ');
|
|
37
|
+
const values = Object.values(conditions);
|
|
38
|
+
const sql = `SELECT * FROM ${this.tableName} WHERE ${whereClause}`;
|
|
39
|
+
return this.db.prepare(sql).all(...values);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create a new message failure record
|
|
43
|
+
*/
|
|
44
|
+
createFailure(data) {
|
|
45
|
+
const now = new Date().toISOString();
|
|
46
|
+
const stmt = this.db.prepare(`
|
|
47
|
+
INSERT INTO message_failures
|
|
48
|
+
(message_id, task_id, sender_id, receiver_id, message_type, message_content, failure_reason, status, created_at, updated_at)
|
|
49
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?, ?)
|
|
50
|
+
`);
|
|
51
|
+
const result = stmt.run(data.message_id || null, data.task_id || null, data.sender_id, data.receiver_id, data.message_type, data.message_content, data.failure_reason || null, now, now);
|
|
52
|
+
return this.findById(result.lastInsertRowid);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Find pending failures
|
|
56
|
+
*/
|
|
57
|
+
findPending() {
|
|
58
|
+
return this.findWhere({ status: 'pending' });
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Find pending failures with retry count less than max
|
|
62
|
+
*/
|
|
63
|
+
findPendingForRetry(maxRetries = 2) {
|
|
64
|
+
const sql = `
|
|
65
|
+
SELECT * FROM message_failures
|
|
66
|
+
WHERE status = 'pending' AND retry_count < ?
|
|
67
|
+
ORDER BY created_at ASC
|
|
68
|
+
`;
|
|
69
|
+
return this.db.prepare(sql).all(maxRetries);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Find failures that need proxy send (retry_count >= threshold)
|
|
73
|
+
*/
|
|
74
|
+
findNeedsProxy(threshold = 2) {
|
|
75
|
+
const sql = `
|
|
76
|
+
SELECT * FROM message_failures
|
|
77
|
+
WHERE status = 'pending' AND retry_count >= ?
|
|
78
|
+
ORDER BY created_at ASC
|
|
79
|
+
`;
|
|
80
|
+
return this.db.prepare(sql).all(threshold);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Increment retry count
|
|
84
|
+
*/
|
|
85
|
+
incrementRetry(id) {
|
|
86
|
+
const now = new Date().toISOString();
|
|
87
|
+
this.db.prepare(`
|
|
88
|
+
UPDATE message_failures
|
|
89
|
+
SET retry_count = retry_count + 1, updated_at = ?
|
|
90
|
+
WHERE id = ?
|
|
91
|
+
`).run(now, id);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Update status
|
|
95
|
+
*/
|
|
96
|
+
updateStatus(id, status) {
|
|
97
|
+
const now = new Date().toISOString();
|
|
98
|
+
this.update(id, { status, updated_at: now });
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Mark as resolved
|
|
102
|
+
*/
|
|
103
|
+
markResolved(id) {
|
|
104
|
+
this.updateStatus(id, 'resolved');
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Mark as expired
|
|
108
|
+
*/
|
|
109
|
+
markExpired(id) {
|
|
110
|
+
this.updateStatus(id, 'expired');
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Clean up old records (older than specified hours)
|
|
114
|
+
*/
|
|
115
|
+
cleanupOld(hours = 24) {
|
|
116
|
+
const sql = `
|
|
117
|
+
DELETE FROM message_failures
|
|
118
|
+
WHERE datetime(created_at) < datetime('now', '-' || ? || ' hours')
|
|
119
|
+
`;
|
|
120
|
+
const result = this.db.prepare(sql).run(hours);
|
|
121
|
+
return result.changes;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get statistics
|
|
125
|
+
*/
|
|
126
|
+
getStats() {
|
|
127
|
+
const sql = `
|
|
128
|
+
SELECT
|
|
129
|
+
COUNT(CASE WHEN status = 'pending' THEN 1 END) as pending,
|
|
130
|
+
COUNT(CASE WHEN status = 'resolved' THEN 1 END) as resolved,
|
|
131
|
+
COUNT(CASE WHEN status = 'expired' THEN 1 END) as expired,
|
|
132
|
+
COUNT(*) as total
|
|
133
|
+
FROM message_failures
|
|
134
|
+
`;
|
|
135
|
+
return this.db.prepare(sql).get();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.MessageFailureRepository = MessageFailureRepository;
|
|
139
|
+
// Singleton instance
|
|
140
|
+
exports.messageFailureRepository = new MessageFailureRepository();
|
|
141
|
+
//# sourceMappingURL=message-failure.repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-failure.repo.js","sourceRoot":"","sources":["../../../src/db/repositories/message-failure.repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Log Repository
|
|
3
|
+
*/
|
|
4
|
+
import { BaseRepository } from './base.repository';
|
|
5
|
+
import { MessageLog, MessageType } from '../../core/models/types';
|
|
6
|
+
export declare class MessageLogRepository extends BaseRepository<MessageLog> {
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Log message
|
|
10
|
+
*/
|
|
11
|
+
log(data: {
|
|
12
|
+
task_id?: string;
|
|
13
|
+
message_type: MessageType;
|
|
14
|
+
sender_id: string;
|
|
15
|
+
receiver_id: string;
|
|
16
|
+
content: Record<string, unknown>;
|
|
17
|
+
}): MessageLog;
|
|
18
|
+
/**
|
|
19
|
+
* Find by task
|
|
20
|
+
*/
|
|
21
|
+
findByTask(taskId: string): MessageLog[];
|
|
22
|
+
/**
|
|
23
|
+
* Find by sender
|
|
24
|
+
*/
|
|
25
|
+
findBySender(senderId: string): MessageLog[];
|
|
26
|
+
/**
|
|
27
|
+
* Find by receiver
|
|
28
|
+
*/
|
|
29
|
+
findByReceiver(receiverId: string): MessageLog[];
|
|
30
|
+
/**
|
|
31
|
+
* Get latest message for task
|
|
32
|
+
*/
|
|
33
|
+
getLatestMessage(taskId: string, messageType?: MessageType): MessageLog | undefined;
|
|
34
|
+
}
|
|
35
|
+
export declare const messageLogRepository: MessageLogRepository;
|
|
36
|
+
//# sourceMappingURL=message-log.repo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-log.repo.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/message-log.repo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGlE,qBAAa,oBAAqB,SAAQ,cAAc,CAAC,UAAU,CAAC;;IAKlE;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,WAAW,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,GAAG,UAAU;IAiBd;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE;IAIxC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAI5C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE;IAIhD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS;CAapF;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Message Log Repository
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.messageLogRepository = exports.MessageLogRepository = void 0;
|
|
7
|
+
const base_repository_1 = require("./base.repository");
|
|
8
|
+
const utils_1 = require("../../core/utils");
|
|
9
|
+
class MessageLogRepository extends base_repository_1.BaseRepository {
|
|
10
|
+
constructor() {
|
|
11
|
+
super('message_logs', 'id');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Log message
|
|
15
|
+
*/
|
|
16
|
+
log(data) {
|
|
17
|
+
const id = (0, utils_1.generateMessageId)();
|
|
18
|
+
const now = new Date().toISOString();
|
|
19
|
+
this.insert({
|
|
20
|
+
id,
|
|
21
|
+
task_id: data.task_id || null,
|
|
22
|
+
message_type: data.message_type,
|
|
23
|
+
sender_id: data.sender_id,
|
|
24
|
+
receiver_id: data.receiver_id,
|
|
25
|
+
content: (0, utils_1.safeJsonStringify)(data.content),
|
|
26
|
+
created_at: now
|
|
27
|
+
});
|
|
28
|
+
return this.findById(id);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Find by task
|
|
32
|
+
*/
|
|
33
|
+
findByTask(taskId) {
|
|
34
|
+
return this.findWhere({ task_id: taskId });
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Find by sender
|
|
38
|
+
*/
|
|
39
|
+
findBySender(senderId) {
|
|
40
|
+
return this.findWhere({ sender_id: senderId });
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Find by receiver
|
|
44
|
+
*/
|
|
45
|
+
findByReceiver(receiverId) {
|
|
46
|
+
return this.findWhere({ receiver_id: receiverId });
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get latest message for task
|
|
50
|
+
*/
|
|
51
|
+
getLatestMessage(taskId, messageType) {
|
|
52
|
+
let sql = `SELECT * FROM message_logs WHERE task_id = ?`;
|
|
53
|
+
const params = [taskId];
|
|
54
|
+
if (messageType) {
|
|
55
|
+
sql += ` AND message_type = ?`;
|
|
56
|
+
params.push(messageType);
|
|
57
|
+
}
|
|
58
|
+
sql += ` ORDER BY created_at DESC LIMIT 1`;
|
|
59
|
+
return this.db.prepare(sql).get(...params);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.MessageLogRepository = MessageLogRepository;
|
|
63
|
+
exports.messageLogRepository = new MessageLogRepository();
|
|
64
|
+
//# sourceMappingURL=message-log.repo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-log.repo.js","sourceRoot":"","sources":["../../../src/db/repositories/message-log.repo.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAAmD;AAEnD,4CAAwE;AAExE,MAAa,oBAAqB,SAAQ,gCAA0B;IAClE;QACE,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAMH;QACC,MAAM,EAAE,GAAG,IAAA,yBAAiB,GAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC;YACV,EAAE;YACF,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAA,yBAAiB,EAAC,IAAI,CAAC,OAAO,CAAC;YACxC,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAgB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAc,EAAE,WAAyB;QACxD,IAAI,GAAG,GAAG,8CAA8C,CAAC;QACzD,MAAM,MAAM,GAAa,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,IAAI,uBAAuB,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;QAED,GAAG,IAAI,mCAAmC,CAAC;QAE3C,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAA2B,CAAC;IACvE,CAAC;CACF;AApED,oDAoEC;AAEY,QAAA,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Node Repository
|
|
3
|
+
*/
|
|
4
|
+
import { BaseRepository } from './base.repository';
|
|
5
|
+
import { TaskNode, NodeStatus } from '../../core/models/types';
|
|
6
|
+
export declare class TaskNodeRepository extends BaseRepository<TaskNode> {
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Create node
|
|
10
|
+
*/
|
|
11
|
+
create(data: {
|
|
12
|
+
id: string;
|
|
13
|
+
task_id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
agent_id: string;
|
|
16
|
+
reviewer_id?: string;
|
|
17
|
+
sequence: number;
|
|
18
|
+
timeout?: number;
|
|
19
|
+
}): TaskNode;
|
|
20
|
+
/**
|
|
21
|
+
* Update node status
|
|
22
|
+
*/
|
|
23
|
+
updateStatus(id: string, status: NodeStatus): void;
|
|
24
|
+
/**
|
|
25
|
+
* Update node (including rework issues)
|
|
26
|
+
*/
|
|
27
|
+
updateNode(id: string, data: {
|
|
28
|
+
status?: NodeStatus;
|
|
29
|
+
review_comment?: string;
|
|
30
|
+
issues?: string[];
|
|
31
|
+
reviewer_id?: string;
|
|
32
|
+
timeout?: number;
|
|
33
|
+
extend_timeout?: number;
|
|
34
|
+
}): void;
|
|
35
|
+
/**
|
|
36
|
+
* Add rework record
|
|
37
|
+
*/
|
|
38
|
+
addReworkRecord(id: string, issues: string[], reviewerId: string): number;
|
|
39
|
+
/**
|
|
40
|
+
* Add failure record
|
|
41
|
+
*/
|
|
42
|
+
addFailureRecord(id: string, reason: string): number;
|
|
43
|
+
/**
|
|
44
|
+
* Find by task
|
|
45
|
+
*/
|
|
46
|
+
findByTask(taskId: string): TaskNode[];
|
|
47
|
+
/**
|
|
48
|
+
* Find by task and sequence greater than
|
|
49
|
+
*/
|
|
50
|
+
findByTaskAndSequenceGt(taskId: string, sequence: number): TaskNode[];
|
|
51
|
+
/**
|
|
52
|
+
* Find by task and status
|
|
53
|
+
*/
|
|
54
|
+
findByTaskAndStatus(taskId: string, status: NodeStatus): TaskNode[];
|
|
55
|
+
/**
|
|
56
|
+
* Get next pending node for task
|
|
57
|
+
*/
|
|
58
|
+
getNextPendingNode(taskId: string): TaskNode | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Get rework count
|
|
61
|
+
*/
|
|
62
|
+
getReworkCount(id: string): number;
|
|
63
|
+
/**
|
|
64
|
+
* Get failure count
|
|
65
|
+
*/
|
|
66
|
+
getFailureCount(id: string): number;
|
|
67
|
+
/**
|
|
68
|
+
* Find by status
|
|
69
|
+
*/
|
|
70
|
+
findByStatus(status: NodeStatus): TaskNode[];
|
|
71
|
+
/**
|
|
72
|
+
* Find by agent and status
|
|
73
|
+
*/
|
|
74
|
+
findByAgentAndStatus(agentId: string, status: NodeStatus): TaskNode[];
|
|
75
|
+
/**
|
|
76
|
+
* Update executor's heartbeat
|
|
77
|
+
* Called when executor is actively working on a node
|
|
78
|
+
*/
|
|
79
|
+
updateHeartbeat(nodeId: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* Update reviewer's heartbeat
|
|
82
|
+
* Called when reviewer is actively reviewing a node
|
|
83
|
+
*/
|
|
84
|
+
updateReviewHeartbeat(nodeId: string, reviewerId: string): void;
|
|
85
|
+
/**
|
|
86
|
+
* Find stalled execution nodes (executor timeout)
|
|
87
|
+
* Returns nodes where executor hasn't updated heartbeat for a while
|
|
88
|
+
* @param timeoutMinutes - Timeout threshold in minutes (default: 10)
|
|
89
|
+
*/
|
|
90
|
+
findStalledExecutionNodes(timeoutMinutes?: number): TaskNode[];
|
|
91
|
+
/**
|
|
92
|
+
* Find stalled review nodes (reviewer timeout)
|
|
93
|
+
* Returns nodes where reviewer hasn't updated heartbeat for a while
|
|
94
|
+
* @param timeoutMinutes - Timeout threshold in minutes (default: 10)
|
|
95
|
+
*/
|
|
96
|
+
findStalledReviewNodes(timeoutMinutes?: number): TaskNode[];
|
|
97
|
+
/**
|
|
98
|
+
* Get nodes with heartbeat status
|
|
99
|
+
* For debugging and monitoring
|
|
100
|
+
*/
|
|
101
|
+
getNodesWithHeartbeatStatus(taskId?: string): Array<TaskNode & {
|
|
102
|
+
heartbeat_age_minutes: number | null;
|
|
103
|
+
review_heartbeat_age_minutes: number | null;
|
|
104
|
+
}>;
|
|
105
|
+
}
|
|
106
|
+
export declare const taskNodeRepository: TaskNodeRepository;
|
|
107
|
+
//# sourceMappingURL=node.repo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.repo.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/node.repo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAA+B,MAAM,yBAAyB,CAAC;AAG5F,qBAAa,kBAAmB,SAAQ,cAAc,CAAC,QAAQ,CAAC;;IAK9D;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,QAAQ;IAqBZ;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAgBlD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAC3B,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,IAAI;IAmDR;;OAEG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAmBzE;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAkBpD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAKtC;;OAEG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAKrE;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,QAAQ,EAAE;IAInE;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAKxD;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAOlC;;OAEG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAOnC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,EAAE;IAI5C;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,QAAQ,EAAE;IAQrE;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrC;;;OAGG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAS/D;;;;OAIG;IACH,yBAAyB,CAAC,cAAc,GAAE,MAAW,GAAG,QAAQ,EAAE;IAWlE;;;;OAIG;IACH,sBAAsB,CAAC,cAAc,GAAE,MAAW,GAAG,QAAQ,EAAE;IAW/D;;;OAGG;IACH,2BAA2B,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG;QAC7D,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7C,CAAC;CA+BH;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|