pixivflow 2.12.2 → 2.13.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 +12 -4
- package/dist/commands/DoctorCommand.d.ts +20 -0
- package/dist/commands/DoctorCommand.d.ts.map +1 -0
- package/dist/commands/DoctorCommand.js +107 -0
- package/dist/commands/DoctorCommand.js.map +1 -0
- package/dist/commands/ReconcileCommand.d.ts +24 -0
- package/dist/commands/ReconcileCommand.d.ts.map +1 -0
- package/dist/commands/ReconcileCommand.js +70 -0
- package/dist/commands/ReconcileCommand.js.map +1 -0
- package/dist/commands/SchedulerCommand.d.ts.map +1 -1
- package/dist/commands/SchedulerCommand.js +5 -0
- package/dist/commands/SchedulerCommand.js.map +1 -1
- package/dist/commands/SchedulerRunOnceCommand.d.ts.map +1 -1
- package/dist/commands/SchedulerRunOnceCommand.js +6 -0
- package/dist/commands/SchedulerRunOnceCommand.js.map +1 -1
- package/dist/commands/index.d.ts +3 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +7 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/scheduler-runtime.d.ts +10 -1
- package/dist/commands/scheduler-runtime.d.ts.map +1 -1
- package/dist/commands/scheduler-runtime.js +169 -47
- package/dist/commands/scheduler-runtime.js.map +1 -1
- package/dist/config/types.d.ts +10 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/delivery/DeliveryAck.d.ts +70 -0
- package/dist/delivery/DeliveryAck.d.ts.map +1 -0
- package/dist/delivery/DeliveryAck.js +72 -0
- package/dist/delivery/DeliveryAck.js.map +1 -0
- package/dist/delivery/DeliveryDispatcher.js +1 -1
- package/dist/delivery/DeliveryDispatcher.js.map +1 -1
- package/dist/delivery/DeliveryService.d.ts +74 -0
- package/dist/delivery/DeliveryService.d.ts.map +1 -0
- package/dist/delivery/DeliveryService.js +207 -0
- package/dist/delivery/DeliveryService.js.map +1 -0
- package/dist/delivery/HttpMultipartDelivery.d.ts +10 -1
- package/dist/delivery/HttpMultipartDelivery.d.ts.map +1 -1
- package/dist/delivery/HttpMultipartDelivery.js +40 -65
- package/dist/delivery/HttpMultipartDelivery.js.map +1 -1
- package/dist/delivery/LegacyOutboxMigration.d.ts +21 -0
- package/dist/delivery/LegacyOutboxMigration.d.ts.map +1 -0
- package/dist/delivery/LegacyOutboxMigration.js +125 -0
- package/dist/delivery/LegacyOutboxMigration.js.map +1 -0
- package/dist/delivery/OutboxWorker.d.ts +69 -0
- package/dist/delivery/OutboxWorker.d.ts.map +1 -0
- package/dist/delivery/OutboxWorker.js +194 -0
- package/dist/delivery/OutboxWorker.js.map +1 -0
- package/dist/delivery/types.d.ts +11 -0
- package/dist/delivery/types.d.ts.map +1 -1
- package/dist/download/DownloadManager.d.ts +17 -12
- package/dist/download/DownloadManager.d.ts.map +1 -1
- package/dist/download/DownloadManager.js +31 -53
- package/dist/download/DownloadManager.js.map +1 -1
- package/dist/download/NovelDownloader.d.ts +3 -1
- package/dist/download/NovelDownloader.d.ts.map +1 -1
- package/dist/download/NovelDownloader.js +30 -2
- package/dist/download/NovelDownloader.js.map +1 -1
- package/dist/download/handlers/IllustrationTargetHandler.d.ts +18 -8
- package/dist/download/handlers/IllustrationTargetHandler.d.ts.map +1 -1
- package/dist/download/handlers/IllustrationTargetHandler.js +100 -74
- package/dist/download/handlers/IllustrationTargetHandler.js.map +1 -1
- package/dist/download/handlers/NovelTargetHandler.d.ts +8 -8
- package/dist/download/handlers/NovelTargetHandler.d.ts.map +1 -1
- package/dist/download/handlers/NovelTargetHandler.js +64 -83
- package/dist/download/handlers/NovelTargetHandler.js.map +1 -1
- package/dist/download/plan/DownloadPlanner.d.ts +6 -1
- package/dist/download/plan/DownloadPlanner.d.ts.map +1 -1
- package/dist/download/plan/DownloadPlanner.js +28 -5
- package/dist/download/plan/DownloadPlanner.js.map +1 -1
- package/dist/notification/NotificationPolicy.d.ts +38 -0
- package/dist/notification/NotificationPolicy.d.ts.map +1 -0
- package/dist/notification/NotificationPolicy.js +89 -0
- package/dist/notification/NotificationPolicy.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/pixiv/PixivClient.d.ts +4 -0
- package/dist/pixiv/PixivClient.d.ts.map +1 -1
- package/dist/pixiv/PixivClient.js +15 -2
- package/dist/pixiv/PixivClient.js.map +1 -1
- package/dist/pixiv/RateLimitCoordinator.d.ts +30 -0
- package/dist/pixiv/RateLimitCoordinator.d.ts.map +1 -0
- package/dist/pixiv/RateLimitCoordinator.js +66 -0
- package/dist/pixiv/RateLimitCoordinator.js.map +1 -0
- package/dist/pixiv/client/PixivApiCore.d.ts +5 -0
- package/dist/pixiv/client/PixivApiCore.d.ts.map +1 -1
- package/dist/pixiv/client/PixivApiCore.js +31 -9
- package/dist/pixiv/client/PixivApiCore.js.map +1 -1
- package/dist/scheduler/ScheduleTriggerServer.d.ts +7 -0
- package/dist/scheduler/ScheduleTriggerServer.d.ts.map +1 -1
- package/dist/scheduler/ScheduleTriggerServer.js +17 -0
- package/dist/scheduler/ScheduleTriggerServer.js.map +1 -1
- package/dist/scheduler/SlotCoordinator.d.ts +15 -0
- package/dist/scheduler/SlotCoordinator.d.ts.map +1 -1
- package/dist/scheduler/SlotCoordinator.js +74 -0
- package/dist/scheduler/SlotCoordinator.js.map +1 -1
- package/dist/scheduler/SlotStateMachine.d.ts +32 -0
- package/dist/scheduler/SlotStateMachine.d.ts.map +1 -0
- package/dist/scheduler/SlotStateMachine.js +65 -0
- package/dist/scheduler/SlotStateMachine.js.map +1 -0
- package/dist/scheduler/TargetOutcome.d.ts +63 -0
- package/dist/scheduler/TargetOutcome.d.ts.map +1 -0
- package/dist/scheduler/TargetOutcome.js +28 -0
- package/dist/scheduler/TargetOutcome.js.map +1 -0
- package/dist/storage/Database.d.ts +16 -0
- package/dist/storage/Database.d.ts.map +1 -1
- package/dist/storage/Database.js +29 -0
- package/dist/storage/Database.js.map +1 -1
- package/dist/storage/DatabaseMigration.d.ts.map +1 -1
- package/dist/storage/DatabaseMigration.js +66 -0
- package/dist/storage/DatabaseMigration.js.map +1 -1
- package/dist/storage/repositories/DeliveryRepository.d.ts +73 -0
- package/dist/storage/repositories/DeliveryRepository.d.ts.map +1 -0
- package/dist/storage/repositories/DeliveryRepository.js +148 -0
- package/dist/storage/repositories/DeliveryRepository.js.map +1 -0
- package/dist/storage/repositories/MetadataRepository.d.ts +27 -0
- package/dist/storage/repositories/MetadataRepository.d.ts.map +1 -0
- package/dist/storage/repositories/MetadataRepository.js +58 -0
- package/dist/storage/repositories/MetadataRepository.js.map +1 -0
- package/dist/storage/repositories/OutboxRepository.d.ts +70 -0
- package/dist/storage/repositories/OutboxRepository.d.ts.map +1 -0
- package/dist/storage/repositories/OutboxRepository.js +187 -0
- package/dist/storage/repositories/OutboxRepository.js.map +1 -0
- package/dist/storage/repositories/SlotRepository.d.ts +26 -1
- package/dist/storage/repositories/SlotRepository.d.ts.map +1 -1
- package/dist/storage/repositories/SlotRepository.js +76 -2
- package/dist/storage/repositories/SlotRepository.js.map +1 -1
- package/dist/webui/package.json +1 -1
- package/package.json +1 -1
- package/dist/delivery/DeliveryOutbox.d.ts +0 -43
- package/dist/delivery/DeliveryOutbox.d.ts.map +0 -1
- package/dist/delivery/DeliveryOutbox.js +0 -293
- package/dist/delivery/DeliveryOutbox.js.map +0 -1
package/README.md
CHANGED
|
@@ -151,9 +151,15 @@ pixivflow scheduler # 按 cron 配置长期挂机自动收集
|
|
|
151
151
|
|
|
152
152
|
`headers` 和 `url` 里可用 `${环境变量名}` 引用环境变量(Token 别写死进配置)。
|
|
153
153
|
|
|
154
|
-
|
|
155
|
-
`
|
|
156
|
-
|
|
154
|
+
投递是**事务发件箱(SQLite outbox)**式的,at-least-once 执行、effectively-once
|
|
155
|
+
可见效果:每个外部副作用(一次内容投递、一条通知)在 `outbox` 表落一行,带幂等键和
|
|
156
|
+
行级租约,独立 worker 立即泵送、指数退避重试(默认 5 分钟起步、最长 6 小时),超过
|
|
157
|
+
`maxAttempts` 进 dead 状态并在投递账记 `failed`。进程崩溃 / 机器挂起后重启,残留的
|
|
158
|
+
`processing` 租约过期即被新进程接管,重试同一个幂等意图——下游按
|
|
159
|
+
`idempotent_replay`(同键,ACK 丢失重试)或 `duplicate_existing`(历史重复)收敛,
|
|
160
|
+
频道里仍然只有一条消息。旧版文件型 `delivery-outbox/*.json` 清单在启动时自动一次性
|
|
161
|
+
迁移进 SQLite,迁移幂等。「今天没有可投稿内容」这类通知与内容投递走同一张表、独立泵送,
|
|
162
|
+
审核端暂时挂掉不会互相阻塞。
|
|
157
163
|
|
|
158
164
|
运维通知可直接把 `notificationUrl` 指向 [Apprise API](docs/APPRISE.md),由 Apprise 统一发送
|
|
159
165
|
Email、Telegram、Discord、ntfy 等渠道;PixivFlow 不实现这些通知协议。
|
|
@@ -174,6 +180,8 @@ Email、Telegram、Discord、ntfy 等渠道;PixivFlow 不实现这些通知协
|
|
|
174
180
|
| `pixivflow config` | 配置管理(查看 / 编辑 / 备份 / 恢复) |
|
|
175
181
|
| `pixivflow status` | 下载统计与最近记录 |
|
|
176
182
|
| `pixivflow health` | 健康检查:配置、目录可写性、连通性 |
|
|
183
|
+
| `pixivflow doctor` | 可靠性体检:卡住的 slot/outbox 租约、pending 投递、dead 行;`--repair` 收敛 |
|
|
184
|
+
| `pixivflow reconcile` | 把下游已确认的历史重复登记进投递账本(默认 dry-run,`--repair` 落库) |
|
|
177
185
|
| `pixivflow tags discover <词>` | 发现相关 Tag(Pixiv 联想 + 作品标签共现),只列候选不改配置 |
|
|
178
186
|
| `pixivflow tags apply <清单> --target <id> --select <tag1,tag2>` | 人工确认后把所选 Tag 原子写入配置并触发热重载 |
|
|
179
187
|
| `pixivflow topic resolve <主题>` | 查看自动推导出的相关 Tag 空间(`--type illustration\|novel`、`--refresh`) |
|
|
@@ -221,4 +229,4 @@ Bug 与功能建议请提交到
|
|
|
221
229
|
|
|
222
230
|
## 许可证
|
|
223
231
|
|
|
224
|
-
[MIT](LICENSE)
|
|
232
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor: cold-start / crash / suspend consistency diagnostics for the
|
|
3
|
+
* reliability subsystem. Read-only by default; --repair applies safe,
|
|
4
|
+
* idempotent convergence actions. Uses only SQLite - no external services.
|
|
5
|
+
*/
|
|
6
|
+
import { BaseCommand } from './Command';
|
|
7
|
+
import { CommandCategory } from './metadata';
|
|
8
|
+
import { CommandArgs, CommandContext, CommandResult } from './types';
|
|
9
|
+
export declare class DoctorCommand extends BaseCommand {
|
|
10
|
+
readonly name = "doctor";
|
|
11
|
+
readonly description = "Diagnose and (with --repair) converge slots, deliveries and outbox";
|
|
12
|
+
readonly metadata: {
|
|
13
|
+
category: CommandCategory;
|
|
14
|
+
requiresAuth: boolean;
|
|
15
|
+
longRunning: boolean;
|
|
16
|
+
};
|
|
17
|
+
readonly requiresToken = false;
|
|
18
|
+
execute(context: CommandContext, args: CommandArgs): Promise<CommandResult>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=DoctorCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DoctorCommand.d.ts","sourceRoot":"","sources":["../../src/commands/DoctorCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAYrE,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,wEAAwE;IAC5F,QAAQ,CAAC,QAAQ;;;;MAAoF;IACrG,QAAQ,CAAC,aAAa,SAAS;IAEzB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CA0FlF"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DoctorCommand = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Doctor: cold-start / crash / suspend consistency diagnostics for the
|
|
6
|
+
* reliability subsystem. Read-only by default; --repair applies safe,
|
|
7
|
+
* idempotent convergence actions. Uses only SQLite - no external services.
|
|
8
|
+
*/
|
|
9
|
+
const Command_1 = require("./Command");
|
|
10
|
+
const metadata_1 = require("./metadata");
|
|
11
|
+
const Database_1 = require("../storage/Database");
|
|
12
|
+
const OutboxWorker_1 = require("../delivery/OutboxWorker");
|
|
13
|
+
const DeliveryDispatcher_1 = require("../delivery/DeliveryDispatcher");
|
|
14
|
+
const LegacyOutboxMigration_1 = require("../delivery/LegacyOutboxMigration");
|
|
15
|
+
class DoctorCommand extends Command_1.BaseCommand {
|
|
16
|
+
name = 'doctor';
|
|
17
|
+
description = 'Diagnose and (with --repair) converge slots, deliveries and outbox';
|
|
18
|
+
metadata = { category: metadata_1.CommandCategory.MONITORING, requiresAuth: true, longRunning: false };
|
|
19
|
+
requiresToken = false;
|
|
20
|
+
async execute(context, args) {
|
|
21
|
+
const repair = Boolean(args.options.repair);
|
|
22
|
+
const dbPath = context.config.storage?.databasePath ?? './data/pixiv-downloader.db';
|
|
23
|
+
const findings = [];
|
|
24
|
+
const fixed = [];
|
|
25
|
+
const db = new Database_1.Database(dbPath);
|
|
26
|
+
try {
|
|
27
|
+
db.migrate();
|
|
28
|
+
findings.push({ level: 'info', code: 'schema', message: 'Schema migrations applied / current' });
|
|
29
|
+
const mig = (0, LegacyOutboxMigration_1.migrateLegacyOutbox)(db);
|
|
30
|
+
if (mig.imported || mig.delivered || mig.failed) {
|
|
31
|
+
findings.push({
|
|
32
|
+
level: mig.failed ? 'warn' : 'info',
|
|
33
|
+
code: 'legacy-outbox',
|
|
34
|
+
message: 'legacy manifests scanned=' + mig.scanned + ' imported=' + mig.imported + ' delivered=' + mig.delivered + ' failed=' + mig.failed,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const deliveries = db.deliveries.countByStatus();
|
|
38
|
+
const pendingDelivery = deliveries.pending ?? 0;
|
|
39
|
+
if (pendingDelivery > 0) {
|
|
40
|
+
findings.push({ level: 'warn', code: 'deliveries-pending', message: pendingDelivery + ' delivery intent(s) not yet confirmed by the downstream' });
|
|
41
|
+
}
|
|
42
|
+
if (deliveries.failed) {
|
|
43
|
+
findings.push({ level: 'warn', code: 'deliveries-failed', message: deliveries.failed + ' delivery intent(s) marked failed' });
|
|
44
|
+
}
|
|
45
|
+
const counts = db.outbox.counts();
|
|
46
|
+
if (counts.dead > 0) {
|
|
47
|
+
findings.push({ level: 'critical', code: 'outbox-dead', message: counts.dead + ' outbox row(s) dead after exhausting retries (manual reconciliation required)' });
|
|
48
|
+
}
|
|
49
|
+
const stale = db.outbox.staleProcessing();
|
|
50
|
+
if (stale.length > 0) {
|
|
51
|
+
findings.push({ level: repair ? 'info' : 'warn', code: 'outbox-stale-processing', message: stale.length + ' row(s) stuck in processing from a crashed/killed run' });
|
|
52
|
+
if (repair) {
|
|
53
|
+
for (const row of stale)
|
|
54
|
+
db.outbox.release(row.id);
|
|
55
|
+
fixed.push('released ' + stale.length + ' stale processing row(s) back for retry');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const staleLeases = db.slots.slotsWithStaleLease();
|
|
59
|
+
if (staleLeases.length > 0) {
|
|
60
|
+
findings.push({ level: repair ? 'info' : 'warn', code: 'slot-stale-lease', message: staleLeases.length + ' slot(s) carry an expired lease from a crashed worker: ' + staleLeases.slice(0, 5).join(', ') });
|
|
61
|
+
if (repair) {
|
|
62
|
+
for (const id of staleLeases)
|
|
63
|
+
db.slots.releaseSlotLease(id, 'doctor-repair');
|
|
64
|
+
fixed.push('released ' + staleLeases.length + ' stale slot lease(s)');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
let unfinishedCells = 0;
|
|
68
|
+
for (const slot of db.slots.getRecentSlots(50)) {
|
|
69
|
+
if (slot.status === 'running' || slot.status === 'failed') {
|
|
70
|
+
for (const cell of db.slots.getCells(slot.id)) {
|
|
71
|
+
if (cell.status === 'delivery_pending')
|
|
72
|
+
unfinishedCells++;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (unfinishedCells > 0) {
|
|
77
|
+
findings.push({ level: 'info', code: 'cells-delivery-pending', message: unfinishedCells + ' cell(s) waiting on durable delivery confirmation (outbox converges them)' });
|
|
78
|
+
}
|
|
79
|
+
if (repair) {
|
|
80
|
+
const worker = new OutboxWorker_1.OutboxWorker(db, new DeliveryDispatcher_1.DeliveryDispatcher(context.config.delivery));
|
|
81
|
+
const res = await worker.drainOnce(20);
|
|
82
|
+
if (res.done > 0)
|
|
83
|
+
fixed.push('outbox pump delivered/confirmed ' + res.done + ' row(s)');
|
|
84
|
+
if (res.dead > 0)
|
|
85
|
+
fixed.push('outbox pump marked ' + res.dead + ' row(s) dead');
|
|
86
|
+
}
|
|
87
|
+
const critical = findings.filter((f) => f.level === 'critical');
|
|
88
|
+
const warns = findings.filter((f) => f.level === 'warn');
|
|
89
|
+
for (const f of findings) {
|
|
90
|
+
const icon = f.level === 'critical' ? 'CRIT' : f.level === 'warn' ? 'WARN' : 'OK';
|
|
91
|
+
context.logger.info('[' + icon + '] [' + f.code + '] ' + f.message);
|
|
92
|
+
}
|
|
93
|
+
for (const x of fixed)
|
|
94
|
+
context.logger.info('repaired: ' + x);
|
|
95
|
+
return this.success(critical.length
|
|
96
|
+
? 'doctor found ' + critical.length + ' critical, ' + warns.length + ' warning(s)'
|
|
97
|
+
: warns.length
|
|
98
|
+
? 'doctor found ' + warns.length + ' warning(s)'
|
|
99
|
+
: 'doctor: all reliability state healthy', { findings, repaired: fixed, deliveryCounts: deliveries, outboxCounts: counts });
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
db.close();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.DoctorCommand = DoctorCommand;
|
|
107
|
+
//# sourceMappingURL=DoctorCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DoctorCommand.js","sourceRoot":"","sources":["../../src/commands/DoctorCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reconcile: accept a downstream-confirmed historical duplicate as fact.
|
|
3
|
+
*
|
|
4
|
+
* This is the ONLY way a post-lock historical duplicate enters the ledger.
|
|
5
|
+
* Default mode is a dry-run (prints what would change); --repair applies it.
|
|
6
|
+
*
|
|
7
|
+
* pixivflow reconcile --target bot1 --type illustration --pixiv-id 123 \
|
|
8
|
+
* --remote-id 987 --reason "found in channel history" [--repair]
|
|
9
|
+
*/
|
|
10
|
+
import { BaseCommand } from './Command';
|
|
11
|
+
import { CommandCategory } from './metadata';
|
|
12
|
+
import { CommandArgs, CommandContext, CommandResult } from './types';
|
|
13
|
+
export declare class ReconcileCommand extends BaseCommand {
|
|
14
|
+
readonly name = "reconcile";
|
|
15
|
+
readonly description = "Reconcile a downstream-confirmed historical duplicate (dry-run unless --repair)";
|
|
16
|
+
readonly metadata: {
|
|
17
|
+
category: CommandCategory;
|
|
18
|
+
requiresAuth: boolean;
|
|
19
|
+
longRunning: boolean;
|
|
20
|
+
};
|
|
21
|
+
readonly requiresToken = false;
|
|
22
|
+
execute(context: CommandContext, args: CommandArgs): Promise<CommandResult>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ReconcileCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReconcileCommand.d.ts","sourceRoot":"","sources":["../../src/commands/ReconcileCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIrE,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,qFAAqF;IACzG,QAAQ,CAAC,QAAQ;;;;MAAoF;IACrG,QAAQ,CAAC,aAAa,SAAS;IAEzB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAiDlF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReconcileCommand = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* reconcile: accept a downstream-confirmed historical duplicate as fact.
|
|
6
|
+
*
|
|
7
|
+
* This is the ONLY way a post-lock historical duplicate enters the ledger.
|
|
8
|
+
* Default mode is a dry-run (prints what would change); --repair applies it.
|
|
9
|
+
*
|
|
10
|
+
* pixivflow reconcile --target bot1 --type illustration --pixiv-id 123 \
|
|
11
|
+
* --remote-id 987 --reason "found in channel history" [--repair]
|
|
12
|
+
*/
|
|
13
|
+
const Command_1 = require("./Command");
|
|
14
|
+
const metadata_1 = require("./metadata");
|
|
15
|
+
const Database_1 = require("../storage/Database");
|
|
16
|
+
const DeliveryService_1 = require("../delivery/DeliveryService");
|
|
17
|
+
class ReconcileCommand extends Command_1.BaseCommand {
|
|
18
|
+
name = 'reconcile';
|
|
19
|
+
description = 'Reconcile a downstream-confirmed historical duplicate (dry-run unless --repair)';
|
|
20
|
+
metadata = { category: metadata_1.CommandCategory.MONITORING, requiresAuth: true, longRunning: false };
|
|
21
|
+
requiresToken = false;
|
|
22
|
+
async execute(context, args) {
|
|
23
|
+
const target = String(args.options.target ?? '').trim();
|
|
24
|
+
const workType = String(args.options.type ?? '').trim();
|
|
25
|
+
const pixivId = String(args.options['pixiv-id'] ?? args.options.pixivId ?? '').trim();
|
|
26
|
+
const remoteId = args.options['remote-id'] ? String(args.options['remote-id']) : undefined;
|
|
27
|
+
const reason = String(args.options.reason ?? 'manual reconciliation').trim();
|
|
28
|
+
const repair = Boolean(args.options.repair);
|
|
29
|
+
if (!target || !workType || !pixivId) {
|
|
30
|
+
return this.failure('Usage: reconcile --target <name> --type <illustration|novel> --pixiv-id <id> [--remote-id <id>] [--reason <text>] [--repair]');
|
|
31
|
+
}
|
|
32
|
+
if (workType !== 'illustration' && workType !== 'novel') {
|
|
33
|
+
return this.failure('--type must be illustration or novel');
|
|
34
|
+
}
|
|
35
|
+
const dbPath = context.config.storage?.databasePath ?? './data/pixiv-downloader.db';
|
|
36
|
+
const db = new Database_1.Database(dbPath);
|
|
37
|
+
try {
|
|
38
|
+
db.migrate();
|
|
39
|
+
const service = new DeliveryService_1.DeliveryService(db);
|
|
40
|
+
const already = service.isAlreadyDelivered(target, workType, pixivId);
|
|
41
|
+
if (already) {
|
|
42
|
+
context.logger.info('Already recorded as delivered/duplicate; nothing to reconcile', { target, workType, pixivId });
|
|
43
|
+
return this.success('already reconciled', { target, workType, pixivId, noop: true });
|
|
44
|
+
}
|
|
45
|
+
if (!repair) {
|
|
46
|
+
context.logger.info('DRY RUN (pass --repair to apply)', { target, workType, pixivId, remoteId, reason });
|
|
47
|
+
return this.success('dry-run: would record historical duplicate', { dryRun: true, target, workType, pixivId, remoteId, reason });
|
|
48
|
+
}
|
|
49
|
+
const res = service.reconcileHistoricalDuplicate({
|
|
50
|
+
deliveryTarget: target,
|
|
51
|
+
workType,
|
|
52
|
+
pixivId,
|
|
53
|
+
remoteId,
|
|
54
|
+
reason,
|
|
55
|
+
});
|
|
56
|
+
return this.success('historical duplicate reconciled into ledger', {
|
|
57
|
+
deliveryId: res.deliveryId,
|
|
58
|
+
created: res.created,
|
|
59
|
+
target,
|
|
60
|
+
workType,
|
|
61
|
+
pixivId,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
db.close();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.ReconcileCommand = ReconcileCommand;
|
|
70
|
+
//# sourceMappingURL=ReconcileCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReconcileCommand.js","sourceRoot":"","sources":["../../src/commands/ReconcileCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchedulerCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAmBrE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,oDAAoD;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAS;IACnC,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SchedulerCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAmBrE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,oDAAoD;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAS;IACnC,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAwJjF,OAAO,CAAC,uBAAuB;IAQ/B,QAAQ,IAAI,MAAM;CAYnB"}
|
|
@@ -58,6 +58,10 @@ class SchedulerCommand extends Command_1.BaseCommand {
|
|
|
58
58
|
},
|
|
59
59
|
});
|
|
60
60
|
const status = manager.start(runtime.config);
|
|
61
|
+
// Independent outbox pump: deliveries/notifications retry promptly on a
|
|
62
|
+
// timer and resume after crash/machine-stop without waiting for the next
|
|
63
|
+
// scheduled run. It never gates Telegram/scheduler readiness.
|
|
64
|
+
runtime.startOutboxWorker();
|
|
61
65
|
// Authenticated HTTP trigger. Mounted in external mode (the external clock
|
|
62
66
|
// wakes the machine here) and, opt-in, in internal mode for manual/ops
|
|
63
67
|
// triggers. Business logic lives in runJob/SlotCoordinator; this handler
|
|
@@ -122,6 +126,7 @@ class SchedulerCommand extends Command_1.BaseCommand {
|
|
|
122
126
|
inFlight.set(key, promise);
|
|
123
127
|
return promise;
|
|
124
128
|
},
|
|
129
|
+
drainOutbox: () => runtime.drainOutbox(),
|
|
125
130
|
status: (scheduleId) => {
|
|
126
131
|
const cfg = resolveConfig();
|
|
127
132
|
const plan = findPlan(cfg, scheduleId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchedulerCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SchedulerCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchedulerRunOnceCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerRunOnceCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKrE,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,2DAA2D;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAsB;IAChD,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"SchedulerRunOnceCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerRunOnceCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKrE,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,2DAA2D;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAsB;IAChD,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA+DjF,QAAQ,IAAI,MAAM;CAiBnB"}
|
|
@@ -55,8 +55,14 @@ class SchedulerRunOnceCommand extends Command_1.BaseCommand {
|
|
|
55
55
|
// occurrence complete nor be resumed as one. Explicit replacement.
|
|
56
56
|
runtime.runJob(runtime.config, plan, { adhoc: true, triggerSource: 'manual', onlyTarget: targetFilter }), timeoutMs, () => runtime.cancelActive(`run timeout after ${timeoutMs}ms`), `plan ${plan.id}`);
|
|
57
57
|
}
|
|
58
|
+
// Flush deliveries/notifications created by this one-shot before exit.
|
|
59
|
+
// A bounded drain: durable rows survive if they cannot finish now and the
|
|
60
|
+
// scheduler daemon (or a later run-once) retries them.
|
|
61
|
+
const drained = await runtime.drainOutbox();
|
|
62
|
+
context.logger.info('Outbox drain complete', drained);
|
|
58
63
|
return this.success('Scheduled plans completed', {
|
|
59
64
|
schedules: plans.map((plan) => plan.id),
|
|
65
|
+
outbox: drained,
|
|
60
66
|
});
|
|
61
67
|
}
|
|
62
68
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchedulerRunOnceCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerRunOnceCommand.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,uCAAwC;AACxC,yCAA6C;AAE7C,sDAA0D;AAC1D,sDAAqE;AACrE,2DAA6E;AAE7E,MAAa,uBAAwB,SAAQ,qBAAW;IAC7C,IAAI,GAAG,UAAU,CAAC;IAClB,WAAW,GAAG,uDAAuD,CAAC;IACtE,OAAO,GAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACvC,QAAQ,GAAG;QAClB,QAAQ,EAAE,0BAAe,CAAC,QAAQ;QAClC,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,KAAK;KACnB,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,OAAuB,EAAE,IAAiB;QACtD,MAAM,OAAO,GAAG,MAAM,IAAA,0CAAsB,EAAC,IAAI,CAAC,OAAO,CAAC,MAA4B,CAAC,CAAC;QACxF,MAAM,YAAY,GAAI,IAAI,CAAC,OAAO,CAAC,MAA6B,EAAE,IAAI,EAAE,CAAC;QACzE,IAAI,CAAC;YACH,IAAI,KAAK,GAAG,IAAA,4BAAgB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5E,IAAI,YAAY,EAAE,CAAC;gBACjB,6CAA6C;gBAC7C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC9E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAC;oBAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;YACrD,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,YAAY;gBACV,CAAC,CAAC,kCAAkC,YAAY,OAAO;gBACvD,CAAC,CAAC,oCAAoC,EACxC,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAC5C,CAAC;YACF,oEAAoE;YACpE,uEAAuE;YACvE,uEAAuE;YACvE,8CAA8C;YAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,uCAA2B,CAAC;gBAC9D,MAAM,IAAA,kCAAc;gBAClB,oEAAoE;gBACpE,6DAA6D;gBAC7D,mEAAmE;gBACnE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,EACxG,SAAS,EACT,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,SAAS,IAAI,CAAC,EAC9D,QAAQ,IAAI,CAAC,EAAE,EAAE,CAClB,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE;gBAC/C,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"SchedulerRunOnceCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerRunOnceCommand.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ import { MigrateConfigCommand } from './MigrateConfigCommand';
|
|
|
14
14
|
import { NormalizeCommand } from './NormalizeCommand';
|
|
15
15
|
import { WebUICommand } from './WebUICommand';
|
|
16
16
|
import { HealthCommand } from './HealthCommand';
|
|
17
|
+
import { DoctorCommand } from './DoctorCommand';
|
|
18
|
+
import { ReconcileCommand } from './ReconcileCommand';
|
|
17
19
|
import { StatusCommand } from './StatusCommand';
|
|
18
20
|
import { LogsCommand } from './LogsCommand';
|
|
19
21
|
import { ConfigCommand } from './ConfigCommand';
|
|
@@ -32,5 +34,5 @@ export declare function registerAllCommands(registry: CommandRegistry): void;
|
|
|
32
34
|
/**
|
|
33
35
|
* Export all command classes
|
|
34
36
|
*/
|
|
35
|
-
export { HelpCommand, LoginCommand, LoginHeadlessCommand, RefreshCommand, DownloadCommand, RandomDownloadCommand, SchedulerCommand, SchedulerRunOnceCommand, MigrateConfigCommand, NormalizeCommand, WebUICommand, HealthCommand, StatusCommand, LogsCommand, ConfigCommand, BackupCommand, MaintainCommand, MonitorCommand, SetupCommand, DirsCommand, VersionCommand, TagsCommand, TopicCommand, };
|
|
37
|
+
export { HelpCommand, LoginCommand, LoginHeadlessCommand, RefreshCommand, DownloadCommand, RandomDownloadCommand, SchedulerCommand, SchedulerRunOnceCommand, MigrateConfigCommand, NormalizeCommand, WebUICommand, HealthCommand, DoctorCommand, ReconcileCommand, StatusCommand, LogsCommand, ConfigCommand, BackupCommand, MaintainCommand, MonitorCommand, SetupCommand, DirsCommand, VersionCommand, TagsCommand, TopicCommand, };
|
|
36
38
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CA0BnE;AAED;;GAEG;AACH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,GACb,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Command exports and registration
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TopicCommand = exports.TagsCommand = exports.VersionCommand = exports.DirsCommand = exports.SetupCommand = exports.MonitorCommand = exports.MaintainCommand = exports.BackupCommand = exports.ConfigCommand = exports.LogsCommand = exports.StatusCommand = exports.HealthCommand = exports.WebUICommand = exports.NormalizeCommand = exports.MigrateConfigCommand = exports.SchedulerRunOnceCommand = exports.SchedulerCommand = exports.RandomDownloadCommand = exports.DownloadCommand = exports.RefreshCommand = exports.LoginHeadlessCommand = exports.LoginCommand = exports.HelpCommand = void 0;
|
|
6
|
+
exports.TopicCommand = exports.TagsCommand = exports.VersionCommand = exports.DirsCommand = exports.SetupCommand = exports.MonitorCommand = exports.MaintainCommand = exports.BackupCommand = exports.ConfigCommand = exports.LogsCommand = exports.StatusCommand = exports.ReconcileCommand = exports.DoctorCommand = exports.HealthCommand = exports.WebUICommand = exports.NormalizeCommand = exports.MigrateConfigCommand = exports.SchedulerRunOnceCommand = exports.SchedulerCommand = exports.RandomDownloadCommand = exports.DownloadCommand = exports.RefreshCommand = exports.LoginHeadlessCommand = exports.LoginCommand = exports.HelpCommand = void 0;
|
|
7
7
|
exports.registerAllCommands = registerAllCommands;
|
|
8
8
|
const HelpCommand_1 = require("./HelpCommand");
|
|
9
9
|
Object.defineProperty(exports, "HelpCommand", { enumerable: true, get: function () { return HelpCommand_1.HelpCommand; } });
|
|
@@ -29,6 +29,10 @@ const WebUICommand_1 = require("./WebUICommand");
|
|
|
29
29
|
Object.defineProperty(exports, "WebUICommand", { enumerable: true, get: function () { return WebUICommand_1.WebUICommand; } });
|
|
30
30
|
const HealthCommand_1 = require("./HealthCommand");
|
|
31
31
|
Object.defineProperty(exports, "HealthCommand", { enumerable: true, get: function () { return HealthCommand_1.HealthCommand; } });
|
|
32
|
+
const DoctorCommand_1 = require("./DoctorCommand");
|
|
33
|
+
Object.defineProperty(exports, "DoctorCommand", { enumerable: true, get: function () { return DoctorCommand_1.DoctorCommand; } });
|
|
34
|
+
const ReconcileCommand_1 = require("./ReconcileCommand");
|
|
35
|
+
Object.defineProperty(exports, "ReconcileCommand", { enumerable: true, get: function () { return ReconcileCommand_1.ReconcileCommand; } });
|
|
32
36
|
const StatusCommand_1 = require("./StatusCommand");
|
|
33
37
|
Object.defineProperty(exports, "StatusCommand", { enumerable: true, get: function () { return StatusCommand_1.StatusCommand; } });
|
|
34
38
|
const LogsCommand_1 = require("./LogsCommand");
|
|
@@ -67,6 +71,8 @@ function registerAllCommands(registry) {
|
|
|
67
71
|
registry.register(new NormalizeCommand_1.NormalizeCommand());
|
|
68
72
|
registry.register(new WebUICommand_1.WebUICommand());
|
|
69
73
|
registry.register(new HealthCommand_1.HealthCommand());
|
|
74
|
+
registry.register(new DoctorCommand_1.DoctorCommand());
|
|
75
|
+
registry.register(new ReconcileCommand_1.ReconcileCommand());
|
|
70
76
|
registry.register(new StatusCommand_1.StatusCommand());
|
|
71
77
|
registry.register(new LogsCommand_1.LogsCommand());
|
|
72
78
|
registry.register(new ConfigCommand_1.ConfigCommand());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,10 +27,19 @@ export interface SchedulerRuntime {
|
|
|
27
27
|
cancelActive(reason: string): void;
|
|
28
28
|
/** Notify the affected review group after a failed scheduled run. */
|
|
29
29
|
notifyScheduleFailure(snapshot: StandaloneConfig, schedule: ScheduleConfig, failure: JobFailure): Promise<void>;
|
|
30
|
+
/** Start the independent outbox pump (long-running daemon). */
|
|
31
|
+
startOutboxWorker(): void;
|
|
32
|
+
/** Drain due outbox rows once (run-once / watchdog wake). */
|
|
33
|
+
drainOutbox(): Promise<{
|
|
34
|
+
processed: number;
|
|
35
|
+
done: number;
|
|
36
|
+
retried: number;
|
|
37
|
+
dead: number;
|
|
38
|
+
}>;
|
|
30
39
|
/** Stop token maintenance, cancel any in-flight download and close the DB. */
|
|
31
40
|
close(): void;
|
|
32
41
|
}
|
|
33
|
-
export declare function notifyScheduleFailure(config: StandaloneConfig,
|
|
42
|
+
export declare function notifyScheduleFailure(config: StandaloneConfig, database: Database, schedule: ScheduleConfig, failure: JobFailure): Promise<void>;
|
|
34
43
|
export declare function createSchedulerRuntime(configPathArg?: string): Promise<SchedulerRuntime>;
|
|
35
44
|
/**
|
|
36
45
|
* Watchdog for a single plan run (used by `run-once`; the daemon's cron runs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler-runtime.d.ts","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"scheduler-runtime.d.ts","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA6B,cAAc,EAAE,gBAAgB,EAAgB,MAAM,WAAW,CAAC;AACtG,OAAO,EAAE,QAAQ,EAA0B,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAU3E,OAAO,EAAE,kBAAkB,EAAiB,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC;IACnE,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,kDAAkD;IAClD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,qBAAqB,CACnB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,+DAA+D;IAC/D,iBAAiB,IAAI,IAAI,CAAC;IAC1B,6DAA6D;IAC7D,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3F,8EAA8E;IAC9E,KAAK,IAAI,IAAI,CAAC;CACf;AAiGD,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAiBjB;AAWD,wBAAsB,sBAAsB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqS9F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,IAAI,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAcZ"}
|