@proofhound/core 0.1.12 → 0.1.14

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 (108) hide show
  1. package/dist/server/channels/mcp/dataset-import.tools.d.ts.map +1 -1
  2. package/dist/server/channels/mcp/dataset-import.tools.js +33 -0
  3. package/dist/server/channels/mcp/dataset-import.tools.js.map +1 -1
  4. package/dist/server/common/contracts/object-storage.provider.d.ts +2 -0
  5. package/dist/server/common/contracts/object-storage.provider.d.ts.map +1 -1
  6. package/dist/server/common/contracts/object-storage.provider.js +4 -0
  7. package/dist/server/common/contracts/object-storage.provider.js.map +1 -1
  8. package/dist/server/common/contracts/quota-policy.hook.d.ts +1 -1
  9. package/dist/server/common/contracts/quota-policy.hook.d.ts.map +1 -1
  10. package/dist/server/common/contracts/quota-policy.hook.js.map +1 -1
  11. package/dist/server/modules/annotation/annotation.controller.d.ts +3 -3
  12. package/dist/server/modules/annotation/annotation.module.d.ts.map +1 -1
  13. package/dist/server/modules/annotation/annotation.module.js +2 -1
  14. package/dist/server/modules/annotation/annotation.module.js.map +1 -1
  15. package/dist/server/modules/annotation/annotation.repository.d.ts +4 -1
  16. package/dist/server/modules/annotation/annotation.repository.d.ts.map +1 -1
  17. package/dist/server/modules/annotation/annotation.repository.js +31 -6
  18. package/dist/server/modules/annotation/annotation.repository.js.map +1 -1
  19. package/dist/server/modules/canary-release/canary-release.module.d.ts.map +1 -1
  20. package/dist/server/modules/canary-release/canary-release.module.js +2 -1
  21. package/dist/server/modules/canary-release/canary-release.module.js.map +1 -1
  22. package/dist/server/modules/canary-release/canary-release.repository.d.ts +4 -1
  23. package/dist/server/modules/canary-release/canary-release.repository.d.ts.map +1 -1
  24. package/dist/server/modules/canary-release/canary-release.repository.js +29 -4
  25. package/dist/server/modules/canary-release/canary-release.repository.js.map +1 -1
  26. package/dist/server/modules/dataset/dataset-import-raw-parser.d.ts +7 -0
  27. package/dist/server/modules/dataset/dataset-import-raw-parser.d.ts.map +1 -0
  28. package/dist/server/modules/dataset/dataset-import-raw-parser.js +104 -0
  29. package/dist/server/modules/dataset/dataset-import-raw-parser.js.map +1 -0
  30. package/dist/server/modules/dataset/dataset-import.controller.d.ts +31 -0
  31. package/dist/server/modules/dataset/dataset-import.controller.d.ts.map +1 -1
  32. package/dist/server/modules/dataset/dataset-import.controller.js +27 -0
  33. package/dist/server/modules/dataset/dataset-import.controller.js.map +1 -1
  34. package/dist/server/modules/dataset/dataset-import.repository.d.ts +15 -2
  35. package/dist/server/modules/dataset/dataset-import.repository.d.ts.map +1 -1
  36. package/dist/server/modules/dataset/dataset-import.repository.js +59 -12
  37. package/dist/server/modules/dataset/dataset-import.repository.js.map +1 -1
  38. package/dist/server/modules/dataset/dataset-import.service.d.ts +15 -2
  39. package/dist/server/modules/dataset/dataset-import.service.d.ts.map +1 -1
  40. package/dist/server/modules/dataset/dataset-import.service.js +196 -9
  41. package/dist/server/modules/dataset/dataset-import.service.js.map +1 -1
  42. package/dist/server/modules/dataset/dataset-sample-offload.d.ts +36 -0
  43. package/dist/server/modules/dataset/dataset-sample-offload.d.ts.map +1 -0
  44. package/dist/server/modules/dataset/dataset-sample-offload.js +41 -0
  45. package/dist/server/modules/dataset/dataset-sample-offload.js.map +1 -0
  46. package/dist/server/modules/dataset/dataset-sample-payload.d.ts +21 -0
  47. package/dist/server/modules/dataset/dataset-sample-payload.d.ts.map +1 -0
  48. package/dist/server/modules/dataset/dataset-sample-payload.js +72 -0
  49. package/dist/server/modules/dataset/dataset-sample-payload.js.map +1 -0
  50. package/dist/server/modules/dataset/dataset-sample-projection.d.ts +11 -0
  51. package/dist/server/modules/dataset/dataset-sample-projection.d.ts.map +1 -0
  52. package/dist/server/modules/dataset/dataset-sample-projection.js +49 -0
  53. package/dist/server/modules/dataset/dataset-sample-projection.js.map +1 -0
  54. package/dist/server/modules/dataset/dataset.module.d.ts.map +1 -1
  55. package/dist/server/modules/dataset/dataset.module.js +2 -0
  56. package/dist/server/modules/dataset/dataset.module.js.map +1 -1
  57. package/dist/server/modules/dataset/dataset.repository.d.ts +6 -1
  58. package/dist/server/modules/dataset/dataset.repository.d.ts.map +1 -1
  59. package/dist/server/modules/dataset/dataset.repository.js +59 -12
  60. package/dist/server/modules/dataset/dataset.repository.js.map +1 -1
  61. package/dist/server/modules/dataset/dataset.service.d.ts +2 -0
  62. package/dist/server/modules/dataset/dataset.service.d.ts.map +1 -1
  63. package/dist/server/modules/dataset/dataset.service.js +12 -0
  64. package/dist/server/modules/dataset/dataset.service.js.map +1 -1
  65. package/dist/server/modules/experiment/experiment.module.d.ts.map +1 -1
  66. package/dist/server/modules/experiment/experiment.module.js +2 -0
  67. package/dist/server/modules/experiment/experiment.module.js.map +1 -1
  68. package/dist/server/modules/experiment/experiment.workflow.d.ts +7 -1
  69. package/dist/server/modules/experiment/experiment.workflow.d.ts.map +1 -1
  70. package/dist/server/modules/experiment/experiment.workflow.js +33 -4
  71. package/dist/server/modules/experiment/experiment.workflow.js.map +1 -1
  72. package/dist/server/modules/optimization/optimization.module.d.ts.map +1 -1
  73. package/dist/server/modules/optimization/optimization.module.js +2 -0
  74. package/dist/server/modules/optimization/optimization.module.js.map +1 -1
  75. package/dist/server/modules/optimization/optimization.repository.d.ts +5 -1
  76. package/dist/server/modules/optimization/optimization.repository.d.ts.map +1 -1
  77. package/dist/server/modules/optimization/optimization.repository.js +30 -8
  78. package/dist/server/modules/optimization/optimization.repository.js.map +1 -1
  79. package/dist/server/modules/run-result/run-result-compaction-sweeper.d.ts +15 -0
  80. package/dist/server/modules/run-result/run-result-compaction-sweeper.d.ts.map +1 -0
  81. package/dist/server/modules/run-result/run-result-compaction-sweeper.js +74 -0
  82. package/dist/server/modules/run-result/run-result-compaction-sweeper.js.map +1 -0
  83. package/dist/server/modules/run-result/run-result-compaction.d.ts +38 -0
  84. package/dist/server/modules/run-result/run-result-compaction.d.ts.map +1 -0
  85. package/dist/server/modules/run-result/run-result-compaction.js +74 -0
  86. package/dist/server/modules/run-result/run-result-compaction.js.map +1 -0
  87. package/dist/server/modules/run-result/run-result-compactor.d.ts +58 -0
  88. package/dist/server/modules/run-result/run-result-compactor.d.ts.map +1 -0
  89. package/dist/server/modules/run-result/run-result-compactor.js +188 -0
  90. package/dist/server/modules/run-result/run-result-compactor.js.map +1 -0
  91. package/dist/server/modules/run-result/run-result-payload.d.ts +30 -0
  92. package/dist/server/modules/run-result/run-result-payload.d.ts.map +1 -0
  93. package/dist/server/modules/run-result/run-result-payload.js +82 -0
  94. package/dist/server/modules/run-result/run-result-payload.js.map +1 -0
  95. package/dist/server/modules/run-result/run-result-payload.reader.d.ts +20 -0
  96. package/dist/server/modules/run-result/run-result-payload.reader.d.ts.map +1 -0
  97. package/dist/server/modules/run-result/run-result-payload.reader.js +99 -0
  98. package/dist/server/modules/run-result/run-result-payload.reader.js.map +1 -0
  99. package/dist/server/modules/run-result/run-result.controller.d.ts +4 -0
  100. package/dist/server/modules/run-result/run-result.controller.d.ts.map +1 -1
  101. package/dist/server/modules/run-result/run-result.module.d.ts.map +1 -1
  102. package/dist/server/modules/run-result/run-result.module.js +14 -2
  103. package/dist/server/modules/run-result/run-result.module.js.map +1 -1
  104. package/dist/server/modules/run-result/run-result.repository.d.ts +3 -1
  105. package/dist/server/modules/run-result/run-result.repository.d.ts.map +1 -1
  106. package/dist/server/modules/run-result/run-result.repository.js +63 -4
  107. package/dist/server/modules/run-result/run-result.repository.js.map +1 -1
  108. package/package.json +14 -12
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-import.service.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-import.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,gCAAgC,EAChC,sBAAsB,EAEtB,qBAAqB,EACrB,6BAA6B,EAC7B,oBAAoB,EAGrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAEzF,OAAO,EAEL,uBAAuB,EAIxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQnD,qBACa,oBAAqB,YAAW,YAAY,EAAE,eAAe;IAMtE,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAR9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiE;IACxF,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAS;gBAGN,IAAI,EAAE,uBAAuB,EAC7B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,oBAAoB,EACnC,WAAW,EAAE,eAAe;IAG/C,YAAY,IAAI,IAAI;IAKpB,eAAe,IAAI,IAAI;IAOjB,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,sBAAsB,EAC3B,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,oBAAoB,CAAC;IAkB1B,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,qBAAqB,EAC1B,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,6BAA6B,CAAC;IA2BnC,QAAQ,CACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,gCAAgC,CAAC;IAsCtC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQxG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;YAgB1B,oBAAoB;YAMpB,kBAAkB;YAKlB,gBAAgB;IAO9B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,iBAAiB;CAI1B"}
1
+ {"version":3,"file":"dataset-import.service.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-import.service.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,10 @@ const common_1 = require("@nestjs/common");
16
16
  const logger_1 = require("@proofhound/logger");
17
17
  const access_control_1 = require("../../common/access-control");
18
18
  const access_control_service_1 = require("../../common/contracts/access-control.service");
19
+ const object_storage_provider_1 = require("../../common/contracts/object-storage.provider");
19
20
  const quota_policy_hook_1 = require("../../common/contracts/quota-policy.hook");
20
21
  const dataset_field_schema_util_1 = require("./dataset-field-schema.util");
22
+ const dataset_import_raw_parser_1 = require("./dataset-import-raw-parser");
21
23
  const dataset_import_repository_1 = require("./dataset-import.repository");
22
24
  const dataset_service_1 = require("./dataset.service");
23
25
  const TYPE_INFERENCE_SAMPLE_LIMIT = 500;
@@ -25,12 +27,18 @@ const DEFAULT_SWEEP_INTERVAL_MS = 60_000;
25
27
  const DEFAULT_STALE_TIMEOUT_MS = 120_000;
26
28
  const MIN_TICK_MS = 1_000;
27
29
  const IMAGE_ROLES = new Set(['image', 'image_url', 'image_base64']);
30
+ const DEFAULT_DATASET_RAW_UPLOAD_MAX_BYTES = 2 * 1024 * 1024 * 1024;
31
+ const DEFAULT_RAW_UPLOAD_EXPIRES_IN_SECONDS = 60 * 60;
32
+ const RAW_IMPORT_BATCH_MAX_ROWS = 1000;
33
+ const RAW_IMPORT_BATCH_MAX_BYTES = 8 * 1024 * 1024;
34
+ const RAW_IMPORT_MAX_SAMPLE_BYTES = 8 * 1024 * 1024;
28
35
  let DatasetImportService = class DatasetImportService {
29
- constructor(repo, datasetService, accessControl, quotaPolicy) {
36
+ constructor(repo, datasetService, accessControl, quotaPolicy, storage) {
30
37
  this.repo = repo;
31
38
  this.datasetService = datasetService;
32
39
  this.accessControl = accessControl;
33
40
  this.quotaPolicy = quotaPolicy;
41
+ this.storage = storage;
34
42
  this.logger = (0, logger_1.createLogger)('dataset-import.service', { service: 'server' });
35
43
  this.sweepTimer = null;
36
44
  this.sweeping = false;
@@ -48,6 +56,7 @@ let DatasetImportService = class DatasetImportService {
48
56
  async createImport(projectId, dto, actor) {
49
57
  await this.getWritableProject(projectId, actor);
50
58
  this.assertConsistentMappings(dto);
59
+ this.assertUploadSizeWithinLimit(dto.sourceFile.fileSizeBytes);
51
60
  if (await this.repo.isDatasetNameTaken(projectId, dto.name)) {
52
61
  throw new common_1.ConflictException('dataset_name_taken');
53
62
  }
@@ -60,9 +69,65 @@ let DatasetImportService = class DatasetImportService {
60
69
  const row = await this.repo.createImport({ projectId, actorUserId: actor.sub, dto });
61
70
  return this.toImportItem(row);
62
71
  }
72
+ async getRawImportCapabilities(projectId, actor) {
73
+ await this.getAccessibleProject(projectId, actor);
74
+ return {
75
+ supported: this.storage.isEnabled() && this.storage.supportsClientUploadSessions(),
76
+ maxBytes: this.getRawUploadMaxBytes(),
77
+ };
78
+ }
79
+ async createRawImport(projectId, dto, actor) {
80
+ await this.getWritableProject(projectId, actor);
81
+ this.assertConsistentMappings(dto);
82
+ this.assertUploadSizeWithinLimit(dto.sourceFile.fileSizeBytes);
83
+ if (await this.repo.isDatasetNameTaken(projectId, dto.name)) {
84
+ throw new common_1.ConflictException('dataset_name_taken');
85
+ }
86
+ if (!this.storage.isEnabled() || !this.storage.supportsClientUploadSessions()) {
87
+ throw new common_1.ServiceUnavailableException('dataset_raw_upload_unavailable');
88
+ }
89
+ await this.quotaPolicy.assertCanStore({
90
+ actor: (0, access_control_1.toActorContext)(actor),
91
+ bytes: nonnegativeInteger(dto.sourceFile.fileSizeBytes),
92
+ project: { projectId, source: 'local' },
93
+ source: 'dataset_raw_import',
94
+ });
95
+ const importId = (0, node_crypto_1.randomUUID)();
96
+ const uploadSession = await this.storage.createUploadSession({
97
+ project: { projectId, source: 'local' },
98
+ resourceType: 'dataset_raw',
99
+ resourceId: importId,
100
+ name: this.getRawObjectName(dto),
101
+ }, {
102
+ contentType: dto.sourceFile.contentType,
103
+ maxBytes: Math.min(dto.sourceFile.fileSizeBytes, this.getRawUploadMaxBytes()),
104
+ expiresInSeconds: DEFAULT_RAW_UPLOAD_EXPIRES_IN_SECONDS,
105
+ });
106
+ if (!uploadSession) {
107
+ throw new common_1.ServiceUnavailableException('dataset_raw_upload_unavailable');
108
+ }
109
+ try {
110
+ const row = await this.repo.createImport({
111
+ importId,
112
+ projectId,
113
+ actorUserId: actor.sub,
114
+ dto,
115
+ importMode: 'raw_object',
116
+ rawUploadSession: { sessionId: uploadSession.sessionId, expiresAt: uploadSession.expiresAt },
117
+ });
118
+ return { import: this.toImportItem(row), uploadSession, maxBytes: this.getRawUploadMaxBytes() };
119
+ }
120
+ catch (error) {
121
+ await this.storage.abortUpload(uploadSession.sessionId).catch(() => undefined);
122
+ throw error;
123
+ }
124
+ }
63
125
  async appendBatch(projectId, importId, dto, actor) {
64
126
  await this.getWritableProject(projectId, actor);
65
127
  const session = await this.requireImporting(projectId, importId);
128
+ if (session.importMode !== 'batch') {
129
+ throw new common_1.ConflictException('dataset_import_batch_not_allowed');
130
+ }
66
131
  // Reject gaps so the committed staging rows always form a contiguous [0, receivedRows) prefix.
67
132
  if (dto.batchStartIndex > session.receivedRows) {
68
133
  throw new common_1.BadRequestException({ message: 'dataset_import_batch_gap', receivedRows: session.receivedRows });
@@ -85,11 +150,16 @@ let DatasetImportService = class DatasetImportService {
85
150
  async complete(projectId, importId, actor) {
86
151
  await this.getWritableProject(projectId, actor);
87
152
  const session = await this.requireImporting(projectId, importId);
88
- const sampleRows = await this.repo.getSampleDataForInference(importId, TYPE_INFERENCE_SAMPLE_LIMIT);
89
- const fieldSchema = (0, dataset_field_schema_util_1.buildDatasetFieldSchema)(this.toFieldMappings(session), sampleRows);
90
- const hasImages = fieldSchema.some((field) => IMAGE_ROLES.has(field.role));
91
- const datasetId = (0, node_crypto_1.randomUUID)();
153
+ let rawObjectRef = null;
92
154
  try {
155
+ if (session.importMode === 'raw_object') {
156
+ rawObjectRef = await this.ensureRawObjectRef(projectId, session, actor);
157
+ await this.ingestRawObjectIntoStaging(projectId, session, actor, rawObjectRef);
158
+ }
159
+ const sampleRows = await this.repo.getSampleDataForInference(importId, TYPE_INFERENCE_SAMPLE_LIMIT);
160
+ const fieldSchema = (0, dataset_field_schema_util_1.buildDatasetFieldSchema)(this.toFieldMappings(session), sampleRows);
161
+ const hasImages = fieldSchema.some((field) => IMAGE_ROLES.has(field.role));
162
+ const datasetId = (0, node_crypto_1.randomUUID)();
93
163
  const { sampleCount } = await this.repo.promote({
94
164
  importId,
95
165
  projectId,
@@ -108,10 +178,15 @@ let DatasetImportService = class DatasetImportService {
108
178
  actorId: actor.sub,
109
179
  sampleCount,
110
180
  });
181
+ if (rawObjectRef)
182
+ await this.cleanupRawObjectRef(rawObjectRef, importId);
111
183
  this.logger.info({ importId, datasetId, sampleCount }, 'dataset_import_completed');
112
184
  return { dataset, sampleCount };
113
185
  }
114
186
  catch (error) {
187
+ if (session.importMode === 'raw_object') {
188
+ await this.cleanupRawImportResources({ ...session, rawObjectRef: rawObjectRef ?? session.rawObjectRef });
189
+ }
115
190
  if (error instanceof dataset_import_repository_1.DatasetImportEmptyError)
116
191
  throw new common_1.BadRequestException('dataset_import_empty');
117
192
  if (error instanceof dataset_import_repository_1.DatasetNameTakenError)
@@ -122,7 +197,10 @@ let DatasetImportService = class DatasetImportService {
122
197
  // Cancel an in-progress import: delete the session (staging rows cascade). Idempotent — missing session is a no-op.
123
198
  async abort(projectId, importId, actor) {
124
199
  await this.getWritableProject(projectId, actor);
200
+ const row = await this.repo.findImportById(projectId, importId);
125
201
  await this.repo.deleteImport(projectId, importId);
202
+ if (row)
203
+ await this.cleanupRawImportResources(row);
126
204
  }
127
205
  async getImport(projectId, importId, actor) {
128
206
  await this.getAccessibleProject(projectId, actor);
@@ -138,11 +216,16 @@ let DatasetImportService = class DatasetImportService {
138
216
  this.sweeping = true;
139
217
  try {
140
218
  const threshold = new Date(Date.now() - this.getStaleTimeoutMs());
141
- const ids = await this.repo.findStaleImportIds(threshold);
142
- if (ids.length === 0)
219
+ const staleImports = await this.repo.findStaleImports(threshold);
220
+ const ids = staleImports.map((row) => row.id);
221
+ if (ids.length === 0) {
222
+ await this.storage.sweepPendingUploads(threshold.toISOString()).catch(() => undefined);
143
223
  return;
224
+ }
144
225
  const deleted = await this.repo.deleteImportsByIds(ids);
145
- this.logger.info({ deleted }, 'dataset_import_sweep_reaped');
226
+ await Promise.all(staleImports.map((row) => this.cleanupRawImportResources(row)));
227
+ const pendingUploads = await this.storage.sweepPendingUploads(threshold.toISOString()).catch(() => 0);
228
+ this.logger.info({ deleted, pendingUploads }, 'dataset_import_sweep_reaped');
146
229
  }
147
230
  catch (error) {
148
231
  this.logger.error({ error: error.message }, 'dataset_import_sweep_failed');
@@ -191,11 +274,104 @@ let DatasetImportService = class DatasetImportService {
191
274
  return null;
192
275
  return String(value);
193
276
  }
277
+ async ingestRawObjectIntoStaging(projectId, session, actor, rawObjectRef) {
278
+ const stream = await this.storage.getObjectStream(rawObjectRef);
279
+ const fieldMappings = this.toFieldMappings(session);
280
+ const externalIdField = this.externalIdFieldName(session);
281
+ let batch = [];
282
+ let batchBytes = jsonArrayBytesForEmptyBatch();
283
+ let rowIndex = 0;
284
+ const flush = async () => {
285
+ if (batch.length === 0)
286
+ return;
287
+ await this.quotaPolicy.assertCanStore({
288
+ actor: (0, access_control_1.toActorContext)(actor),
289
+ bytes: batchBytes,
290
+ project: { projectId, source: 'local' },
291
+ source: 'dataset_raw_import_batch',
292
+ });
293
+ await this.repo.appendBatch(session.id, batch, rowIndex);
294
+ batch = [];
295
+ batchBytes = jsonArrayBytesForEmptyBatch();
296
+ };
297
+ for await (const rawRow of (0, dataset_import_raw_parser_1.parseRawDatasetRows)(stream, session.sourceFormat)) {
298
+ if (batch.length >= RAW_IMPORT_BATCH_MAX_ROWS)
299
+ await flush();
300
+ const data = this.projectSample(rawRow, fieldMappings);
301
+ const sampleBytes = utf8JsonBytes(data);
302
+ if (sampleBytes > RAW_IMPORT_MAX_SAMPLE_BYTES)
303
+ throw new common_1.BadRequestException('dataset_import_sample_too_large');
304
+ let candidateBytes = jsonArrayBytesAfterAppend(batchBytes, batch.length, sampleBytes);
305
+ if (candidateBytes > RAW_IMPORT_BATCH_MAX_BYTES) {
306
+ if (batch.length === 0)
307
+ throw new common_1.BadRequestException('dataset_import_sample_too_large');
308
+ await flush();
309
+ candidateBytes = jsonArrayBytesAfterAppend(batchBytes, batch.length, sampleBytes);
310
+ if (candidateBytes > RAW_IMPORT_BATCH_MAX_BYTES) {
311
+ throw new common_1.BadRequestException('dataset_import_sample_too_large');
312
+ }
313
+ }
314
+ batch.push({ rowIndex, data, externalId: this.getExternalId(data, externalIdField) });
315
+ batchBytes = candidateBytes;
316
+ rowIndex += 1;
317
+ }
318
+ await flush();
319
+ return rawObjectRef;
320
+ }
321
+ async ensureRawObjectRef(projectId, session, actor) {
322
+ if (session.rawObjectRef) {
323
+ this.assertRawObjectWithinLimit(session.rawObjectRef);
324
+ return session.rawObjectRef;
325
+ }
326
+ if (!session.rawUploadSessionId)
327
+ throw new common_1.BadRequestException('dataset_raw_upload_missing_session');
328
+ const ref = await this.storage.completeUpload({
329
+ sessionId: session.rawUploadSessionId,
330
+ actor: (0, access_control_1.toActorContext)(actor),
331
+ project: { projectId, source: 'local' },
332
+ });
333
+ this.assertRawObjectWithinLimit(ref);
334
+ await this.repo.markRawObjectRef(projectId, session.id, ref);
335
+ return ref;
336
+ }
337
+ projectSample(sample, fieldMappings) {
338
+ return Object.fromEntries(fieldMappings.map((field) => [
339
+ field.name,
340
+ Object.prototype.hasOwnProperty.call(sample, field.name) ? sample[field.name] : null,
341
+ ]));
342
+ }
343
+ assertRawObjectWithinLimit(ref) {
344
+ this.assertUploadSizeWithinLimit(ref.bytes);
345
+ }
346
+ assertUploadSizeWithinLimit(bytes) {
347
+ if (nonnegativeInteger(bytes) > this.getRawUploadMaxBytes()) {
348
+ throw new common_1.BadRequestException('dataset_raw_upload_too_large');
349
+ }
350
+ }
351
+ async cleanupRawImportResources(row) {
352
+ if (row.rawUploadSessionId) {
353
+ await this.storage.abortUpload(row.rawUploadSessionId).catch((error) => {
354
+ this.logger.warn({ importId: row.id, error: error.message }, 'dataset_raw_upload_abort_failed');
355
+ });
356
+ }
357
+ if (row.rawObjectRef) {
358
+ await this.cleanupRawObjectRef(row.rawObjectRef, row.id);
359
+ }
360
+ }
361
+ async cleanupRawObjectRef(ref, importId) {
362
+ await this.storage.deleteObjects([ref]).catch((error) => {
363
+ this.logger.warn({ importId, key: ref.key, error: error.message }, 'dataset_raw_object_delete_failed');
364
+ });
365
+ }
366
+ getRawObjectName(dto) {
367
+ return `input.${dto.sourceFormat}`;
368
+ }
194
369
  toImportItem(row) {
195
370
  return {
196
371
  id: row.id,
197
372
  projectId: row.projectId,
198
373
  datasetId: row.datasetId,
374
+ importMode: row.importMode === 'raw_object' ? 'raw_object' : 'batch',
199
375
  name: row.name,
200
376
  description: row.description,
201
377
  fileName: row.fileName,
@@ -216,6 +392,10 @@ let DatasetImportService = class DatasetImportService {
216
392
  const raw = Number(process.env['DATASET_IMPORT_STALE_TIMEOUT_MS']);
217
393
  return Number.isFinite(raw) && raw >= MIN_TICK_MS ? Math.floor(raw) : DEFAULT_STALE_TIMEOUT_MS;
218
394
  }
395
+ getRawUploadMaxBytes() {
396
+ const raw = Number(process.env['DATASET_RAW_UPLOAD_MAX_BYTES']);
397
+ return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : DEFAULT_DATASET_RAW_UPLOAD_MAX_BYTES;
398
+ }
219
399
  };
220
400
  exports.DatasetImportService = DatasetImportService;
221
401
  exports.DatasetImportService = DatasetImportService = __decorate([
@@ -223,11 +403,18 @@ exports.DatasetImportService = DatasetImportService = __decorate([
223
403
  __metadata("design:paramtypes", [dataset_import_repository_1.DatasetImportRepository,
224
404
  dataset_service_1.DatasetService,
225
405
  access_control_service_1.AccessControlService,
226
- quota_policy_hook_1.QuotaPolicyHook])
406
+ quota_policy_hook_1.QuotaPolicyHook,
407
+ object_storage_provider_1.ObjectStorageProvider])
227
408
  ], DatasetImportService);
228
409
  function utf8JsonBytes(value) {
229
410
  return node_buffer_1.Buffer.byteLength(JSON.stringify(value ?? null), 'utf8');
230
411
  }
412
+ function jsonArrayBytesForEmptyBatch() {
413
+ return 2; // []
414
+ }
415
+ function jsonArrayBytesAfterAppend(currentArrayBytes, currentLength, nextItemBytes) {
416
+ return currentLength === 0 ? jsonArrayBytesForEmptyBatch() + nextItemBytes : currentArrayBytes + 1 + nextItemBytes;
417
+ }
231
418
  function nonnegativeInteger(value) {
232
419
  return Number.isFinite(value) ? Math.max(0, Math.trunc(value ?? 0)) : 0;
233
420
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-import.service.js","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-import.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataset-import.service.js","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-import.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import type { DatasetFieldSchemaDto } from '@proofhound/shared';
3
+ import type { ObjectCodec, StoredObjectRef } from '../../common/contracts/object-storage.provider';
4
+ export interface StagingSample {
5
+ data: unknown;
6
+ externalId: string | null;
7
+ }
8
+ export interface DatasetSampleOffloadRow {
9
+ datasetId: string;
10
+ data: null;
11
+ externalId: string | null;
12
+ payloadRef: {
13
+ shard: StoredObjectRef;
14
+ rowIndex: number;
15
+ };
16
+ searchPreview: string | null;
17
+ expectedOutputScalar: string | null;
18
+ labelScalar: string | null;
19
+ categoryScalar: string | null;
20
+ indexValues: Record<string, string> | null;
21
+ }
22
+ export interface OffloadStagingOptions {
23
+ datasetId: string;
24
+ sampleCount: number;
25
+ batchSize: number;
26
+ fieldSchema: DatasetFieldSchemaDto[];
27
+ codec?: ObjectCodec;
28
+ readBatch: (offset: number, limit: number) => Promise<StagingSample[]>;
29
+ putShard: (name: string, body: Buffer) => Promise<StoredObjectRef>;
30
+ insertRows: (rows: DatasetSampleOffloadRow[]) => Promise<void>;
31
+ }
32
+ export declare function offloadStagingToShards(opts: OffloadStagingOptions): Promise<{
33
+ shards: number;
34
+ storagePrefix: string | null;
35
+ }>;
36
+ //# sourceMappingURL=dataset-sample-offload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-sample-offload.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-offload.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAInG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACvE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACnE,UAAU,EAAE,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA2C3D"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.offloadStagingToShards = offloadStagingToShards;
4
+ const run_result_payload_1 = require("../run-result/run-result-payload");
5
+ const dataset_sample_projection_1 = require("./dataset-sample-projection");
6
+ async function offloadStagingToShards(opts) {
7
+ const codec = opts.codec ?? 'gzip';
8
+ let shardSeq = 0;
9
+ let offset = 0;
10
+ let firstShardKey = null;
11
+ while (offset < opts.sampleCount) {
12
+ const batch = await opts.readBatch(offset, opts.batchSize);
13
+ if (batch.length === 0)
14
+ break;
15
+ const body = await (0, run_result_payload_1.encodeShard)(batch.map((row) => row.data), codec);
16
+ const shardRef = await opts.putShard(`shard-${String(shardSeq).padStart(5, '0')}.jsonl.gz`, body);
17
+ firstShardKey ??= shardRef.key;
18
+ await opts.insertRows(batch.map((row, rowIndex) => {
19
+ const data = (row.data ?? null);
20
+ const projection = (0, dataset_sample_projection_1.projectDatasetSample)(data, opts.fieldSchema);
21
+ return {
22
+ datasetId: opts.datasetId,
23
+ data: null,
24
+ externalId: row.externalId,
25
+ payloadRef: { shard: shardRef, rowIndex },
26
+ searchPreview: projection.searchPreview,
27
+ expectedOutputScalar: projection.expectedOutputScalar,
28
+ labelScalar: projection.labelScalar,
29
+ categoryScalar: projection.categoryScalar,
30
+ indexValues: projection.indexValues,
31
+ };
32
+ }));
33
+ offset += batch.length;
34
+ shardSeq += 1;
35
+ }
36
+ return {
37
+ shards: shardSeq,
38
+ storagePrefix: firstShardKey ? firstShardKey.slice(0, firstShardKey.lastIndexOf('/') + 1) : null,
39
+ };
40
+ }
41
+ //# sourceMappingURL=dataset-sample-offload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-sample-offload.js","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-offload.ts"],"names":[],"mappings":";;AAwCA,wDA6CC;AA5ED,yEAA+D;AAC/D,2EAAmE;AA8B5D,KAAK,UAAU,sBAAsB,CAC1C,IAA2B;IAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;IACnC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,OAAO,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QAE9B,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAW,EAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAC5B,KAAK,CACN,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClG,aAAa,KAAK,QAAQ,CAAC,GAAG,CAAC;QAE/B,MAAM,IAAI,CAAC,UAAU,CACnB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAmC,CAAC;YAClE,MAAM,UAAU,GAAG,IAAA,gDAAoB,EAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAChE,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBACzC,aAAa,EAAE,UAAU,CAAC,aAAa;gBACvC,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;gBACrD,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,cAAc,EAAE,UAAU,CAAC,cAAc;gBACzC,WAAW,EAAE,UAAU,CAAC,WAAW;aACpC,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACvB,QAAQ,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;KACjG,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { ObjectStorageProvider, type StoredObjectRef } from '../../common/contracts/object-storage.provider';
2
+ /** Stored in `dataset_samples.payload_ref`: the shard holding this sample's data + its line. */
3
+ export interface DatasetSamplePayloadRef {
4
+ shard: StoredObjectRef;
5
+ rowIndex: number;
6
+ }
7
+ export interface DatasetSamplePayloadRow {
8
+ data: unknown;
9
+ payloadRef: DatasetSamplePayloadRef | null;
10
+ }
11
+ export declare class DatasetSamplePayloadReader {
12
+ private readonly storage;
13
+ constructor(storage: ObjectStorageProvider);
14
+ /** Resolve one sample's data: inline when present, else from its shard. */
15
+ hydrate(row: DatasetSamplePayloadRow): Promise<unknown>;
16
+ /** Batch: groups rows by shard so a 500-sample batch is one GET per shard, not one per sample. */
17
+ hydrateMany(rows: DatasetSamplePayloadRow[]): Promise<unknown[]>;
18
+ /** The ref to read from, or null when the inline value should be used (cache / no offload / disabled). */
19
+ private shardRef;
20
+ }
21
+ //# sourceMappingURL=dataset-sample-payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-sample-payload.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-payload.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAG7G,gGAAgG;AAChG,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC5C;AAED,qBACa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,qBAAqB;IAE3D,2EAA2E;IACrE,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7D,kGAAkG;IAC5F,WAAW,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAqBtE,0GAA0G;IAC1G,OAAO,CAAC,QAAQ;CAIjB"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DatasetSamplePayloadReader = void 0;
13
+ // DatasetSamplePayloadReader — the read seam for dataset-sample content (SPEC 22 §7.3).
14
+ //
15
+ // The worker hot paths (experiment rendering, optimization rounds) load a sample's full `data`. Once
16
+ // promote tiers it out, `data` is null and the authoritative content lives in an object-storage shard.
17
+ // This seam returns the inline value when present (a small-sample cache, or no offload), else reads
18
+ // the shard. Pure pass-through when storage is disabled / the row was never offloaded. It reuses the
19
+ // generic JSONL shard codec from the run-result seam (one data object per line).
20
+ const common_1 = require("@nestjs/common");
21
+ const object_storage_provider_1 = require("../../common/contracts/object-storage.provider");
22
+ const run_result_payload_1 = require("../run-result/run-result-payload");
23
+ let DatasetSamplePayloadReader = class DatasetSamplePayloadReader {
24
+ constructor(storage) {
25
+ this.storage = storage;
26
+ }
27
+ /** Resolve one sample's data: inline when present, else from its shard. */
28
+ async hydrate(row) {
29
+ const ref = this.shardRef(row);
30
+ if (!ref)
31
+ return row.data ?? null;
32
+ const lines = await (0, run_result_payload_1.decodeShard)(await this.storage.getObject(ref.shard), ref.shard.codec);
33
+ return lines[ref.rowIndex] ?? null;
34
+ }
35
+ /** Batch: groups rows by shard so a 500-sample batch is one GET per shard, not one per sample. */
36
+ async hydrateMany(rows) {
37
+ const out = rows.map((r) => r.data ?? null);
38
+ const byShard = new Map();
39
+ rows.forEach((row, index) => {
40
+ const ref = this.shardRef(row);
41
+ if (!ref)
42
+ return;
43
+ const key = shardKey(ref.shard);
44
+ const group = byShard.get(key);
45
+ if (group)
46
+ group.entries.push({ index, rowIndex: ref.rowIndex });
47
+ else
48
+ byShard.set(key, { shard: ref.shard, entries: [{ index, rowIndex: ref.rowIndex }] });
49
+ });
50
+ await Promise.all([...byShard.values()].map(async ({ shard, entries }) => {
51
+ const lines = await (0, run_result_payload_1.decodeShard)(await this.storage.getObject(shard), shard.codec);
52
+ for (const { index, rowIndex } of entries)
53
+ out[index] = lines[rowIndex] ?? null;
54
+ }));
55
+ return out;
56
+ }
57
+ /** The ref to read from, or null when the inline value should be used (cache / no offload / disabled). */
58
+ shardRef(row) {
59
+ if (row.data != null || row.payloadRef == null || !this.storage.isEnabled())
60
+ return null;
61
+ return row.payloadRef;
62
+ }
63
+ };
64
+ exports.DatasetSamplePayloadReader = DatasetSamplePayloadReader;
65
+ exports.DatasetSamplePayloadReader = DatasetSamplePayloadReader = __decorate([
66
+ (0, common_1.Injectable)(),
67
+ __metadata("design:paramtypes", [object_storage_provider_1.ObjectStorageProvider])
68
+ ], DatasetSamplePayloadReader);
69
+ function shardKey(ref) {
70
+ return `${ref.provider}:${ref.bucket ?? ''}:${ref.key}`;
71
+ }
72
+ //# sourceMappingURL=dataset-sample-payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-sample-payload.js","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-payload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { DatasetFieldSchemaDto } from '@proofhound/shared';
2
+ export interface DatasetSampleProjection {
3
+ searchPreview: string | null;
4
+ expectedOutputScalar: string | null;
5
+ labelScalar: string | null;
6
+ categoryScalar: string | null;
7
+ indexValues: Record<string, string> | null;
8
+ }
9
+ /** Build the DB-side projection for one sample from its data + the dataset's field schema. */
10
+ export declare function projectDatasetSample(data: Record<string, unknown> | null, fieldSchema: DatasetFieldSchemaDto[]): DatasetSampleProjection;
11
+ //# sourceMappingURL=dataset-sample-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-sample-projection.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-projection.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5C;AAoBD,8FAA8F;AAC9F,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACpC,WAAW,EAAE,qBAAqB,EAAE,GACnC,uBAAuB,CAwBzB"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projectDatasetSample = projectDatasetSample;
4
+ const PREVIEW_MAX = 1000;
5
+ const SCALAR_MAX = 200;
6
+ const IMAGE_ROLES = new Set(['image', 'image_url', 'image_base64']);
7
+ function asScalar(value) {
8
+ if (value === null || value === undefined)
9
+ return null;
10
+ if (typeof value === 'string')
11
+ return value.length > SCALAR_MAX ? null : value;
12
+ if (typeof value === 'number' || typeof value === 'boolean')
13
+ return String(value);
14
+ return null;
15
+ }
16
+ function previewOf(data) {
17
+ if (data === null || data === undefined)
18
+ return null;
19
+ const text = typeof data === 'string' ? data : JSON.stringify(data);
20
+ if (text.length === 0)
21
+ return null;
22
+ return text.length > PREVIEW_MAX ? text.slice(0, PREVIEW_MAX) : text;
23
+ }
24
+ /** Build the DB-side projection for one sample from its data + the dataset's field schema. */
25
+ function projectDatasetSample(data, fieldSchema) {
26
+ if (data === null) {
27
+ return { searchPreview: null, expectedOutputScalar: null, labelScalar: null, categoryScalar: null, indexValues: null };
28
+ }
29
+ const expectedField = fieldSchema.find((f) => f.role === 'expected_output')?.name;
30
+ const expectedOutputScalar = expectedField ? asScalar(data[expectedField]) : null;
31
+ // index_values: short scalar values of the non-image fields, so distribution / filter on any
32
+ // configurable field works off `index_values->>field` once `data` is offloaded.
33
+ const indexValues = {};
34
+ for (const field of fieldSchema) {
35
+ if (IMAGE_ROLES.has(field.role))
36
+ continue;
37
+ const scalar = asScalar(data[field.name]);
38
+ if (scalar !== null)
39
+ indexValues[field.name] = scalar;
40
+ }
41
+ return {
42
+ searchPreview: previewOf(data),
43
+ expectedOutputScalar,
44
+ labelScalar: null,
45
+ categoryScalar: null,
46
+ indexValues: Object.keys(indexValues).length > 0 ? indexValues : null,
47
+ };
48
+ }
49
+ //# sourceMappingURL=dataset-sample-projection.js.map