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.
Files changed (131) hide show
  1. package/README.md +12 -4
  2. package/dist/commands/DoctorCommand.d.ts +20 -0
  3. package/dist/commands/DoctorCommand.d.ts.map +1 -0
  4. package/dist/commands/DoctorCommand.js +107 -0
  5. package/dist/commands/DoctorCommand.js.map +1 -0
  6. package/dist/commands/ReconcileCommand.d.ts +24 -0
  7. package/dist/commands/ReconcileCommand.d.ts.map +1 -0
  8. package/dist/commands/ReconcileCommand.js +70 -0
  9. package/dist/commands/ReconcileCommand.js.map +1 -0
  10. package/dist/commands/SchedulerCommand.d.ts.map +1 -1
  11. package/dist/commands/SchedulerCommand.js +5 -0
  12. package/dist/commands/SchedulerCommand.js.map +1 -1
  13. package/dist/commands/SchedulerRunOnceCommand.d.ts.map +1 -1
  14. package/dist/commands/SchedulerRunOnceCommand.js +6 -0
  15. package/dist/commands/SchedulerRunOnceCommand.js.map +1 -1
  16. package/dist/commands/index.d.ts +3 -1
  17. package/dist/commands/index.d.ts.map +1 -1
  18. package/dist/commands/index.js +7 -1
  19. package/dist/commands/index.js.map +1 -1
  20. package/dist/commands/scheduler-runtime.d.ts +10 -1
  21. package/dist/commands/scheduler-runtime.d.ts.map +1 -1
  22. package/dist/commands/scheduler-runtime.js +169 -47
  23. package/dist/commands/scheduler-runtime.js.map +1 -1
  24. package/dist/config/types.d.ts +10 -1
  25. package/dist/config/types.d.ts.map +1 -1
  26. package/dist/delivery/DeliveryAck.d.ts +70 -0
  27. package/dist/delivery/DeliveryAck.d.ts.map +1 -0
  28. package/dist/delivery/DeliveryAck.js +72 -0
  29. package/dist/delivery/DeliveryAck.js.map +1 -0
  30. package/dist/delivery/DeliveryDispatcher.js +1 -1
  31. package/dist/delivery/DeliveryDispatcher.js.map +1 -1
  32. package/dist/delivery/DeliveryService.d.ts +74 -0
  33. package/dist/delivery/DeliveryService.d.ts.map +1 -0
  34. package/dist/delivery/DeliveryService.js +207 -0
  35. package/dist/delivery/DeliveryService.js.map +1 -0
  36. package/dist/delivery/HttpMultipartDelivery.d.ts +10 -1
  37. package/dist/delivery/HttpMultipartDelivery.d.ts.map +1 -1
  38. package/dist/delivery/HttpMultipartDelivery.js +40 -65
  39. package/dist/delivery/HttpMultipartDelivery.js.map +1 -1
  40. package/dist/delivery/LegacyOutboxMigration.d.ts +21 -0
  41. package/dist/delivery/LegacyOutboxMigration.d.ts.map +1 -0
  42. package/dist/delivery/LegacyOutboxMigration.js +125 -0
  43. package/dist/delivery/LegacyOutboxMigration.js.map +1 -0
  44. package/dist/delivery/OutboxWorker.d.ts +69 -0
  45. package/dist/delivery/OutboxWorker.d.ts.map +1 -0
  46. package/dist/delivery/OutboxWorker.js +194 -0
  47. package/dist/delivery/OutboxWorker.js.map +1 -0
  48. package/dist/delivery/types.d.ts +11 -0
  49. package/dist/delivery/types.d.ts.map +1 -1
  50. package/dist/download/DownloadManager.d.ts +17 -12
  51. package/dist/download/DownloadManager.d.ts.map +1 -1
  52. package/dist/download/DownloadManager.js +31 -53
  53. package/dist/download/DownloadManager.js.map +1 -1
  54. package/dist/download/NovelDownloader.d.ts +3 -1
  55. package/dist/download/NovelDownloader.d.ts.map +1 -1
  56. package/dist/download/NovelDownloader.js +30 -2
  57. package/dist/download/NovelDownloader.js.map +1 -1
  58. package/dist/download/handlers/IllustrationTargetHandler.d.ts +18 -8
  59. package/dist/download/handlers/IllustrationTargetHandler.d.ts.map +1 -1
  60. package/dist/download/handlers/IllustrationTargetHandler.js +100 -74
  61. package/dist/download/handlers/IllustrationTargetHandler.js.map +1 -1
  62. package/dist/download/handlers/NovelTargetHandler.d.ts +8 -8
  63. package/dist/download/handlers/NovelTargetHandler.d.ts.map +1 -1
  64. package/dist/download/handlers/NovelTargetHandler.js +64 -83
  65. package/dist/download/handlers/NovelTargetHandler.js.map +1 -1
  66. package/dist/download/plan/DownloadPlanner.d.ts +6 -1
  67. package/dist/download/plan/DownloadPlanner.d.ts.map +1 -1
  68. package/dist/download/plan/DownloadPlanner.js +28 -5
  69. package/dist/download/plan/DownloadPlanner.js.map +1 -1
  70. package/dist/notification/NotificationPolicy.d.ts +38 -0
  71. package/dist/notification/NotificationPolicy.d.ts.map +1 -0
  72. package/dist/notification/NotificationPolicy.js +89 -0
  73. package/dist/notification/NotificationPolicy.js.map +1 -0
  74. package/dist/package.json +1 -1
  75. package/dist/pixiv/PixivClient.d.ts +4 -0
  76. package/dist/pixiv/PixivClient.d.ts.map +1 -1
  77. package/dist/pixiv/PixivClient.js +15 -2
  78. package/dist/pixiv/PixivClient.js.map +1 -1
  79. package/dist/pixiv/RateLimitCoordinator.d.ts +30 -0
  80. package/dist/pixiv/RateLimitCoordinator.d.ts.map +1 -0
  81. package/dist/pixiv/RateLimitCoordinator.js +66 -0
  82. package/dist/pixiv/RateLimitCoordinator.js.map +1 -0
  83. package/dist/pixiv/client/PixivApiCore.d.ts +5 -0
  84. package/dist/pixiv/client/PixivApiCore.d.ts.map +1 -1
  85. package/dist/pixiv/client/PixivApiCore.js +31 -9
  86. package/dist/pixiv/client/PixivApiCore.js.map +1 -1
  87. package/dist/scheduler/ScheduleTriggerServer.d.ts +7 -0
  88. package/dist/scheduler/ScheduleTriggerServer.d.ts.map +1 -1
  89. package/dist/scheduler/ScheduleTriggerServer.js +17 -0
  90. package/dist/scheduler/ScheduleTriggerServer.js.map +1 -1
  91. package/dist/scheduler/SlotCoordinator.d.ts +15 -0
  92. package/dist/scheduler/SlotCoordinator.d.ts.map +1 -1
  93. package/dist/scheduler/SlotCoordinator.js +74 -0
  94. package/dist/scheduler/SlotCoordinator.js.map +1 -1
  95. package/dist/scheduler/SlotStateMachine.d.ts +32 -0
  96. package/dist/scheduler/SlotStateMachine.d.ts.map +1 -0
  97. package/dist/scheduler/SlotStateMachine.js +65 -0
  98. package/dist/scheduler/SlotStateMachine.js.map +1 -0
  99. package/dist/scheduler/TargetOutcome.d.ts +63 -0
  100. package/dist/scheduler/TargetOutcome.d.ts.map +1 -0
  101. package/dist/scheduler/TargetOutcome.js +28 -0
  102. package/dist/scheduler/TargetOutcome.js.map +1 -0
  103. package/dist/storage/Database.d.ts +16 -0
  104. package/dist/storage/Database.d.ts.map +1 -1
  105. package/dist/storage/Database.js +29 -0
  106. package/dist/storage/Database.js.map +1 -1
  107. package/dist/storage/DatabaseMigration.d.ts.map +1 -1
  108. package/dist/storage/DatabaseMigration.js +66 -0
  109. package/dist/storage/DatabaseMigration.js.map +1 -1
  110. package/dist/storage/repositories/DeliveryRepository.d.ts +73 -0
  111. package/dist/storage/repositories/DeliveryRepository.d.ts.map +1 -0
  112. package/dist/storage/repositories/DeliveryRepository.js +148 -0
  113. package/dist/storage/repositories/DeliveryRepository.js.map +1 -0
  114. package/dist/storage/repositories/MetadataRepository.d.ts +27 -0
  115. package/dist/storage/repositories/MetadataRepository.d.ts.map +1 -0
  116. package/dist/storage/repositories/MetadataRepository.js +58 -0
  117. package/dist/storage/repositories/MetadataRepository.js.map +1 -0
  118. package/dist/storage/repositories/OutboxRepository.d.ts +70 -0
  119. package/dist/storage/repositories/OutboxRepository.d.ts.map +1 -0
  120. package/dist/storage/repositories/OutboxRepository.js +187 -0
  121. package/dist/storage/repositories/OutboxRepository.js.map +1 -0
  122. package/dist/storage/repositories/SlotRepository.d.ts +26 -1
  123. package/dist/storage/repositories/SlotRepository.d.ts.map +1 -1
  124. package/dist/storage/repositories/SlotRepository.js +76 -2
  125. package/dist/storage/repositories/SlotRepository.js.map +1 -1
  126. package/dist/webui/package.json +1 -1
  127. package/package.json +1 -1
  128. package/dist/delivery/DeliveryOutbox.d.ts +0 -43
  129. package/dist/delivery/DeliveryOutbox.d.ts.map +0 -1
  130. package/dist/delivery/DeliveryOutbox.js +0 -293
  131. package/dist/delivery/DeliveryOutbox.js.map +0 -1
@@ -7,11 +7,43 @@
7
7
  * refetch behaves identically to a scheduled run: same config resolution,
8
8
  * same token maintenance, same target selection, same dedupe and delivery.
9
9
  */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
10
43
  Object.defineProperty(exports, "__esModule", { value: true });
11
44
  exports.notifyScheduleFailure = notifyScheduleFailure;
12
45
  exports.createSchedulerRuntime = createSchedulerRuntime;
13
46
  exports.runWithTimeout = runWithTimeout;
14
- const node_path_1 = require("node:path");
15
47
  const config_1 = require("../config");
16
48
  const Database_1 = require("../storage/Database");
17
49
  const AuthClient_1 = require("../pixiv/AuthClient");
@@ -19,10 +51,13 @@ const PixivClient_1 = require("../pixiv/PixivClient");
19
51
  const FileService_1 = require("../download/FileService");
20
52
  const DownloadManager_1 = require("../download/DownloadManager");
21
53
  const DeliveryDispatcher_1 = require("../delivery/DeliveryDispatcher");
22
- const DeliveryOutbox_1 = require("../delivery/DeliveryOutbox");
23
54
  const token_maintenance_1 = require("../utils/token-maintenance");
24
55
  const schedules_1 = require("../scheduler/schedules");
25
56
  const SlotCoordinator_1 = require("../scheduler/SlotCoordinator");
57
+ const OutboxWorker_1 = require("../delivery/OutboxWorker");
58
+ const LegacyOutboxMigration_1 = require("../delivery/LegacyOutboxMigration");
59
+ const NotificationPolicy_1 = require("../notification/NotificationPolicy");
60
+ const node_crypto_1 = require("node:crypto");
26
61
  const placeholders_1 = require("../config/placeholders");
27
62
  const logger_1 = require("../logger");
28
63
  /**
@@ -50,13 +85,14 @@ function openDatabaseWithRecovery(databasePath) {
50
85
  database = openFresh();
51
86
  return {
52
87
  database,
53
- recoveryNote: `数据库无法打开(${message}),已隔离损坏文件 ${isolated} 并重建空库;下载去重记录已重置,将重新下载近期作品。`,
88
+ recoveryNote: `数据库无法打开(${message}),已隔离损坏文件 ${isolated} 并重建空库;已进入降级模式:自动选择/投递已暂停,请执行 doctor --repair 或确认历史后再恢复,以避免空库重复发布。`,
89
+ degraded: true,
54
90
  };
55
91
  }
56
92
  const check = database.checkIntegrity();
57
93
  if (check === 'ok') {
58
94
  database.migrate();
59
- return { database };
95
+ return { database, degraded: false };
60
96
  }
61
97
  // Structurally corrupt: isolate (preserving evidence) and recreate fresh.
62
98
  const message = check.slice(0, 200);
@@ -75,37 +111,34 @@ function openDatabaseWithRecovery(databasePath) {
75
111
  database = openFresh();
76
112
  return {
77
113
  database,
78
- recoveryNote: `数据库完整性检查未通过(${message}),已隔离损坏文件 ${isolated} 并重建空库;下载去重记录已重置,将重新下载近期作品。`,
114
+ recoveryNote: `数据库完整性检查未通过(${message}),已隔离损坏文件 ${isolated} 并重建空库;已进入降级模式:自动选择/投递已暂停,请运行 pixivflow doctor --repair / reconcile 确认历史后再恢复,以避免空库批量重复发布。`,
115
+ degraded: true,
79
116
  };
80
117
  }
81
- async function notifyDeliveryTargets(config, databasePath, targetNames, text, key) {
118
+ async function notifyDeliveryTargets(config, database, targetNames, text, key) {
82
119
  const delivery = config.delivery;
83
120
  const notifyable = [...new Set(targetNames)].filter((name) => delivery?.targets?.[name]?.notificationUrl?.trim());
84
121
  if (notifyable.length === 0)
85
122
  return;
123
+ // Notifications are durable SQLite outbox rows (kind=notification), pumped by
124
+ // the OutboxWorker — never fire-and-forget, never swallowed silently.
86
125
  try {
87
- const dispatcher = new DeliveryDispatcher_1.DeliveryDispatcher(delivery, undefined);
88
- const outbox = new DeliveryOutbox_1.DeliveryOutbox((0, node_path_1.join)((0, node_path_1.dirname)(databasePath), 'delivery-outbox'), dispatcher, delivery?.deleteAfterDelivery !== false);
126
+ const { DeliveryService } = await Promise.resolve().then(() => __importStar(require('../delivery/DeliveryService')));
127
+ const service = new DeliveryService(database);
89
128
  for (const name of notifyable) {
90
- try {
91
- const syntheticTarget = { type: 'novel', delivery: { target: name } };
92
- await outbox.notifyNoMatch(syntheticTarget, text, key);
93
- }
94
- catch (error) {
95
- logger_1.logger.warn('Notification failed for delivery target', { target: name, error });
96
- }
129
+ service.enqueueNotification(name, text, key);
97
130
  }
98
131
  }
99
132
  catch (error) {
100
- logger_1.logger.warn('Failed to build delivery notification', { error });
133
+ logger_1.logger.warn('Failed to enqueue delivery notification', { error });
101
134
  }
102
135
  }
103
136
  /** Best-effort: alert every delivery target that exposes a notificationUrl. */
104
- async function notifyRecovery(config, databasePath, note) {
137
+ async function notifyRecovery(config, database, note) {
105
138
  const targetNames = Object.keys(config.delivery?.targets ?? {});
106
- await notifyDeliveryTargets(config, databasePath, targetNames, `⚠️ PixivFlow 数据库自检未通过,已自动隔离并重建\n${note}`, `pixivflow:db-recovery:${new Date().toISOString().slice(0, 10)}`);
139
+ await notifyDeliveryTargets(config, database, targetNames, `⚠️ PixivFlow 数据库自检未通过,已自动隔离并重建\n${note}`, `pixivflow:db-recovery:${new Date().toISOString().slice(0, 10)}`);
107
140
  }
108
- async function notifyScheduleFailure(config, databasePath, schedule, failure) {
141
+ async function notifyScheduleFailure(config, database, schedule, failure) {
109
142
  const targetNames = (0, schedules_1.selectScheduleTargets)(config.targets, schedule)
110
143
  .map((target) => target.delivery?.target?.trim())
111
144
  .filter((name) => Boolean(name));
@@ -114,18 +147,31 @@ async function notifyScheduleFailure(config, databasePath, schedule, failure) {
114
147
  ? '\n计划已达到连续失败上限并自动停止,请检查后重载配置或重启进程。'
115
148
  : '';
116
149
  const error = failure.errorMessage ? `\n错误:${failure.errorMessage.slice(0, 500)}` : '';
117
- await notifyDeliveryTargets(config, databasePath, targetNames, `⚠️ PixivFlow 定时任务${status}\n计划:${schedule.name?.trim() || schedule.id}` +
150
+ await notifyDeliveryTargets(config, database, targetNames, `⚠️ PixivFlow 定时任务${status}\n计划:${schedule.name?.trim() || schedule.id}` +
118
151
  `\n连续失败:${failure.consecutiveFailures}${error}${stopped}`, `pixivflow:schedule-failure:${schedule.id}:${failure.executionNumber}`);
119
152
  }
153
+ function buildProxyUrl(network) {
154
+ const proxy = network?.proxy;
155
+ if (!proxy?.enabled)
156
+ return undefined;
157
+ const protocol = proxy.protocol ?? 'http';
158
+ if (protocol !== 'http' && protocol !== 'https')
159
+ return undefined;
160
+ const auth = proxy.username ? `${proxy.username}:${proxy.password ?? ''}@` : '';
161
+ return `${protocol}://${auth}${proxy.host}:${proxy.port}`;
162
+ }
120
163
  async function createSchedulerRuntime(configPathArg) {
121
164
  // Keep TODAY/YESTERDAY placeholders intact. They are resolved afresh for
122
165
  // every plan execution, not frozen at daemon startup.
123
166
  const configPath = (0, config_1.getConfigPath)(configPathArg);
124
167
  const config = (0, config_1.loadConfig)(configPath, false, false);
125
168
  const databasePath = config.storage.databasePath;
126
- const { database, recoveryNote } = openDatabaseWithRecovery(databasePath);
169
+ const { database, recoveryNote, degraded } = openDatabaseWithRecovery(databasePath);
170
+ // One-time, idempotent import of any file-based outbox manifests. Safe to run
171
+ // every start: committed rows are archived; a crash mid-way resumes here.
172
+ (0, LegacyOutboxMigration_1.migrateLegacyOutbox)(database);
127
173
  if (recoveryNote) {
128
- await notifyRecovery(config, databasePath, recoveryNote);
174
+ await notifyRecovery(config, database, recoveryNote);
129
175
  }
130
176
  const auth = new AuthClient_1.PixivAuth(config.pixiv, config.network, database, configPath);
131
177
  const pixivClient = new PixivClient_1.PixivClient(auth, config);
@@ -137,6 +183,31 @@ async function createSchedulerRuntime(configPathArg) {
137
183
  tokenMaintenance.start();
138
184
  }
139
185
  let activeDownloadManager = null;
186
+ // Independently-pumped durable outbox (content + notifications). Started in
187
+ // the long-running scheduler daemon; run-once drains explicitly before exit.
188
+ const deliveryDispatcher = new DeliveryDispatcher_1.DeliveryDispatcher(config.delivery, buildProxyUrl(config.network));
189
+ const outboxWorker = new OutboxWorker_1.OutboxWorker(database, deliveryDispatcher, {
190
+ retryBaseMs: config.delivery?.outboxRetryBaseMs,
191
+ retryMaxMs: config.delivery?.outboxRetryMaxMs,
192
+ // A confirmed ACK promotes the delivery_pending cell to submitted.
193
+ onDeliveryTerminal: (deliveryId, ack) => {
194
+ const row = database.deliveries.getById(deliveryId);
195
+ if (!row || !row.slotId || !row.targetId)
196
+ return;
197
+ if (ack.kind === 'duplicate_existing') {
198
+ const coord = new SlotCoordinator_1.SlotCoordinator(database);
199
+ coord.applyOutcome(row.slotId, row.targetId, {
200
+ kind: 'duplicate',
201
+ workId: row.pixivId,
202
+ reason: 'downstream attested historical duplicate',
203
+ });
204
+ return;
205
+ }
206
+ const coord = new SlotCoordinator_1.SlotCoordinator(database);
207
+ coord.markDelivered(row.slotId, row.targetId, row.pixivId, row.workType);
208
+ },
209
+ });
210
+ const notificationPolicy = new NotificationPolicy_1.NotificationPolicy(database, config);
140
211
  const runJob = async (snapshot, schedule, options = {}) => {
141
212
  const { onlyTarget, adhoc = false, slot: providedSlot } = options;
142
213
  // A scheduled run is cron by default; an HTTP/manual trigger passes its own.
@@ -160,6 +231,7 @@ async function createSchedulerRuntime(configPathArg) {
160
231
  // complete or be resumed as one. Scheduled runs (cron/http/catchup) always
161
232
  // resolve a canonical occurrence and converge on one durable Slot.
162
233
  let slotCtx = null;
234
+ let varReleaseLease = null;
163
235
  if (!adhoc) {
164
236
  if (providedSlot) {
165
237
  slotCtx = providedSlot;
@@ -177,14 +249,38 @@ async function createSchedulerRuntime(configPathArg) {
177
249
  }
178
250
  slotCtx = resolved.context;
179
251
  }
252
+ const activeSlot = slotCtx;
253
+ const runOwner = `run-${process.pid}-${(0, node_crypto_1.randomUUID)().slice(0, 8)}`;
254
+ const leaseMs = Math.max(60_000, (schedule.timeout ?? 30 * 60_000) + 60_000);
180
255
  const begin = coordinator.begin(slotCtx, schedule, targets);
181
256
  if (begin.alreadyCompleted && !onlyTarget) {
182
257
  logger_1.logger.info('Slot already terminal; nothing to do', {
183
- slot: slotCtx.slotId,
258
+ slot: activeSlot.slotId,
184
259
  status: begin.slotRec.status,
185
260
  });
186
261
  return;
187
262
  }
263
+ // Cross-process lease: a concurrent Cloudflare + watchdog + manual
264
+ // trigger on a SECOND process sees an active lease and converges instead
265
+ // of running the same targets in parallel.
266
+ const claimed = coordinator.claimRunLease(activeSlot.slotId, runOwner, leaseMs);
267
+ if (!claimed) {
268
+ const lease = database.slots.getSlotLease(activeSlot.slotId);
269
+ logger_1.logger.info('Slot run already leased by another worker; converging', {
270
+ slot: activeSlot.slotId,
271
+ leaseOwner: lease.owner,
272
+ });
273
+ // Resume-only: the OutboxWorker drains pending deliveries; do not run
274
+ // candidate selection again. Drain due rows and return.
275
+ await outboxWorker.drainOnce(1);
276
+ return;
277
+ }
278
+ const heartbeat = setInterval(() => coordinator.heartbeatLease(activeSlot.slotId, runOwner, leaseMs), Math.floor(leaseMs / 3));
279
+ heartbeat.unref?.();
280
+ varReleaseLease = () => {
281
+ clearInterval(heartbeat);
282
+ coordinator.releaseRunLease(activeSlot.slotId, runOwner);
283
+ };
188
284
  }
189
285
  // For a scheduled run, skip cells already in a terminal state (resume never
190
286
  // re-runs a finished cell — that is what prevents a second post). Membership
@@ -224,29 +320,23 @@ async function createSchedulerRuntime(configPathArg) {
224
320
  activeDownloadManager = downloadManager;
225
321
  await downloadManager.initialise();
226
322
  if (slotCtx) {
227
- // Record cell outcomes into the slot ledger.
228
- downloadManager.setWorkLockedHook((artifact, target) => {
229
- if (!target.id || !slotCtx)
230
- return;
231
- // First selection wins; retries/replays carry the same pixivId and the
232
- // ledger COALESCE keeps it, so a retry never silently swaps the work.
233
- coordinator.lockWork(slotCtx.slotId, target.id, artifact.pixivId, artifact.type);
234
- });
235
- downloadManager.setTargetOutcomeHook((target, error) => {
236
- if (!target.id || !slotCtx)
323
+ const slot = slotCtx; // stable for callbacks
324
+ // TYPED outcome -> explicit FSM transition. No message regex, no
325
+ // "no throw => submitted". Only a confirmed ACK yields 'submitted'.
326
+ downloadManager.setTargetOutcomeHook((target, outcome) => {
327
+ if (!target.id)
237
328
  return;
238
- if (!error) {
239
- // Delivered (or queued in outbox, which retries the SAME work). Mark
240
- // submitted; the work id is best-effort from the most recent download.
241
- coordinator.markCell(slotCtx.slotId, target.id, 'submitted');
242
- }
243
- else if (/no matching|no_candidate|all .*filtered|already downloaded/i.test(error)) {
244
- coordinator.markCell(slotCtx.slotId, target.id, 'no_candidate', error);
245
- }
246
- else {
247
- coordinator.markCell(slotCtx.slotId, target.id, 'failed', error);
248
- }
329
+ coordinator.applyOutcome(slot.slotId, target.id, outcome);
330
+ notificationPolicy.noteOutcome(slot.slotId, slot, schedule, target, outcome);
249
331
  });
332
+ downloadManager.slotContext = {
333
+ slotId: slot.slotId,
334
+ scheduleId: slot.scheduleId,
335
+ occurrenceAtIso: new Date(slot.occurrenceAt).toISOString(),
336
+ triggerSource: slot.triggerSource,
337
+ slotName: slot.slotName,
338
+ slotDate: slot.slotDate,
339
+ };
250
340
  }
251
341
  // Apply initial delay if configured
252
342
  if (runtimeConfig.initialDelay && runtimeConfig.initialDelay > 0) {
@@ -264,16 +354,45 @@ async function createSchedulerRuntime(configPathArg) {
264
354
  });
265
355
  logger_1.logger.info('='.repeat(60));
266
356
  const startTime = Date.now();
357
+ let allTargetsFailed;
358
+ let releaseLease = () => undefined;
359
+ if (slotCtx && varReleaseLease)
360
+ releaseLease = varReleaseLease;
267
361
  try {
268
362
  await downloadManager.runAllTargets();
269
363
  }
364
+ catch (error) {
365
+ if (!slotCtx || !(error instanceof Error) || !/^All \d+ target\(s\) failed\./.test(error.message)) {
366
+ throw error;
367
+ }
368
+ // Scheduled Slots treat terminal target failures (failed/no_candidate) as
369
+ // a finished partial/failed aggregate. Finish before returning so the HTTP
370
+ // trigger can report the durable state instead of 500 and never roll up.
371
+ allTargetsFailed = error;
372
+ }
270
373
  finally {
271
374
  if (activeDownloadManager === downloadManager)
272
375
  activeDownloadManager = null;
376
+ releaseLease?.();
273
377
  }
274
378
  const duration = Math.round((Date.now() - startTime) / 1000);
275
- if (slotCtx)
276
- coordinator.finish(slotCtx, schedule, targets);
379
+ if (slotCtx) {
380
+ const summary = coordinator.finish(slotCtx, schedule, targets);
381
+ notificationPolicy.sendSlotSummary(slotCtx, schedule, summary.cells.map((c) => {
382
+ const t = targets.find((x) => x.id === c.targetId);
383
+ return {
384
+ targetId: c.targetId,
385
+ label: c.targetId,
386
+ workType: t?.type ?? 'unknown',
387
+ status: c.status,
388
+ workId: c.workId,
389
+ error: c.error ?? null,
390
+ };
391
+ }));
392
+ releaseLease();
393
+ }
394
+ if (!slotCtx && allTargetsFailed)
395
+ throw allTargetsFailed;
277
396
  logger_1.logger.info('='.repeat(60));
278
397
  logger_1.logger.info(`Scheduled download plan finished (took ${duration}s)`, {
279
398
  scheduleId: schedule.id,
@@ -285,6 +404,7 @@ async function createSchedulerRuntime(configPathArg) {
285
404
  activeDownloadManager?.cancel(reason);
286
405
  };
287
406
  const close = () => {
407
+ outboxWorker.stop();
288
408
  cancelActive('process shutdown');
289
409
  if (tokenMaintenance) {
290
410
  tokenMaintenance.stop();
@@ -299,7 +419,9 @@ async function createSchedulerRuntime(configPathArg) {
299
419
  tokenMaintenance,
300
420
  runJob,
301
421
  cancelActive,
302
- notifyScheduleFailure: (snapshot, schedule, failure) => notifyScheduleFailure(snapshot, databasePath, schedule, failure),
422
+ startOutboxWorker: () => outboxWorker.start(),
423
+ drainOutbox: () => outboxWorker.drainOnce(),
424
+ notifyScheduleFailure: (snapshot, schedule, failure) => notifyScheduleFailure(snapshot, database, schedule, failure),
303
425
  close,
304
426
  };
305
427
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-runtime.js","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler-runtime.js","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"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"}
@@ -473,10 +473,19 @@ export interface HttpMultipartDeliveryConfig {
473
473
  /** 数组字段编码方式,默认 comma */
474
474
  arrayFormat?: 'comma' | 'repeat' | 'json';
475
475
  success?: HttpMultipartSuccessConfig;
476
- /** 单次交付的最大尝试次数(含首次),默认 3 */
476
+ /** 单次交付的最大尝试次数(含首次),默认 3(遗留即时重试;SQLite outbox 是主重试层) */
477
477
  maxAttempts?: number;
478
478
  /** 重试基础间隔(毫秒),默认 2000 */
479
479
  retryDelayMs?: number;
480
+ /** 业务 ACK 信封字段映射(默认解析 TelePost {data:{review_id,reused,...}})。 */
481
+ ack?: {
482
+ dataPath?: string;
483
+ idField?: string;
484
+ statusField?: string;
485
+ reusedField?: string;
486
+ reasonField?: string;
487
+ keyField?: string;
488
+ };
480
489
  }
481
490
  export type DeliveryTargetConfig = HttpMultipartDeliveryConfig;
482
491
  export interface DeliveryConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Normalized acknowledgement from a downstream delivery provider (TelePost).
3
+ *
4
+ * HTTP status alone is NOT a business result. The provider response is parsed
5
+ * once, at the adapter boundary, into this discriminated union; everything
6
+ * inside Core (outbox worker, delivery ledger, slot FSM) branches on ack.kind
7
+ * instead of status codes or message strings.
8
+ */
9
+ export type DeliveryAck = {
10
+ kind: 'accepted';
11
+ remoteId?: string;
12
+ remoteStatus?: string;
13
+ raw?: unknown;
14
+ }
15
+ /**
16
+ * The provider recognised OUR idempotency_key and returned the SAME record a
17
+ * previous attempt created (ACK lost to a timeout/crash). This is a success
18
+ * and converges to exactly one remote record.
19
+ */
20
+ | {
21
+ kind: 'idempotent_replay';
22
+ remoteId?: string;
23
+ remoteStatus?: string;
24
+ raw?: unknown;
25
+ }
26
+ /**
27
+ * The provider found an OLDER delivery of the same work from a DIFFERENT
28
+ * intent/slot (historical drift). NO new side effect was created. This is not
29
+ * a successful new submission.
30
+ */
31
+ | {
32
+ kind: 'duplicate_existing';
33
+ remoteId?: string;
34
+ remoteStatus?: string;
35
+ matchedKey?: string;
36
+ raw?: unknown;
37
+ }
38
+ /** Transient failure: timeouts, 5xx, 429, connection errors. Retryable. */
39
+ | {
40
+ kind: 'retryable_failure';
41
+ retryAfterMs?: number;
42
+ error: string;
43
+ }
44
+ /** Deterministic failure: 4xx (except 408/429), validation rejection. */
45
+ | {
46
+ kind: 'permanent_failure';
47
+ error: string;
48
+ };
49
+ /** Where the provider put the machine-readable result in its envelope. */
50
+ export interface AckEnvelopeHints {
51
+ /** Default config: TelePost returns { ok, data: { ... } }. */
52
+ dataPath?: string;
53
+ /** Field carrying the stable downstream record id (default review_id/message_id). */
54
+ idField?: string;
55
+ /** Field carrying the downstream status string. */
56
+ statusField?: string;
57
+ /** Field that is true when a pre-existing record was reused. */
58
+ reusedField?: string;
59
+ /** Field distinguishing replay-of-our-key vs an older historical record. */
60
+ reasonField?: string;
61
+ keyField?: string;
62
+ }
63
+ /**
64
+ * Parse a provider HTTP response into a DeliveryAck. Pure function of
65
+ * (status, body). Recognises the explicit TelePost envelope and degrades
66
+ * safely for plain 2xx endpoints (treated as 'accepted') so generic adapters
67
+ * keep working.
68
+ */
69
+ export declare function parseDeliveryAck(status: number, body: unknown, hints?: AckEnvelopeHints): DeliveryAck;
70
+ //# sourceMappingURL=DeliveryAck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryAck.d.ts","sourceRoot":"","sources":["../../src/delivery/DeliveryAck.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE;AAC/E;;;;GAIG;GACD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE;AACxF;;;;GAIG;GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AACH,2EAA2E;GACzE;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACrE,yEAAyE;GACvE;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAuBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,KAAK,GAAE,gBAAqB,GAC3B,WAAW,CAqCb"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseDeliveryAck = parseDeliveryAck;
4
+ const DEFAULT_HINTS = {
5
+ dataPath: 'data',
6
+ idField: 'review_id',
7
+ statusField: 'status',
8
+ reusedField: 'reused',
9
+ reasonField: 'reuse_reason',
10
+ keyField: 'matched_idempotency_key',
11
+ };
12
+ function dig(body, path) {
13
+ if (!path)
14
+ return body;
15
+ return path.split('.').reduce((value, key) => {
16
+ if (value && typeof value === 'object')
17
+ return value[key];
18
+ return undefined;
19
+ }, body);
20
+ }
21
+ function asString(value) {
22
+ return typeof value === 'string' && value.trim() ? value : undefined;
23
+ }
24
+ /**
25
+ * Parse a provider HTTP response into a DeliveryAck. Pure function of
26
+ * (status, body). Recognises the explicit TelePost envelope and degrades
27
+ * safely for plain 2xx endpoints (treated as 'accepted') so generic adapters
28
+ * keep working.
29
+ */
30
+ function parseDeliveryAck(status, body, hints = {}) {
31
+ const h = { ...DEFAULT_HINTS, ...hints };
32
+ if (status === 429) {
33
+ return { kind: 'retryable_failure', error: 'HTTP 429 rate limited by delivery endpoint' };
34
+ }
35
+ if (status === 408 || status >= 500) {
36
+ return { kind: 'retryable_failure', error: `delivery endpoint HTTP ${status}` };
37
+ }
38
+ if (status < 200 || status >= 300) {
39
+ const preview = typeof body === 'string' ? body : safeStringify(body);
40
+ return { kind: 'permanent_failure', error: `delivery endpoint HTTP ${status}${preview ? ': ' + preview.slice(0, 200) : ''}` };
41
+ }
42
+ const data = dig(body, h.dataPath);
43
+ // Plain 2xx with no JSON envelope: accepted at-most-once signal.
44
+ if (!data || typeof data !== 'object') {
45
+ return { kind: 'accepted', raw: body };
46
+ }
47
+ const rec = data;
48
+ const idValue = rec[h.idField] ?? rec.message_id;
49
+ const remoteId = typeof idValue === 'number' ? String(idValue) : asString(idValue);
50
+ const remoteStatus = asString(rec[h.statusField]);
51
+ const reused = rec[h.reusedField] === true;
52
+ if (!reused) {
53
+ return { kind: 'accepted', remoteId, remoteStatus, raw: body };
54
+ }
55
+ const reason = asString(rec[h.reasonField]) ?? asString(rec.reuse_kind) ?? '';
56
+ const matchedKey = asString(rec[h.keyField]);
57
+ // Explicit historical-duplicate attestation wins; bare "reused" defaults to
58
+ // replay because the provider only sets reused when it matched a prior key.
59
+ if (reason === 'duplicate_existing' || reason === 'historical' || reason === 'historical_duplicate') {
60
+ return { kind: 'duplicate_existing', remoteId, remoteStatus, matchedKey, raw: body };
61
+ }
62
+ return { kind: 'idempotent_replay', remoteId, remoteStatus, raw: body };
63
+ }
64
+ function safeStringify(value) {
65
+ try {
66
+ return JSON.stringify(value);
67
+ }
68
+ catch {
69
+ return '';
70
+ }
71
+ }
72
+ //# sourceMappingURL=DeliveryAck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryAck.js","sourceRoot":"","sources":["../../src/delivery/DeliveryAck.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ class DeliveryDispatcher {
37
37
  if (!target.notificationUrl?.trim()) {
38
38
  throw new errors_1.ConfigError(`Delivery target does not configure notificationUrl: ${name}`);
39
39
  }
40
- return new HttpMultipartDelivery_1.HttpMultipartDelivery(target, this.proxyUrl).notify(request);
40
+ return new HttpMultipartDelivery_1.HttpMultipartDelivery(target, this.proxyUrl).notifyOnce(request);
41
41
  }
42
42
  }
43
43
  exports.DeliveryDispatcher = DeliveryDispatcher;