@chkit/plugin-backfill 0.1.0-beta.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.
@@ -0,0 +1,4 @@
1
+ import type { BackfillPlugin, BackfillPluginOptions, BackfillPluginRegistration } from './types.js';
2
+ export declare function createBackfillPlugin(options?: BackfillPluginOptions): BackfillPlugin;
3
+ export declare function backfill(options?: BackfillPluginOptions): BackfillPluginRegistration;
4
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAEnG,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAkTxF;AAED,wBAAgB,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,0BAA0B,CAOxF"}
package/dist/plugin.js ADDED
@@ -0,0 +1,305 @@
1
+ import { parseCancelArgs, parseDoctorArgs, parsePlanArgs, parseResumeArgs, parseRunArgs, parseStatusArgs } from './args.js';
2
+ import { BackfillConfigError } from './errors.js';
3
+ import { normalizeBackfillOptions, mergeOptions, validateBaseOptions } from './options.js';
4
+ import { planPayload, runPayload, statusPayload, cancelPayload, doctorPayload } from './payload.js';
5
+ import { buildBackfillPlan } from './planner.js';
6
+ import { cancelBackfillRun, evaluateBackfillCheck, executeBackfillRun, getBackfillDoctorReport, getBackfillStatus, resumeBackfillRun, } from './runtime.js';
7
+ export function createBackfillPlugin(options = {}) {
8
+ const base = normalizeBackfillOptions(options);
9
+ validateBaseOptions(base);
10
+ return {
11
+ manifest: {
12
+ name: 'backfill',
13
+ apiVersion: 1,
14
+ },
15
+ commands: [
16
+ {
17
+ name: 'plan',
18
+ description: 'Build a deterministic backfill plan and persist immutable plan state',
19
+ async run({ args, jsonMode, print, options: runtimeOptions, config, configPath }) {
20
+ try {
21
+ const parsed = parsePlanArgs(args);
22
+ const effectiveOptions = mergeOptions(base, runtimeOptions);
23
+ validateBaseOptions(effectiveOptions);
24
+ const output = await buildBackfillPlan({
25
+ target: parsed.target,
26
+ from: parsed.from,
27
+ to: parsed.to,
28
+ config,
29
+ configPath,
30
+ options: effectiveOptions,
31
+ chunkHours: parsed.chunkHours,
32
+ forceLargeWindow: parsed.forceLargeWindow,
33
+ });
34
+ const payload = planPayload(output);
35
+ if (jsonMode) {
36
+ print(payload);
37
+ }
38
+ else {
39
+ print(`Backfill plan ${payload.planId} for ${payload.target} (${payload.chunkCount} chunks at ${payload.chunkHours}h) -> ${payload.planPath}${payload.existed ? ' [existing]' : ''}`);
40
+ }
41
+ return 0;
42
+ }
43
+ catch (error) {
44
+ const message = error instanceof Error ? error.message : String(error);
45
+ if (jsonMode) {
46
+ print({
47
+ ok: false,
48
+ command: 'plan',
49
+ error: message,
50
+ });
51
+ }
52
+ else {
53
+ print(`Backfill plan failed: ${message}`);
54
+ }
55
+ if (error instanceof BackfillConfigError)
56
+ return 2;
57
+ return 1;
58
+ }
59
+ },
60
+ },
61
+ {
62
+ name: 'run',
63
+ description: 'Execute a planned backfill with checkpointed chunk progress',
64
+ async run({ args, jsonMode, print, options: runtimeOptions, config, configPath }) {
65
+ try {
66
+ const parsed = parseRunArgs(args);
67
+ const effectiveOptions = mergeOptions(base, runtimeOptions);
68
+ validateBaseOptions(effectiveOptions);
69
+ const output = await executeBackfillRun({
70
+ planId: parsed.planId,
71
+ config,
72
+ configPath,
73
+ options: effectiveOptions,
74
+ execution: {
75
+ replayDone: parsed.replayDone,
76
+ replayFailed: parsed.replayFailed,
77
+ forceOverlap: parsed.forceOverlap,
78
+ forceCompatibility: parsed.forceCompatibility,
79
+ simulation: {
80
+ failChunkId: parsed.simulateFailChunk,
81
+ failCount: parsed.simulateFailCount,
82
+ },
83
+ },
84
+ });
85
+ const payload = {
86
+ ...runPayload(output),
87
+ command: 'run',
88
+ };
89
+ if (jsonMode) {
90
+ print(payload);
91
+ }
92
+ else {
93
+ print(`Backfill run ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total})`);
94
+ }
95
+ return payload.ok ? 0 : 1;
96
+ }
97
+ catch (error) {
98
+ const message = error instanceof Error ? error.message : String(error);
99
+ if (jsonMode) {
100
+ print({ ok: false, command: 'run', error: message });
101
+ }
102
+ else {
103
+ print(`Backfill run failed: ${message}`);
104
+ }
105
+ if (error instanceof BackfillConfigError)
106
+ return 2;
107
+ return 1;
108
+ }
109
+ },
110
+ },
111
+ {
112
+ name: 'resume',
113
+ description: 'Resume a backfill run from last checkpoint',
114
+ async run({ args, jsonMode, print, options: runtimeOptions, config, configPath }) {
115
+ try {
116
+ const parsed = parseResumeArgs(args);
117
+ const effectiveOptions = mergeOptions(base, runtimeOptions);
118
+ validateBaseOptions(effectiveOptions);
119
+ const output = await resumeBackfillRun({
120
+ planId: parsed.planId,
121
+ config,
122
+ configPath,
123
+ options: effectiveOptions,
124
+ execution: {
125
+ replayDone: parsed.replayDone,
126
+ replayFailed: parsed.replayFailed,
127
+ forceOverlap: parsed.forceOverlap,
128
+ forceCompatibility: parsed.forceCompatibility,
129
+ },
130
+ });
131
+ const payload = {
132
+ ...runPayload(output),
133
+ command: 'resume',
134
+ };
135
+ if (jsonMode) {
136
+ print(payload);
137
+ }
138
+ else {
139
+ print(`Backfill resume ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total})`);
140
+ }
141
+ return payload.ok ? 0 : 1;
142
+ }
143
+ catch (error) {
144
+ const message = error instanceof Error ? error.message : String(error);
145
+ if (jsonMode) {
146
+ print({ ok: false, command: 'resume', error: message });
147
+ }
148
+ else {
149
+ print(`Backfill resume failed: ${message}`);
150
+ }
151
+ if (error instanceof BackfillConfigError)
152
+ return 2;
153
+ return 1;
154
+ }
155
+ },
156
+ },
157
+ {
158
+ name: 'status',
159
+ description: 'Show checkpoint and chunk progress for a backfill run',
160
+ async run({ args, jsonMode, print, options: runtimeOptions, config, configPath }) {
161
+ try {
162
+ const parsed = parseStatusArgs(args);
163
+ const effectiveOptions = mergeOptions(base, runtimeOptions);
164
+ validateBaseOptions(effectiveOptions);
165
+ const summary = await getBackfillStatus({
166
+ planId: parsed.planId,
167
+ config,
168
+ configPath,
169
+ options: effectiveOptions,
170
+ });
171
+ const payload = statusPayload(summary);
172
+ if (jsonMode) {
173
+ print(payload);
174
+ }
175
+ else {
176
+ print(`Backfill status ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total}, failed=${payload.chunkCounts.failed})`);
177
+ }
178
+ return payload.ok ? 0 : 1;
179
+ }
180
+ catch (error) {
181
+ const message = error instanceof Error ? error.message : String(error);
182
+ if (jsonMode) {
183
+ print({ ok: false, command: 'status', error: message });
184
+ }
185
+ else {
186
+ print(`Backfill status failed: ${message}`);
187
+ }
188
+ if (error instanceof BackfillConfigError)
189
+ return 2;
190
+ return 1;
191
+ }
192
+ },
193
+ },
194
+ {
195
+ name: 'cancel',
196
+ description: 'Cancel an in-progress backfill run and prevent further chunk execution',
197
+ async run({ args, jsonMode, print, options: runtimeOptions, config, configPath }) {
198
+ try {
199
+ const parsed = parseCancelArgs(args);
200
+ const effectiveOptions = mergeOptions(base, runtimeOptions);
201
+ validateBaseOptions(effectiveOptions);
202
+ const summary = await cancelBackfillRun({
203
+ planId: parsed.planId,
204
+ config,
205
+ configPath,
206
+ options: effectiveOptions,
207
+ });
208
+ const payload = cancelPayload(summary);
209
+ if (jsonMode) {
210
+ print(payload);
211
+ }
212
+ else {
213
+ print(`Backfill cancel ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total})`);
214
+ }
215
+ return payload.ok ? 0 : 1;
216
+ }
217
+ catch (error) {
218
+ const message = error instanceof Error ? error.message : String(error);
219
+ if (jsonMode) {
220
+ print({ ok: false, command: 'cancel', error: message });
221
+ }
222
+ else {
223
+ print(`Backfill cancel failed: ${message}`);
224
+ }
225
+ if (error instanceof BackfillConfigError)
226
+ return 2;
227
+ return 1;
228
+ }
229
+ },
230
+ },
231
+ {
232
+ name: 'doctor',
233
+ description: 'Provide actionable remediation steps for failed or pending backfill runs',
234
+ async run({ args, jsonMode, print, options: runtimeOptions, config, configPath }) {
235
+ try {
236
+ const parsed = parseDoctorArgs(args);
237
+ const effectiveOptions = mergeOptions(base, runtimeOptions);
238
+ validateBaseOptions(effectiveOptions);
239
+ const report = await getBackfillDoctorReport({
240
+ planId: parsed.planId,
241
+ config,
242
+ configPath,
243
+ options: effectiveOptions,
244
+ });
245
+ const payload = doctorPayload(report);
246
+ if (jsonMode) {
247
+ print(payload);
248
+ }
249
+ else {
250
+ print(`Backfill doctor ${payload.planId}: ${payload.issueCodes.length === 0 ? 'ok' : payload.issueCodes.join(', ')}`);
251
+ for (const recommendation of payload.recommendations) {
252
+ print(`- ${recommendation}`);
253
+ }
254
+ }
255
+ return payload.ok ? 0 : 1;
256
+ }
257
+ catch (error) {
258
+ const message = error instanceof Error ? error.message : String(error);
259
+ if (jsonMode) {
260
+ print({ ok: false, command: 'doctor', error: message });
261
+ }
262
+ else {
263
+ print(`Backfill doctor failed: ${message}`);
264
+ }
265
+ if (error instanceof BackfillConfigError)
266
+ return 2;
267
+ return 1;
268
+ }
269
+ },
270
+ },
271
+ ],
272
+ hooks: {
273
+ onConfigLoaded({ options: runtimeOptions }) {
274
+ const merged = mergeOptions(base, runtimeOptions);
275
+ validateBaseOptions(merged);
276
+ },
277
+ async onCheck({ config, configPath, options: runtimeOptions }) {
278
+ const effectiveOptions = mergeOptions(base, runtimeOptions);
279
+ validateBaseOptions(effectiveOptions);
280
+ return evaluateBackfillCheck({
281
+ configPath,
282
+ config,
283
+ options: effectiveOptions,
284
+ });
285
+ },
286
+ onCheckReport({ result, print }) {
287
+ const findingCodes = result.findings.map((finding) => finding.code);
288
+ if (result.ok) {
289
+ print('backfill check: ok');
290
+ return;
291
+ }
292
+ print(`backfill check: failed${findingCodes.length > 0 ? ` (${findingCodes.join(', ')})` : ''}`);
293
+ },
294
+ },
295
+ };
296
+ }
297
+ export function backfill(options = {}) {
298
+ return {
299
+ plugin: createBackfillPlugin(),
300
+ name: 'backfill',
301
+ enabled: true,
302
+ options,
303
+ };
304
+ }
305
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { ResolvedChxConfig } from '@chkit/core';
2
+ import type { BackfillDoctorReport, BackfillExecutionOptions, BackfillPluginCheckResult, BackfillStatusSummary, ExecuteBackfillRunOutput, NormalizedBackfillPluginOptions } from './types.js';
3
+ export declare function evaluateBackfillCheck(input: {
4
+ configPath: string;
5
+ config: Pick<ResolvedChxConfig, 'metaDir'>;
6
+ options: NormalizedBackfillPluginOptions;
7
+ }): Promise<BackfillPluginCheckResult>;
8
+ export declare function executeBackfillRun(input: {
9
+ planId: string;
10
+ configPath: string;
11
+ config: Pick<ResolvedChxConfig, 'metaDir'>;
12
+ options: NormalizedBackfillPluginOptions;
13
+ execution?: BackfillExecutionOptions;
14
+ }): Promise<ExecuteBackfillRunOutput>;
15
+ export declare function resumeBackfillRun(input: {
16
+ planId: string;
17
+ configPath: string;
18
+ config: Pick<ResolvedChxConfig, 'metaDir'>;
19
+ options: NormalizedBackfillPluginOptions;
20
+ execution?: BackfillExecutionOptions;
21
+ }): Promise<ExecuteBackfillRunOutput>;
22
+ export declare function getBackfillStatus(input: {
23
+ planId: string;
24
+ configPath: string;
25
+ config: Pick<ResolvedChxConfig, 'metaDir'>;
26
+ options: NormalizedBackfillPluginOptions;
27
+ }): Promise<BackfillStatusSummary>;
28
+ export declare function cancelBackfillRun(input: {
29
+ planId: string;
30
+ configPath: string;
31
+ config: Pick<ResolvedChxConfig, 'metaDir'>;
32
+ options: NormalizedBackfillPluginOptions;
33
+ }): Promise<BackfillStatusSummary>;
34
+ export declare function getBackfillDoctorReport(input: {
35
+ planId: string;
36
+ configPath: string;
37
+ config: Pick<ResolvedChxConfig, 'metaDir'>;
38
+ options: NormalizedBackfillPluginOptions;
39
+ }): Promise<BackfillDoctorReport>;
40
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAgBpD,OAAO,KAAK,EACV,oBAAoB,EAEpB,wBAAwB,EACxB,yBAAyB,EAGzB,qBAAqB,EACrB,wBAAwB,EACxB,+BAA+B,EAChC,MAAM,YAAY,CAAA;AAEnB,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAgFrC;AAkOD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;IACxC,SAAS,CAAC,EAAE,wBAAwB,CAAA;CACrC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAmDpC;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;IACxC,SAAS,CAAC,EAAE,wBAAwB,CAAA;CACrC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAyCpC;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA+BjC;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA0CjC;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC1C,OAAO,EAAE,+BAA+B,CAAA;CACzC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2ChC"}