@absolutejs/absolute 0.19.0-beta.621 → 0.19.0-beta.622

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ai/index.js CHANGED
@@ -4471,6 +4471,8 @@ var buildProvenanceLabel2 = (metadata) => {
4471
4471
  const mediaSegmentGroupIndex = getContextNumber2(metadata.mediaSegmentGroupIndex);
4472
4472
  const mediaChannel = getContextString2(metadata.mediaChannel);
4473
4473
  const mediaDurationLabel = formatMediaDurationLabel2(metadata.mediaDurationMs);
4474
+ const mediaSegmentWindowDurationLabel = formatMediaDurationLabel2(metadata.mediaSegmentGroupDurationMs);
4475
+ const mediaSegmentGapLabel = formatMediaDurationLabel2(metadata.mediaSegmentGapFromPreviousMs);
4474
4476
  const spreadsheetHeaders = getSpreadsheetHeaders(metadata);
4475
4477
  const slideNotesText = getContextString2(metadata.slideNotesText);
4476
4478
  const pdfTextMode = getContextString2(metadata.pdfTextMode);
@@ -4506,6 +4508,8 @@ var buildProvenanceLabel2 = (metadata) => {
4506
4508
  mediaChannel ? `Channel ${mediaChannel}` : "",
4507
4509
  mediaSpeakerCount ? `${mediaSpeakerCount} speakers` : "",
4508
4510
  mediaDurationLabel ? `Duration ${mediaDurationLabel}` : "",
4511
+ mediaSegmentWindowDurationLabel ? `Segment window ${mediaSegmentWindowDurationLabel}` : "",
4512
+ mediaSegmentGapLabel ? `Gap ${mediaSegmentGapLabel} from previous window` : "",
4509
4513
  transcriptSource ? `Transcript ${transcriptSource}` : "",
4510
4514
  threadTopic ? `Thread ${threadTopic}` : "",
4511
4515
  threadRootMessageId ? `Thread root ${threadRootMessageId}` : "",
@@ -8715,6 +8719,10 @@ var scoreStructuredEvidenceMatch = (queryTokens, result) => {
8715
8719
  const mediaSpeakerCount = typeof metadata.mediaSpeakerCount === "number" ? metadata.mediaSpeakerCount : undefined;
8716
8720
  const mediaSegmentCount = typeof metadata.mediaSegmentCount === "number" ? metadata.mediaSegmentCount : undefined;
8717
8721
  const mediaSegmentGroupSize = typeof metadata.mediaSegmentGroupSize === "number" ? metadata.mediaSegmentGroupSize : undefined;
8722
+ const mediaSegmentGroupStartMs = typeof metadata.mediaSegmentGroupStartMs === "number" && Number.isFinite(metadata.mediaSegmentGroupStartMs) ? metadata.mediaSegmentGroupStartMs : typeof metadata.mediaSegmentStartMs === "number" && Number.isFinite(metadata.mediaSegmentStartMs) ? metadata.mediaSegmentStartMs : undefined;
8723
+ const mediaSegmentGroupEndMs = typeof metadata.mediaSegmentGroupEndMs === "number" && Number.isFinite(metadata.mediaSegmentGroupEndMs) ? metadata.mediaSegmentGroupEndMs : typeof metadata.mediaSegmentEndMs === "number" && Number.isFinite(metadata.mediaSegmentEndMs) ? metadata.mediaSegmentEndMs : undefined;
8724
+ const mediaSegmentGroupDurationMs = typeof metadata.mediaSegmentGroupDurationMs === "number" && Number.isFinite(metadata.mediaSegmentGroupDurationMs) ? metadata.mediaSegmentGroupDurationMs : typeof mediaSegmentGroupStartMs === "number" && typeof mediaSegmentGroupEndMs === "number" && mediaSegmentGroupEndMs >= mediaSegmentGroupStartMs ? mediaSegmentGroupEndMs - mediaSegmentGroupStartMs : undefined;
8725
+ const mediaSegmentGapFromPreviousMs = typeof metadata.mediaSegmentGapFromPreviousMs === "number" && Number.isFinite(metadata.mediaSegmentGapFromPreviousMs) ? metadata.mediaSegmentGapFromPreviousMs : undefined;
8718
8726
  const mediaChannel = metadataString(metadata.mediaChannel);
8719
8727
  const speaker = metadataString(metadata.speaker);
8720
8728
  const ocrConfidence = typeof metadata.ocrRegionConfidence === "number" ? metadata.ocrRegionConfidence : typeof metadata.ocrPageAverageConfidence === "number" ? metadata.ocrPageAverageConfidence : typeof metadata.ocrAverageConfidence === "number" ? metadata.ocrAverageConfidence : typeof metadata.ocrConfidence === "number" ? metadata.ocrConfidence : undefined;
@@ -8836,6 +8844,36 @@ var scoreStructuredEvidenceMatch = (queryTokens, result) => {
8836
8844
  ])) {
8837
8845
  score += 0.06;
8838
8846
  }
8847
+ if (typeof mediaSegmentGroupStartMs === "number" && typeof mediaSegmentGroupEndMs === "number" && queryHasAnyToken(queryTokens, [
8848
+ "timestamp",
8849
+ "segment",
8850
+ "segments",
8851
+ "audio",
8852
+ "video",
8853
+ "window",
8854
+ "start",
8855
+ "end"
8856
+ ])) {
8857
+ score += 0.05;
8858
+ }
8859
+ if (typeof mediaSegmentGroupDurationMs === "number" && queryHasAnyToken(queryTokens, ["duration", "timestamp", "segment"])) {
8860
+ score += 0.06;
8861
+ if (queryHasAnyToken(queryTokens, ["long", "longer", "longest"]) && mediaSegmentGroupDurationMs >= 1e4) {
8862
+ score += 0.12;
8863
+ }
8864
+ if (queryHasAnyToken(queryTokens, ["short", "shorter", "shortest"]) && mediaSegmentGroupDurationMs <= 5000) {
8865
+ score += 0.12;
8866
+ }
8867
+ }
8868
+ if (queryHasAnyToken(queryTokens, ["continuous", "gap", "gaps"]) && typeof mediaSegmentGapFromPreviousMs === "number") {
8869
+ if (mediaSegmentGapFromPreviousMs === 0) {
8870
+ score += 0.2;
8871
+ } else if (mediaSegmentGapFromPreviousMs <= 1000) {
8872
+ score += 0.14;
8873
+ } else if (mediaSegmentGapFromPreviousMs <= 3000) {
8874
+ score += 0.06;
8875
+ }
8876
+ }
8839
8877
  if (mediaChannel && queryHasAnyToken(queryTokens, [
8840
8878
  "channel",
8841
8879
  "channels",
@@ -9133,28 +9171,71 @@ var formatMediaTimestampForIngest = (value) => {
9133
9171
  return `${String(minutes).padStart(2, "0")}:${String(seconds).padStart(2, "0")}.${String(milliseconds).padStart(3, "0")}`;
9134
9172
  };
9135
9173
  var normalizeMediaSpeaker = (value) => typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
9136
- var normalizeMediaChannel = (value) => typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
9174
+ var normalizeMediaTimestamp = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
9175
+ var normalizeMediaSegmentWindow = (startMs, endMs) => {
9176
+ if (typeof startMs !== "number" && typeof endMs !== "number") {
9177
+ return { endMs, startMs };
9178
+ }
9179
+ if (typeof startMs === "number" && typeof endMs === "number" && endMs < startMs) {
9180
+ return {
9181
+ startMs: undefined,
9182
+ endMs: undefined
9183
+ };
9184
+ }
9185
+ return {
9186
+ startMs,
9187
+ endMs
9188
+ };
9189
+ };
9190
+ var canonicalMediaChannel = (value) => {
9191
+ if (typeof value !== "string") {
9192
+ return;
9193
+ }
9194
+ switch (value.trim().toLowerCase().replace(/[\s_-]+/g, "")) {
9195
+ case "l":
9196
+ case "left":
9197
+ case "ch1":
9198
+ case "channel1":
9199
+ case "one":
9200
+ return "left";
9201
+ case "r":
9202
+ case "right":
9203
+ case "ch2":
9204
+ case "channel2":
9205
+ case "two":
9206
+ return "right";
9207
+ case "m":
9208
+ case "mono":
9209
+ return "mono";
9210
+ default:
9211
+ return value.trim().toLowerCase();
9212
+ }
9213
+ };
9214
+ var normalizeMediaChannel = (value) => canonicalMediaChannel(value);
9137
9215
  var buildMediaTimestampBoundary = (segments) => {
9138
9216
  let startMs;
9139
9217
  let endMs;
9140
9218
  for (const segment of segments) {
9141
9219
  if (typeof segment.startMs === "number" && Number.isFinite(segment.startMs)) {
9142
- startMs = segment.startMs;
9143
- break;
9220
+ startMs = typeof startMs === "number" ? Math.min(startMs, segment.startMs) : segment.startMs;
9144
9221
  }
9145
9222
  }
9146
- for (let index = segments.length - 1;index >= 0; index--) {
9147
- const segment = segments[index];
9148
- if (!segment) {
9149
- continue;
9150
- }
9223
+ for (const segment of segments) {
9151
9224
  if (typeof segment.endMs === "number" && Number.isFinite(segment.endMs)) {
9152
- endMs = segment.endMs;
9153
- break;
9225
+ endMs = typeof endMs === "number" ? Math.max(endMs, segment.endMs) : segment.endMs;
9154
9226
  }
9155
9227
  }
9156
9228
  return { endMs, startMs };
9157
9229
  };
9230
+ var normalizeMediaSegment = (segment) => {
9231
+ const normalizedTimestampWindow = normalizeMediaSegmentWindow(normalizeMediaTimestamp(segment.startMs), normalizeMediaTimestamp(segment.endMs));
9232
+ return {
9233
+ ...segment,
9234
+ speaker: normalizeMediaSpeaker(segment.speaker),
9235
+ channel: canonicalMediaChannel(segment.channel),
9236
+ ...normalizedTimestampWindow
9237
+ };
9238
+ };
9158
9239
  var groupTranscriptSegments = (segments) => {
9159
9240
  const groups = [];
9160
9241
  for (const segment of segments) {
@@ -10743,7 +10824,7 @@ var createRAGMediaFileExtractor = (transcriber) => ({
10743
10824
  return false;
10744
10825
  }
10745
10826
  return normalizeWhitespace(segment.text ?? "").length > 0;
10746
- });
10827
+ }).map(normalizeMediaSegment);
10747
10828
  const segmentGroups = groupTranscriptSegments(rawSegments);
10748
10829
  const source = input.source ?? input.path ?? input.name ?? `${slugify(input.title ?? DEFAULT_BINARY_NAME)}.media.txt`;
10749
10830
  const segmentCount = rawSegments.length;
@@ -10758,6 +10839,7 @@ var createRAGMediaFileExtractor = (transcriber) => ({
10758
10839
  ...new Set(rawSegments.map((segment) => normalizeMediaSpeaker(segment.speaker)).filter((value) => typeof value === "string"))
10759
10840
  ];
10760
10841
  const segmentDocuments = [];
10842
+ let previousGroupEndMs;
10761
10843
  for (const [index, segmentGroup] of segmentGroups.entries()) {
10762
10844
  const { endMs, startMs } = buildMediaTimestampBoundary(segmentGroup.segments);
10763
10845
  const groupText = normalizeWhitespace(segmentGroup.segments.map((segment) => normalizeWhitespace(segment.text ?? "")).filter((value) => value.length > 0).join(" "));
@@ -10769,6 +10851,9 @@ var createRAGMediaFileExtractor = (transcriber) => ({
10769
10851
  const startLabel = formatMediaTimestampForIngest(startMs);
10770
10852
  const endLabel = formatMediaTimestampForIngest(endMs);
10771
10853
  const mediaKind = typeof result.metadata?.mediaKind === "string" ? result.metadata.mediaKind : "media";
10854
+ const mediaSegmentGapFromPreviousMs = typeof startMs === "number" && typeof previousGroupEndMs === "number" && Number.isFinite(startMs) && Number.isFinite(previousGroupEndMs) ? Math.max(0, startMs - previousGroupEndMs) : undefined;
10855
+ previousGroupEndMs = endMs;
10856
+ const mediaSegmentGroupDurationMs = typeof endMs === "number" && typeof startMs === "number" && Number.isFinite(endMs) && Number.isFinite(startMs) && endMs >= startMs ? endMs - startMs : undefined;
10772
10857
  segmentDocuments.push({
10773
10858
  chunking: input.chunking,
10774
10859
  contentType: input.contentType,
@@ -10787,6 +10872,10 @@ var createRAGMediaFileExtractor = (transcriber) => ({
10787
10872
  mediaSegmentGroupSize: segmentGroup.segments.length,
10788
10873
  mediaSegmentGroupSpeaker: segmentGroup.speaker,
10789
10874
  mediaChannel: segmentGroup.channel,
10875
+ mediaSegmentGroupDurationMs,
10876
+ mediaSegmentGapFromPreviousMs,
10877
+ mediaSegmentGroupStartMs: startMs,
10878
+ mediaSegmentGroupEndMs: endMs,
10790
10879
  mediaSegments: segmentGroup.segments,
10791
10880
  startMs: mediaSegmentStartMs,
10792
10881
  endMs: mediaSegmentEndMs,
@@ -12650,6 +12739,9 @@ var buildRAGContextProvenanceLabel = (metadata) => {
12650
12739
  const threadTopic = getContextString3(metadata.threadTopic);
12651
12740
  const from = getContextString3(metadata.from);
12652
12741
  const speaker = getContextString3(metadata.speaker);
12742
+ const mediaChannel = getContextString3(metadata.mediaChannel);
12743
+ const mediaSegmentGroupDurationMs = getContextNumber3(metadata.mediaSegmentGroupDurationMs);
12744
+ const mediaSegmentGapFromPreviousMs = getContextNumber3(metadata.mediaSegmentGapFromPreviousMs);
12653
12745
  const ocrConfidence = getContextNumber3(metadata.ocrRegionConfidence) ?? getContextNumber3(metadata.ocrConfidence);
12654
12746
  const labels = [
12655
12747
  pdfTextMode ? `PDF ${pdfTextMode}` : "",
@@ -12659,6 +12751,9 @@ var buildRAGContextProvenanceLabel = (metadata) => {
12659
12751
  transcriptSource ? `Transcript ${transcriptSource}` : "",
12660
12752
  threadTopic ? `Thread ${threadTopic}` : "",
12661
12753
  speaker ? `Speaker ${speaker}` : "",
12754
+ mediaChannel ? `Channel ${mediaChannel}` : "",
12755
+ typeof mediaSegmentGroupDurationMs === "number" ? `Segment window ${String(Math.floor(mediaSegmentGroupDurationMs / 1000))}s` : "",
12756
+ typeof mediaSegmentGapFromPreviousMs === "number" ? `Segment gap ${String(Math.floor(mediaSegmentGapFromPreviousMs / 1000))}s` : "",
12662
12757
  from ? `Sender ${from}` : ""
12663
12758
  ].filter((value) => value.length > 0);
12664
12759
  return labels.length > 0 ? labels.join(" \xB7 ") : undefined;
@@ -24836,5 +24931,5 @@ export {
24836
24931
  aiChat
24837
24932
  };
24838
24933
 
24839
- //# debugId=AFAF0A5BC1AB4BC864756E2164756E21
24934
+ //# debugId=E93ED81BD7E5AC3C64756E2164756E21
24840
24935
  //# sourceMappingURL=index.js.map