@tiangong-lca/cli 0.1.1 → 0.1.2

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 (154) hide show
  1. package/README.md +26 -6
  2. package/dist/src/batch.d.ts +6 -0
  3. package/dist/src/batch.js +6 -0
  4. package/dist/src/batch.js.map +1 -0
  5. package/dist/src/cli.d.ts +161 -0
  6. package/dist/src/command-spec.d.ts +90 -0
  7. package/dist/src/command-spec.js +400 -0
  8. package/dist/src/command-spec.js.map +1 -0
  9. package/dist/src/lib/artifacts.d.ts +9 -0
  10. package/dist/src/lib/auth-identity-receipt.d.ts +160 -0
  11. package/dist/src/lib/batch/attempt-recovery.d.ts +12 -0
  12. package/dist/src/lib/batch/attempt-recovery.js +183 -0
  13. package/dist/src/lib/batch/attempt-recovery.js.map +1 -0
  14. package/dist/src/lib/batch/canonical-contracts.d.ts +21 -0
  15. package/dist/src/lib/batch/canonical-contracts.js +180 -0
  16. package/dist/src/lib/batch/canonical-contracts.js.map +1 -0
  17. package/dist/src/lib/batch/engine.d.ts +2 -0
  18. package/dist/src/lib/batch/engine.js +294 -0
  19. package/dist/src/lib/batch/engine.js.map +1 -0
  20. package/dist/src/lib/batch/errors.d.ts +51 -0
  21. package/dist/src/lib/batch/errors.js +81 -0
  22. package/dist/src/lib/batch/errors.js.map +1 -0
  23. package/dist/src/lib/batch/item-projection.d.ts +10 -0
  24. package/dist/src/lib/batch/item-projection.js +118 -0
  25. package/dist/src/lib/batch/item-projection.js.map +1 -0
  26. package/dist/src/lib/batch/run-lock.d.ts +4 -0
  27. package/dist/src/lib/batch/run-lock.js +155 -0
  28. package/dist/src/lib/batch/run-lock.js.map +1 -0
  29. package/dist/src/lib/batch/scheduler-runtime.d.ts +29 -0
  30. package/dist/src/lib/batch/scheduler-runtime.js +114 -0
  31. package/dist/src/lib/batch/scheduler-runtime.js.map +1 -0
  32. package/dist/src/lib/batch/types.d.ts +183 -0
  33. package/dist/src/lib/batch/types.js +2 -0
  34. package/dist/src/lib/batch/types.js.map +1 -0
  35. package/dist/src/lib/dataset-author.d.ts +39 -0
  36. package/dist/src/lib/dataset-bilingual.d.ts +165 -0
  37. package/dist/src/lib/dataset-classification.d.ts +279 -0
  38. package/dist/src/lib/dataset-command.d.ts +53 -0
  39. package/dist/src/lib/dataset-contract.d.ts +82 -0
  40. package/dist/src/lib/dataset-curation-queue.d.ts +219 -0
  41. package/dist/src/lib/dataset-evidence-search.d.ts +134 -0
  42. package/dist/src/lib/dataset-import-lca.d.ts +136 -0
  43. package/dist/src/lib/dataset-local.d.ts +23 -0
  44. package/dist/src/lib/dataset-maintenance-alias-request.d.ts +12 -0
  45. package/dist/src/lib/dataset-maintenance-alias-rewrite.d.ts +111 -0
  46. package/dist/src/lib/dataset-maintenance-apply.d.ts +458 -0
  47. package/dist/src/lib/dataset-maintenance-clear-account.d.ts +161 -0
  48. package/dist/src/lib/dataset-maintenance-contract.d.ts +317 -0
  49. package/dist/src/lib/dataset-maintenance-derivatives.d.ts +48 -0
  50. package/dist/src/lib/dataset-maintenance-flow-identity-approval-claim.d.ts +50 -0
  51. package/dist/src/lib/dataset-maintenance-flow-identity-capture.d.ts +110 -0
  52. package/dist/src/lib/dataset-maintenance-flow-identity-command.d.ts +15 -0
  53. package/dist/src/lib/dataset-maintenance-flow-identity-contract.d.ts +387 -0
  54. package/dist/src/lib/dataset-maintenance-flow-identity-execution-contract.d.ts +456 -0
  55. package/dist/src/lib/dataset-maintenance-flow-identity-freeze.d.ts +99 -0
  56. package/dist/src/lib/dataset-maintenance-flow-identity-plan.d.ts +85 -0
  57. package/dist/src/lib/dataset-maintenance-flow-identity-recovery.d.ts +268 -0
  58. package/dist/src/lib/dataset-maintenance-flow-identity-run.d.ts +123 -0
  59. package/dist/src/lib/dataset-maintenance-flow-identity-seal.d.ts +50 -0
  60. package/dist/src/lib/dataset-maintenance-flow-identity-verify.d.ts +85 -0
  61. package/dist/src/lib/dataset-maintenance-flow-identity-wire.d.ts +32 -0
  62. package/dist/src/lib/dataset-maintenance-pagination.d.ts +58 -0
  63. package/dist/src/lib/dataset-maintenance-plan.d.ts +40 -0
  64. package/dist/src/lib/dataset-maintenance-protected-artifacts.d.ts +16 -0
  65. package/dist/src/lib/dataset-maintenance-protected-before.d.ts +71 -0
  66. package/dist/src/lib/dataset-maintenance-protected-contract.d.ts +385 -0
  67. package/dist/src/lib/dataset-maintenance-protected-freeze.d.ts +148 -0
  68. package/dist/src/lib/dataset-maintenance-protected-preparation.d.ts +76 -0
  69. package/dist/src/lib/dataset-maintenance-protected-run.d.ts +252 -0
  70. package/dist/src/lib/dataset-maintenance-protected-seal.d.ts +93 -0
  71. package/dist/src/lib/dataset-maintenance-protected-toolchain.d.ts +31 -0
  72. package/dist/src/lib/dataset-maintenance-protected-verify.d.ts +99 -0
  73. package/dist/src/lib/dataset-maintenance-remote.d.ts +212 -0
  74. package/dist/src/lib/dataset-maintenance-support-validation.d.ts +18 -0
  75. package/dist/src/lib/dataset-maintenance-verify.d.ts +102 -0
  76. package/dist/src/lib/dataset-patch.d.ts +193 -0
  77. package/dist/src/lib/dataset-references-rewrite.d.ts +77 -0
  78. package/dist/src/lib/dataset-remote-refresh.d.ts +64 -0
  79. package/dist/src/lib/dataset-remote-verify.d.ts +168 -0
  80. package/dist/src/lib/dataset-save-draft-run.d.ts +283 -0
  81. package/dist/src/lib/dataset-save-draft-run.js +54 -21
  82. package/dist/src/lib/dataset-save-draft-run.js.map +1 -1
  83. package/dist/src/lib/dataset-source-upload-attachments.d.ts +109 -0
  84. package/dist/src/lib/dataset-validate.d.ts +62 -0
  85. package/dist/src/lib/dotenv.d.ts +6 -0
  86. package/dist/src/lib/env.d.ts +59 -0
  87. package/dist/src/lib/errors.d.ts +18 -0
  88. package/dist/src/lib/flow-build-alias-map.d.ts +80 -0
  89. package/dist/src/lib/flow-fetch-rows.d.ts +70 -0
  90. package/dist/src/lib/flow-get.d.ts +35 -0
  91. package/dist/src/lib/flow-governance.d.ts +22 -0
  92. package/dist/src/lib/flow-list.d.ts +57 -0
  93. package/dist/src/lib/flow-materialize-decisions.d.ts +67 -0
  94. package/dist/src/lib/flow-payload-validation.d.ts +32 -0
  95. package/dist/src/lib/flow-publish-reviewed-data.d.ts +262 -0
  96. package/dist/src/lib/flow-publish-version.d.ts +193 -0
  97. package/dist/src/lib/flow-qa.d.ts +289 -0
  98. package/dist/src/lib/flow-read.d.ts +70 -0
  99. package/dist/src/lib/flow-regen-product.d.ts +431 -0
  100. package/dist/src/lib/flow-remediate.d.ts +133 -0
  101. package/dist/src/lib/http.d.ts +25 -0
  102. package/dist/src/lib/identity-preflight.d.ts +235 -0
  103. package/dist/src/lib/io.d.ts +2 -0
  104. package/dist/src/lib/kb-search.d.ts +23 -0
  105. package/dist/src/lib/lca-release.d.ts +105 -0
  106. package/dist/src/lib/lifecyclemodel-auto-build.d.ts +223 -0
  107. package/dist/src/lib/lifecyclemodel-bundle-save.d.ts +71 -0
  108. package/dist/src/lib/lifecyclemodel-graph.d.ts +91 -0
  109. package/dist/src/lib/lifecyclemodel-orchestrate.d.ts +349 -0
  110. package/dist/src/lib/lifecyclemodel-publish-build.d.ts +77 -0
  111. package/dist/src/lib/lifecyclemodel-publish-resulting-process.d.ts +27 -0
  112. package/dist/src/lib/lifecyclemodel-qa.d.ts +206 -0
  113. package/dist/src/lib/lifecyclemodel-resulting-process.d.ts +204 -0
  114. package/dist/src/lib/lifecyclemodel-save-draft-run.d.ts +96 -0
  115. package/dist/src/lib/lifecyclemodel-validate-build.d.ts +78 -0
  116. package/dist/src/lib/llm.d.ts +51 -0
  117. package/dist/src/lib/package-version.d.ts +3 -0
  118. package/dist/src/lib/process-auto-build.d.ts +168 -0
  119. package/dist/src/lib/process-batch-build.d.ts +97 -0
  120. package/dist/src/lib/process-dedup-review.d.ts +253 -0
  121. package/dist/src/lib/process-flow-build-plan.d.ts +108 -0
  122. package/dist/src/lib/process-get.d.ts +26 -0
  123. package/dist/src/lib/process-list.d.ts +87 -0
  124. package/dist/src/lib/process-payload-validation.d.ts +27 -0
  125. package/dist/src/lib/process-publish-build.d.ts +148 -0
  126. package/dist/src/lib/process-qa.d.ts +243 -0
  127. package/dist/src/lib/process-refresh-references.d.ts +179 -0
  128. package/dist/src/lib/process-required-fields.d.ts +142 -0
  129. package/dist/src/lib/process-resume-build.d.ts +77 -0
  130. package/dist/src/lib/process-save-draft-run.d.ts +72 -0
  131. package/dist/src/lib/process-save-draft.d.ts +53 -0
  132. package/dist/src/lib/process-scope-statistics.d.ts +210 -0
  133. package/dist/src/lib/process-verify-rows.d.ts +71 -0
  134. package/dist/src/lib/publish.d.ts +219 -0
  135. package/dist/src/lib/remote.d.ts +19 -0
  136. package/dist/src/lib/run.d.ts +60 -0
  137. package/dist/src/lib/runtime-rulesets.d.ts +29 -0
  138. package/dist/src/lib/state-lock.d.ts +25 -0
  139. package/dist/src/lib/state-lock.js +23 -1
  140. package/dist/src/lib/state-lock.js.map +1 -1
  141. package/dist/src/lib/supabase-client.d.ts +47 -0
  142. package/dist/src/lib/supabase-data-api-contract.d.ts +304 -0
  143. package/dist/src/lib/supabase-data-api-replay.d.ts +74 -0
  144. package/dist/src/lib/supabase-json-ordered-write.d.ts +65 -0
  145. package/dist/src/lib/supabase-rest.d.ts +26 -0
  146. package/dist/src/lib/supabase-session.d.ts +115 -0
  147. package/dist/src/lib/tidas-languages.d.ts +3 -0
  148. package/dist/src/lib/tidas-sdk-package-validator.d.ts +111 -0
  149. package/dist/src/lib/tidas-sdk-validation.d.ts +42 -0
  150. package/dist/src/lib/unstructured.d.ts +32 -0
  151. package/dist/src/lib/user-api-key.d.ts +16 -0
  152. package/dist/src/lib/validation.d.ts +82 -0
  153. package/dist/src/main.d.ts +4 -0
  154. package/package.json +13 -2
@@ -0,0 +1,458 @@
1
+ import type { FetchLike } from './http.js';
2
+ import { buildAliasBatchRequest, buildAliasPlanRequest } from './dataset-maintenance-alias-request.js';
3
+ import { type DatasetMaintenancePlan, type DatasetMaintenanceAliasBatchPlan, type DatasetMaintenancePlanAction, type DatasetMaintenanceProgressEntry, type DatasetMaintenanceRemoteRow, type JsonObject } from './dataset-maintenance-contract.js';
4
+ import { type DatasetMaintenanceDerivativeSubmitProof } from './dataset-maintenance-derivatives.js';
5
+ import { type DatasetMaintenanceRemoteContext } from './dataset-maintenance-remote.js';
6
+ export type DatasetMaintenanceApplyReport = {
7
+ schema_version: 1;
8
+ generated_at_utc: string;
9
+ status: 'completed' | 'completed_with_failures' | 'completed_with_unknowns' | 'accepted';
10
+ task_id: string;
11
+ operation: DatasetMaintenancePlan['operation'];
12
+ operation_id: string;
13
+ target_mode: DatasetMaintenancePlan['target_mode'];
14
+ plan_sha256: string;
15
+ actor: {
16
+ user_id: string;
17
+ email: string;
18
+ };
19
+ summary: {
20
+ actions: number;
21
+ success: number;
22
+ failed: number;
23
+ unknown?: number;
24
+ pending: number;
25
+ resumed_successes: number;
26
+ accepted?: number;
27
+ };
28
+ actions: Array<{
29
+ action_id: string;
30
+ action: DatasetMaintenancePlanAction['action'];
31
+ table: DatasetMaintenancePlanAction['table'];
32
+ id: string;
33
+ version: string;
34
+ status: 'success' | 'failed' | 'unknown' | 'pending' | 'accepted';
35
+ error: string | null;
36
+ }>;
37
+ artifacts: {
38
+ approval_record: string;
39
+ apply_progress: string;
40
+ commit_report: string;
41
+ attempt_report: string;
42
+ alias_plan_progress?: string;
43
+ alias_batch_progress?: string;
44
+ alias_exchange_progress?: string;
45
+ derivative_submit_progress?: string;
46
+ derivative_admission_attempt?: string;
47
+ execution_log?: string;
48
+ inbound_reference_barrier?: string;
49
+ };
50
+ database_audit: {
51
+ rpc_transaction_log: 'public.command_audit_log';
52
+ source: 'tiangong-lca dataset maintenance apply';
53
+ correlation_fields: string[];
54
+ };
55
+ alias_plan_proof?: {
56
+ plan_request_sha256: string;
57
+ summary_audit_id: string;
58
+ batch_count: 2;
59
+ row_count: 52;
60
+ exchange_count: 59;
61
+ idempotent_replay: boolean;
62
+ };
63
+ derivative_admission?: DatasetMaintenanceDerivativeSubmitProof & {
64
+ admission: 'accepted';
65
+ };
66
+ };
67
+ export type RunDatasetMaintenanceApplyOptions = {
68
+ planPath: string;
69
+ commit: boolean;
70
+ approvePlan: string;
71
+ confirm: string;
72
+ timeoutMs?: number;
73
+ env: NodeJS.ProcessEnv;
74
+ fetchImpl: FetchLike;
75
+ now?: Date;
76
+ maxParallel?: number;
77
+ globalInboundProofPath?: string;
78
+ approveGlobalInboundProof?: string;
79
+ };
80
+ type ParallelDeleteExecutionStatus = 'PREPARED' | 'DISPATCHED' | 'COMMITTED' | 'UNKNOWN';
81
+ type ParallelDeleteGlobalInboundProofChunk = {
82
+ index: number;
83
+ start: number;
84
+ end_exclusive: number;
85
+ target_count: number;
86
+ captured_at_utc: string;
87
+ inbound_exchanges: 0;
88
+ old_flow_identities_with_inbound: 0;
89
+ process_identities_with_inbound: 0;
90
+ owner_draft_inbound: 0;
91
+ public_inbound: 0;
92
+ foreign_private_inbound: 0;
93
+ other_state_inbound: 0;
94
+ sql_sha256: string;
95
+ };
96
+ type ParallelDeleteGlobalInboundProof = {
97
+ schema_version: 'dataset-maintenance-global-inbound-proof.v1';
98
+ status: 'PASS_GLOBAL_ALL_PROCESS_INBOUND_ZERO';
99
+ statement_kind: 'SELECT';
100
+ source: 'supabase_select_only_raw_sql';
101
+ process_scope: 'all_process_rows_without_rls_restriction';
102
+ captured_at_utc: string;
103
+ project_ref: string;
104
+ actor_user_id: string;
105
+ plan_sha256: string;
106
+ operation: 'delete';
107
+ target_table: 'flows';
108
+ target_count: number;
109
+ target_binding_sha256: string;
110
+ global_process_rows: number;
111
+ global_exchange_rows: number;
112
+ inbound_exchanges: 0;
113
+ old_flow_identities_with_inbound: 0;
114
+ process_identities_with_inbound: 0;
115
+ chunks: ParallelDeleteGlobalInboundProofChunk[];
116
+ p0: 0;
117
+ p1: 0;
118
+ proof_path: string;
119
+ proof_sha256: string;
120
+ };
121
+ type ParallelDeleteExecutionEntry = {
122
+ schema_version: 1;
123
+ plan_sha256: string;
124
+ operation_id: string;
125
+ action_id: string;
126
+ attempt_key: string;
127
+ action: 'delete';
128
+ table: 'flows';
129
+ id: string;
130
+ version: string;
131
+ desired_sha256: string;
132
+ before_sha256: string;
133
+ actor: {
134
+ user_id: string;
135
+ email: string;
136
+ };
137
+ status: ParallelDeleteExecutionStatus;
138
+ recorded_at_utc: string;
139
+ attempt_consumed: boolean;
140
+ recovered: boolean;
141
+ audit_context: {
142
+ plan_sha256: string;
143
+ operation_id: string;
144
+ action_id: string;
145
+ reason_code: string;
146
+ source: 'tiangong-lca dataset maintenance apply';
147
+ };
148
+ audit_id: string | null;
149
+ readback_sha256: string | null;
150
+ remote_result_sha256: string | null;
151
+ error: string | null;
152
+ };
153
+ type ParallelDeleteExecutionState = {
154
+ entries: ParallelDeleteExecutionEntry[];
155
+ byAction: Map<string, ParallelDeleteExecutionEntry[]>;
156
+ dispatched: Set<string>;
157
+ committed: Set<string>;
158
+ };
159
+ type ProgressState = {
160
+ entries: DatasetMaintenanceProgressEntry[];
161
+ successes: Map<string, DatasetMaintenanceProgressEntry>;
162
+ latestFailures: Map<string, DatasetMaintenanceProgressEntry>;
163
+ };
164
+ type DerivativeSubmitProgressEntry = {
165
+ schema_version: 1;
166
+ plan_sha256: string;
167
+ operation_id: string;
168
+ action_id: string;
169
+ target_mode: 'owner_draft';
170
+ actor: {
171
+ user_id: string;
172
+ email: string;
173
+ };
174
+ started_at_utc: string;
175
+ ended_at_utc: string;
176
+ result: 'accepted';
177
+ proof: DatasetMaintenanceDerivativeSubmitProof;
178
+ };
179
+ type DerivativeSubmitProgressState = {
180
+ entries: DerivativeSubmitProgressEntry[];
181
+ latest: DerivativeSubmitProgressEntry | null;
182
+ };
183
+ type DerivativeAdmissionAttempt = {
184
+ schema_version: 1;
185
+ plan_sha256: string;
186
+ operation_id: string;
187
+ action_id: string;
188
+ table: 'processes';
189
+ id: string;
190
+ version: string;
191
+ expected_snapshot_sha256: string;
192
+ actor: {
193
+ user_id: string;
194
+ email: string;
195
+ };
196
+ prepared_at_utc: string;
197
+ };
198
+ type AliasBatchProgressEntry = {
199
+ schema_version: 1;
200
+ plan_sha256: string;
201
+ operation_id: string;
202
+ batch_id: string;
203
+ target_mode: 'owner_draft';
204
+ dimension: DatasetMaintenanceAliasBatchPlan['dimension'];
205
+ factor: string;
206
+ actor: {
207
+ user_id: string;
208
+ email: string;
209
+ };
210
+ started_at_utc: string;
211
+ ended_at_utc: string;
212
+ batch_request_sha256: string;
213
+ idempotent_replay: boolean;
214
+ row_count: number;
215
+ exchange_count: number;
216
+ summary_audit_id: string;
217
+ plan_request_sha256: string;
218
+ plan_summary_audit_id: string;
219
+ result: 'success';
220
+ error: null;
221
+ };
222
+ type AliasPlanBatchProof = {
223
+ batch_id: string;
224
+ dimension: DatasetMaintenanceAliasBatchPlan['dimension'];
225
+ batch_request_sha256: string;
226
+ summary_audit_id: string;
227
+ };
228
+ type AliasPlanProgressEntry = {
229
+ schema_version: 1;
230
+ plan_sha256: string;
231
+ operation_id: string;
232
+ target_mode: 'owner_draft';
233
+ actor: {
234
+ user_id: string;
235
+ email: string;
236
+ };
237
+ started_at_utc: string;
238
+ ended_at_utc: string;
239
+ plan_request_sha256: string | null;
240
+ idempotent_replay: boolean | null;
241
+ batch_count: 2;
242
+ row_count: 52;
243
+ exchange_count: 59;
244
+ summary_audit_id: string | null;
245
+ batches: AliasPlanBatchProof[];
246
+ result: 'success' | 'failed';
247
+ error: string | null;
248
+ };
249
+ type AliasPlanProgressState = {
250
+ entries: AliasPlanProgressEntry[];
251
+ success: AliasPlanProgressEntry | null;
252
+ latestFailure: AliasPlanProgressEntry | null;
253
+ };
254
+ type AliasBatchProgressState = {
255
+ entries: AliasBatchProgressEntry[];
256
+ successes: Map<string, AliasBatchProgressEntry>;
257
+ };
258
+ type AliasRpcAuditProof = {
259
+ action_id: string;
260
+ table: DatasetMaintenancePlanAction['table'];
261
+ id: string;
262
+ version: string;
263
+ audit_id: string;
264
+ };
265
+ type AliasRpcResult = {
266
+ target_visibility: 'owner_draft';
267
+ batch_request_sha256: string;
268
+ idempotent_replay: boolean;
269
+ exchange_count: number;
270
+ summary_audit_id: string;
271
+ audits: Map<string, AliasRpcAuditProof>;
272
+ raw: JsonObject;
273
+ };
274
+ type AliasPlanRpcResult = {
275
+ target_visibility: 'owner_draft';
276
+ plan_request_sha256: string;
277
+ idempotent_replay: boolean;
278
+ batch_count: 2;
279
+ row_count: 52;
280
+ exchange_count: 59;
281
+ summary_audit_id: string;
282
+ batches: Map<DatasetMaintenanceAliasBatchPlan['dimension'], AliasRpcResult>;
283
+ raw: JsonObject;
284
+ };
285
+ type RetiredAliasExecutionProof = {
286
+ rpc: AliasPlanRpcResult;
287
+ after_by_action: Map<string, string>;
288
+ };
289
+ declare function clock(options: RunDatasetMaintenanceApplyOptions): string;
290
+ declare function errorMessage(error: unknown): string;
291
+ declare function parallelDeleteDesiredSha256(action: DatasetMaintenancePlanAction): string;
292
+ declare function normalizeMaintenanceMaxParallel(value: number | undefined): number;
293
+ declare function assertParallelDeletePlan(plan: DatasetMaintenancePlan): void;
294
+ declare function parallelDeleteTargetBindingSha256(plan: DatasetMaintenancePlan): string;
295
+ declare function assertGlobalInboundProofOptionShape(options: {
296
+ parallelDeleteMode: boolean;
297
+ proofPath?: string;
298
+ approveProof?: string;
299
+ }): void;
300
+ declare function validateParallelDeleteGlobalInboundProof(options: {
301
+ proofPath: string | undefined;
302
+ approveProof: string | undefined;
303
+ plan: DatasetMaintenancePlan;
304
+ context: DatasetMaintenanceRemoteContext;
305
+ now: Date;
306
+ }): ParallelDeleteGlobalInboundProof | null;
307
+ declare function parseParallelDeleteExecutionLog(plan: DatasetMaintenancePlan, executionLogPath: string): ParallelDeleteExecutionState;
308
+ declare function appendParallelDeleteExecutionEntry(options: {
309
+ path: string;
310
+ state: ParallelDeleteExecutionState;
311
+ plan: DatasetMaintenancePlan;
312
+ action: DatasetMaintenancePlanAction;
313
+ context: DatasetMaintenanceRemoteContext;
314
+ status: ParallelDeleteExecutionStatus;
315
+ recordedAtUtc: string;
316
+ recovered?: boolean;
317
+ auditId?: string | null;
318
+ readbackSha256?: string | null;
319
+ remoteResultSha256?: string | null;
320
+ error?: string | null;
321
+ }): ParallelDeleteExecutionEntry;
322
+ declare function assertNoVisibleProcessInboundReferences(options: {
323
+ plan: DatasetMaintenancePlan;
324
+ rows: DatasetMaintenanceRemoteRow[];
325
+ }): {
326
+ process_rows: number;
327
+ process_references: number;
328
+ snapshot_sha256: string;
329
+ };
330
+ declare function loadDesiredPayload(planDir: string, action: DatasetMaintenancePlanAction): JsonObject;
331
+ declare function parseProgress(plan: DatasetMaintenancePlan, progressPath: string): ProgressState;
332
+ declare function parseDerivativeSubmitProgress(plan: DatasetMaintenancePlan, progressPath: string): DerivativeSubmitProgressState;
333
+ declare function validateDerivativeAdmissionAttempt(options: {
334
+ path: string;
335
+ plan: DatasetMaintenancePlan;
336
+ context: DatasetMaintenanceRemoteContext;
337
+ }): DerivativeAdmissionAttempt | null;
338
+ declare function parseAliasBatchProgress(plan: DatasetMaintenancePlan, progressPath: string): AliasBatchProgressState;
339
+ declare function parseAliasPlanProgress(plan: DatasetMaintenancePlan, progressPath: string): AliasPlanProgressState;
340
+ declare function finalProjectedRows(options: {
341
+ rows: DatasetMaintenanceRemoteRow[];
342
+ plan: DatasetMaintenancePlan;
343
+ planDir: string;
344
+ }): DatasetMaintenanceRemoteRow[];
345
+ declare function assertApplyPreconditions(options: {
346
+ plan: DatasetMaintenancePlan;
347
+ planDir: string;
348
+ currentRows: DatasetMaintenanceRemoteRow[];
349
+ progress: ProgressState;
350
+ aliasPlanProgress?: AliasPlanProgressState;
351
+ attemptedDeleteActionIds?: Set<string>;
352
+ }): void;
353
+ declare function validateApprovalRecord(options: {
354
+ path: string;
355
+ plan: DatasetMaintenancePlan;
356
+ context: DatasetMaintenanceRemoteContext;
357
+ }): void;
358
+ declare function assertAliasSupportSnapshots(options: {
359
+ plan: DatasetMaintenancePlan;
360
+ context: DatasetMaintenanceRemoteContext;
361
+ }): Promise<void>;
362
+ declare function validateAliasRpcResult(value: JsonObject, batch: DatasetMaintenanceAliasBatchPlan, plan: DatasetMaintenancePlan): AliasRpcResult;
363
+ declare function validateAliasPlanRpcResult(value: JsonObject, plan: DatasetMaintenancePlan): AliasPlanRpcResult;
364
+ declare function aliasExchangeProgressKey(value: {
365
+ batch_id: string;
366
+ action_id: string;
367
+ exchange_index: number;
368
+ data_set_internal_id: string;
369
+ }): string;
370
+ declare function appendAliasSuccessLogs(options: {
371
+ plan: DatasetMaintenancePlan;
372
+ batch: DatasetMaintenanceAliasBatchPlan;
373
+ execution: RetiredAliasExecutionProof;
374
+ progress: ProgressState;
375
+ progressPath: string;
376
+ exchangeProgressPath: string;
377
+ context: DatasetMaintenanceRemoteContext;
378
+ startedAt: string;
379
+ endedAt: string;
380
+ }): void;
381
+ declare function appendAliasProofProgress(options: {
382
+ plan: DatasetMaintenancePlan;
383
+ execution: RetiredAliasExecutionProof;
384
+ planProgress: AliasPlanProgressState;
385
+ batchProgress: AliasBatchProgressState;
386
+ planProgressPath: string;
387
+ batchProgressPath: string;
388
+ context: DatasetMaintenanceRemoteContext;
389
+ startedAt: string;
390
+ endedAt: string;
391
+ }): AliasPlanProgressEntry;
392
+ declare function executeAction(options: {
393
+ action: DatasetMaintenancePlanAction;
394
+ plan: DatasetMaintenancePlan;
395
+ planDir: string;
396
+ context: DatasetMaintenanceRemoteContext;
397
+ }): Promise<{
398
+ afterSha256: string | null;
399
+ remoteResultSha256: string;
400
+ }>;
401
+ declare function remoteAuditId(value: JsonObject): string | null;
402
+ declare function executeParallelDeletePlan(options: {
403
+ plan: DatasetMaintenancePlan;
404
+ context: DatasetMaintenanceRemoteContext;
405
+ progress: ProgressState;
406
+ progressPath: string;
407
+ executionLogPath: string;
408
+ execution: ParallelDeleteExecutionState;
409
+ maxParallel: number;
410
+ now: () => string;
411
+ }): Promise<Map<string, 'success' | 'failed' | 'unknown'>>;
412
+ declare function executeDerivativeAdmission(options: {
413
+ plan: DatasetMaintenancePlan;
414
+ context: DatasetMaintenanceRemoteContext;
415
+ replayPossible: boolean;
416
+ attemptPath: string;
417
+ preparedAtUtc: string;
418
+ }): Promise<DatasetMaintenanceDerivativeSubmitProof>;
419
+ declare function nextAttemptPath(planDir: string): string;
420
+ declare function nextParallelDeleteInboundBarrierPath(planDir: string): string;
421
+ export declare function runDatasetMaintenanceApply(options: RunDatasetMaintenanceApplyOptions): Promise<DatasetMaintenanceApplyReport>;
422
+ export declare const __testInternals: {
423
+ aliasExchangeProgressKey: typeof aliasExchangeProgressKey;
424
+ appendAliasSuccessLogs: typeof appendAliasSuccessLogs;
425
+ appendAliasProofProgress: typeof appendAliasProofProgress;
426
+ appendParallelDeleteExecutionEntry: typeof appendParallelDeleteExecutionEntry;
427
+ assertNoVisibleProcessInboundReferences: typeof assertNoVisibleProcessInboundReferences;
428
+ assertApplyPreconditions: typeof assertApplyPreconditions;
429
+ assertAliasSupportSnapshots: typeof assertAliasSupportSnapshots;
430
+ assertGlobalInboundProofOptionShape: typeof assertGlobalInboundProofOptionShape;
431
+ assertParallelDeletePlan: typeof assertParallelDeletePlan;
432
+ buildAliasBatchRequest: typeof buildAliasBatchRequest;
433
+ buildAliasPlanRequest: typeof buildAliasPlanRequest;
434
+ clock: typeof clock;
435
+ errorMessage: typeof errorMessage;
436
+ executeDerivativeAdmission: typeof executeDerivativeAdmission;
437
+ executeAction: typeof executeAction;
438
+ executeParallelDeletePlan: typeof executeParallelDeletePlan;
439
+ finalProjectedRows: typeof finalProjectedRows;
440
+ loadDesiredPayload: typeof loadDesiredPayload;
441
+ nextAttemptPath: typeof nextAttemptPath;
442
+ nextParallelDeleteInboundBarrierPath: typeof nextParallelDeleteInboundBarrierPath;
443
+ normalizeMaintenanceMaxParallel: typeof normalizeMaintenanceMaxParallel;
444
+ parallelDeleteDesiredSha256: typeof parallelDeleteDesiredSha256;
445
+ parallelDeleteTargetBindingSha256: typeof parallelDeleteTargetBindingSha256;
446
+ parseDerivativeSubmitProgress: typeof parseDerivativeSubmitProgress;
447
+ validateDerivativeAdmissionAttempt: typeof validateDerivativeAdmissionAttempt;
448
+ parseAliasBatchProgress: typeof parseAliasBatchProgress;
449
+ parseAliasPlanProgress: typeof parseAliasPlanProgress;
450
+ parseProgress: typeof parseProgress;
451
+ parseParallelDeleteExecutionLog: typeof parseParallelDeleteExecutionLog;
452
+ remoteAuditId: typeof remoteAuditId;
453
+ validateAliasRpcResult: typeof validateAliasRpcResult;
454
+ validateAliasPlanRpcResult: typeof validateAliasPlanRpcResult;
455
+ validateApprovalRecord: typeof validateApprovalRecord;
456
+ validateParallelDeleteGlobalInboundProof: typeof validateParallelDeleteGlobalInboundProof;
457
+ };
458
+ export {};
@@ -0,0 +1,161 @@
1
+ import { type DatasetCommandTransport } from './dataset-command.js';
2
+ import type { FetchLike, ResponseLike } from './http.js';
3
+ import { type DatasetMaintenanceSnapshotCompleteness, type DatasetMaintenanceTableCompleteness } from './dataset-maintenance-pagination.js';
4
+ export type DatasetMaintenanceClearAccountTable = 'lifecyclemodels' | 'processes' | 'flows' | 'sources' | 'contacts';
5
+ export type DatasetMaintenanceClearAccountRow = {
6
+ table: DatasetMaintenanceClearAccountTable;
7
+ id: string | null;
8
+ version: string | null;
9
+ user_id: string | null;
10
+ state_code: number | null;
11
+ modified_at: string | null;
12
+ };
13
+ export type DatasetMaintenanceClearAccountTableReport = {
14
+ table: DatasetMaintenanceClearAccountTable;
15
+ status: 'dry_run' | 'skipped_empty' | 'deleted' | 'failed' | 'skipped_after_failure';
16
+ candidates: number;
17
+ deleted: number;
18
+ remaining: number | null;
19
+ source_urls: string[];
20
+ delete_url: string | null;
21
+ error: string | null;
22
+ };
23
+ export type DatasetMaintenanceClearAccountReport = {
24
+ schema_version: 1;
25
+ generated_at_utc: string;
26
+ status: 'planned_account_clear' | 'cleared_account' | 'completed_with_failures';
27
+ mode: 'dry-run' | 'commit';
28
+ account: {
29
+ email: string;
30
+ user_id: string;
31
+ session_source: string;
32
+ };
33
+ filters: {
34
+ tables: DatasetMaintenanceClearAccountTable[];
35
+ state_codes: number[] | null;
36
+ page_size: number;
37
+ };
38
+ snapshot_completeness: DatasetMaintenanceSnapshotCompleteness<DatasetMaintenanceClearAccountTable>;
39
+ readback_completeness: DatasetMaintenanceSnapshotCompleteness<DatasetMaintenanceClearAccountTable> | null;
40
+ readback_error: string | null;
41
+ summary: {
42
+ total_candidates: number;
43
+ total_deleted: number;
44
+ total_remaining: number;
45
+ total_failures: number;
46
+ by_table: Record<DatasetMaintenanceClearAccountTable, {
47
+ candidates: number;
48
+ deleted: number;
49
+ remaining: number | null;
50
+ status: DatasetMaintenanceClearAccountTableReport['status'];
51
+ }>;
52
+ };
53
+ tables: DatasetMaintenanceClearAccountTableReport[];
54
+ artifacts: {
55
+ rls_visible_snapshot: string;
56
+ dry_run_report: string;
57
+ approval_record: string | null;
58
+ commit_report: string | null;
59
+ readback_verify_report: string | null;
60
+ };
61
+ };
62
+ export type RunDatasetMaintenanceClearAccountOptions = {
63
+ outDir?: string | null;
64
+ stateCodes?: number[] | null;
65
+ pageSize?: number;
66
+ timeoutMs?: number;
67
+ commit?: boolean;
68
+ confirm?: string | null;
69
+ env: NodeJS.ProcessEnv;
70
+ fetchImpl: FetchLike;
71
+ now?: Date;
72
+ };
73
+ declare function normalizeEmail(value: unknown): string;
74
+ declare function caughtErrorMessage(error: unknown): string;
75
+ declare function normalizeStateCode(value: unknown): number | null;
76
+ declare function normalizeStateCodes(values: number[] | null | undefined): number[] | null;
77
+ declare function normalizePageSize(value: number | undefined): number;
78
+ declare function normalizeTimeoutMs(value: number | undefined): number;
79
+ declare function normalizeRow(table: DatasetMaintenanceClearAccountTable, value: unknown): DatasetMaintenanceClearAccountRow | null;
80
+ declare function buildTableFilterUrl(options: {
81
+ restBaseUrl: string;
82
+ table: DatasetMaintenanceClearAccountTable;
83
+ userId: string;
84
+ stateCodes: number[] | null;
85
+ }): URL;
86
+ declare function fetchJson(options: {
87
+ url: string;
88
+ init: RequestInit;
89
+ fetchImpl: FetchLike;
90
+ timeoutMs: number;
91
+ label: string;
92
+ }): Promise<{
93
+ body: unknown;
94
+ headers: ResponseLike['headers'];
95
+ }>;
96
+ declare function fetchCurrentUser(options: {
97
+ projectBaseUrl: string;
98
+ publishableKey: string;
99
+ accessToken: string;
100
+ fetchImpl: FetchLike;
101
+ timeoutMs: number;
102
+ }): Promise<{
103
+ id: string;
104
+ email: string | null;
105
+ }>;
106
+ declare function fetchTableRows(options: {
107
+ restBaseUrl: string;
108
+ table: DatasetMaintenanceClearAccountTable;
109
+ userId: string;
110
+ stateCodes: number[] | null;
111
+ pageSize: number;
112
+ publishableKey: string;
113
+ accessToken: string;
114
+ fetchImpl: FetchLike;
115
+ timeoutMs: number;
116
+ }): Promise<{
117
+ rows: DatasetMaintenanceClearAccountRow[];
118
+ sourceUrls: string[];
119
+ completeness: DatasetMaintenanceTableCompleteness;
120
+ }>;
121
+ declare function fetchAccountSnapshot(options: Omit<Parameters<typeof fetchTableRows>[0], 'table'>): Promise<{
122
+ tables: Array<{
123
+ table: DatasetMaintenanceClearAccountTable;
124
+ rows: DatasetMaintenanceClearAccountRow[];
125
+ sourceUrls: string[];
126
+ completeness: DatasetMaintenanceTableCompleteness;
127
+ }>;
128
+ rows: DatasetMaintenanceClearAccountRow[];
129
+ completeness: DatasetMaintenanceSnapshotCompleteness<DatasetMaintenanceClearAccountTable>;
130
+ }>;
131
+ declare function deleteTableRows(options: {
132
+ transport: DatasetCommandTransport;
133
+ table: DatasetMaintenanceClearAccountTable;
134
+ rows: DatasetMaintenanceClearAccountRow[];
135
+ }): Promise<{
136
+ deletedRows: DatasetMaintenanceClearAccountRow[];
137
+ deleteUrl: string;
138
+ failures: Array<{
139
+ row: DatasetMaintenanceClearAccountRow;
140
+ error: string;
141
+ }>;
142
+ }>;
143
+ declare function buildSummary(tables: DatasetMaintenanceClearAccountTableReport[], additionalFailures?: number): DatasetMaintenanceClearAccountReport['summary'];
144
+ export declare function runDatasetMaintenanceClearAccount(options: RunDatasetMaintenanceClearAccountOptions): Promise<DatasetMaintenanceClearAccountReport>;
145
+ export declare const __testInternals: {
146
+ buildSummary: typeof buildSummary;
147
+ buildTableFilterUrl: typeof buildTableFilterUrl;
148
+ caughtErrorMessage: typeof caughtErrorMessage;
149
+ deleteTableRows: typeof deleteTableRows;
150
+ fetchAccountSnapshot: typeof fetchAccountSnapshot;
151
+ fetchCurrentUser: typeof fetchCurrentUser;
152
+ fetchJson: typeof fetchJson;
153
+ fetchTableRows: typeof fetchTableRows;
154
+ normalizeEmail: typeof normalizeEmail;
155
+ normalizePageSize: typeof normalizePageSize;
156
+ normalizeRow: typeof normalizeRow;
157
+ normalizeStateCode: typeof normalizeStateCode;
158
+ normalizeStateCodes: typeof normalizeStateCodes;
159
+ normalizeTimeoutMs: typeof normalizeTimeoutMs;
160
+ };
161
+ export {};