@absolutejs/absolute 0.19.0-beta.615 → 0.19.0-beta.617

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 (46) hide show
  1. package/dist/ai/client/index.js +93 -46
  2. package/dist/ai/client/index.js.map +7 -7
  3. package/dist/ai/client/ui.js +5 -1
  4. package/dist/ai/client/ui.js.map +3 -3
  5. package/dist/ai/index.js +1544 -253
  6. package/dist/ai/index.js.map +14 -12
  7. package/dist/ai/rag/quality.js +49 -6
  8. package/dist/ai/rag/quality.js.map +4 -4
  9. package/dist/ai/rag/ui.js +5 -1
  10. package/dist/ai/rag/ui.js.map +3 -3
  11. package/dist/ai-client/angular/ai/index.js +44 -40
  12. package/dist/ai-client/react/ai/index.js +46 -42
  13. package/dist/ai-client/vue/ai/index.js +44 -40
  14. package/dist/angular/ai/index.js +46 -42
  15. package/dist/angular/ai/index.js.map +6 -6
  16. package/dist/angular/index.js +2 -2
  17. package/dist/angular/index.js.map +1 -1
  18. package/dist/angular/server.js +2 -2
  19. package/dist/angular/server.js.map +1 -1
  20. package/dist/build.js +2 -2
  21. package/dist/build.js.map +1 -1
  22. package/dist/index.js +2 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/react/ai/index.js +97 -50
  25. package/dist/react/ai/index.js.map +9 -9
  26. package/dist/src/ai/client/actions.d.ts +1 -1
  27. package/dist/src/ai/index.d.ts +2 -2
  28. package/dist/src/ai/protocol.d.ts +1 -1
  29. package/dist/src/ai/rag/accessControl.d.ts +2 -0
  30. package/dist/src/ai/rag/chat.d.ts +21 -23
  31. package/dist/src/ai/rag/index.d.ts +4 -2
  32. package/dist/src/ai/rag/ingestion.d.ts +12 -3
  33. package/dist/src/ai/rag/jobState.d.ts +2 -0
  34. package/dist/src/ai/rag/quality.d.ts +20 -10
  35. package/dist/src/vue/ai/useRAG.d.ts +26 -0
  36. package/dist/src/vue/ai/useRAGChunkPreview.d.ts +4 -0
  37. package/dist/src/vue/ai/useRAGDocuments.d.ts +4 -0
  38. package/dist/src/vue/ai/useRAGEvaluate.d.ts +14 -0
  39. package/dist/src/vue/ai/useRAGIndexAdmin.d.ts +2 -0
  40. package/dist/src/vue/ai/useRAGSearch.d.ts +2 -0
  41. package/dist/svelte/ai/index.js +93 -46
  42. package/dist/svelte/ai/index.js.map +7 -7
  43. package/dist/types/ai.d.ts +190 -0
  44. package/dist/vue/ai/index.js +93 -46
  45. package/dist/vue/ai/index.js.map +7 -7
  46. package/package.json +7 -7
@@ -187,7 +187,7 @@ var parseAIMessage = (raw) => {
187
187
  return null;
188
188
  }
189
189
  };
190
- var serializeAIMessage = (msg) => JSON.stringify(msg);
190
+ var serializeAIMessage = (message) => JSON.stringify(message);
191
191
 
192
192
  // src/ai/rag/grounding.ts
193
193
  var getContextString = (value) => typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
@@ -1275,7 +1275,10 @@ var evaluateRAGCollectionCases = async ({
1275
1275
  const expectedIds = normalizeExpectedIds(mode === "chunkId" ? caseInput.expectedChunkIds ?? [] : mode === "source" ? caseInput.expectedSources ?? [] : caseInput.expectedDocumentIds ?? []);
1276
1276
  const topK = typeof caseInput.topK === "number" ? caseInput.topK : typeof input.topK === "number" ? input.topK : defaultTopK;
1277
1277
  const searchInput = {
1278
- filter: typeof caseInput.filter === "object" ? caseInput.filter : input.filter,
1278
+ filter: caseInput.corpusKey ? {
1279
+ ...(typeof caseInput.filter === "object" ? caseInput.filter : input.filter) ?? {},
1280
+ corpusKey: caseInput.corpusKey
1281
+ } : typeof caseInput.filter === "object" ? caseInput.filter : input.filter,
1279
1282
  model: caseInput.model ?? input.model,
1280
1283
  query,
1281
1284
  rerank,
@@ -1677,6 +1680,7 @@ var buildEvaluationCaseTraceSnapshot = ({
1677
1680
  return {
1678
1681
  candidateTopK: currentTrace?.candidateTopK ?? 0,
1679
1682
  caseId: caseResult.caseId,
1683
+ corpusKey: caseResult.corpusKey,
1680
1684
  inputFilter: filter,
1681
1685
  finalCount: currentTrace?.resultCounts.final ?? 0,
1682
1686
  label: caseResult.label,
@@ -2991,16 +2995,32 @@ var loadRAGRetrievalComparisonHistory = async ({
2991
2995
  suiteId,
2992
2996
  label,
2993
2997
  winnerId,
2998
+ corpusGroupKey,
2994
2999
  groupKey,
2995
3000
  tag
2996
- }) => normalizeRetrievalComparisonRuns(await Promise.resolve(store.listRuns({ groupKey, label, limit, suiteId, tag, winnerId })));
3001
+ }) => normalizeRetrievalComparisonRuns(await Promise.resolve(store.listRuns({
3002
+ corpusGroupKey,
3003
+ groupKey,
3004
+ label,
3005
+ limit,
3006
+ suiteId,
3007
+ tag,
3008
+ winnerId
3009
+ })));
2997
3010
  var loadRAGRetrievalBaselines = async ({
2998
3011
  store,
3012
+ corpusGroupKey,
2999
3013
  groupKey,
3000
3014
  tag,
3001
3015
  limit,
3002
3016
  status
3003
- }) => normalizeRetrievalBaselineRecords(await Promise.resolve(store.listBaselines({ groupKey, limit, status, tag })));
3017
+ }) => normalizeRetrievalBaselineRecords(await Promise.resolve(store.listBaselines({
3018
+ corpusGroupKey,
3019
+ groupKey,
3020
+ limit,
3021
+ status,
3022
+ tag
3023
+ })));
3004
3024
  var persistRAGRetrievalBaseline = async ({
3005
3025
  store,
3006
3026
  record
@@ -3010,18 +3030,21 @@ var persistRAGRetrievalBaseline = async ({
3010
3030
  };
3011
3031
  var loadRAGRetrievalReleaseDecisions = async ({
3012
3032
  store,
3033
+ corpusGroupKey,
3013
3034
  groupKey,
3014
3035
  limit,
3015
3036
  kind
3016
- }) => normalizeRetrievalReleaseDecisionRecords(await Promise.resolve(store.listDecisions({ groupKey, kind, limit })));
3037
+ }) => normalizeRetrievalReleaseDecisionRecords(await Promise.resolve(store.listDecisions({ corpusGroupKey, groupKey, kind, limit })));
3017
3038
  var loadRAGRetrievalLaneHandoffDecisions = async ({
3018
3039
  store,
3040
+ corpusGroupKey,
3019
3041
  groupKey,
3020
3042
  limit,
3021
3043
  kind,
3022
3044
  sourceRolloutLabel,
3023
3045
  targetRolloutLabel
3024
3046
  }) => normalizeRetrievalLaneHandoffDecisionRecords(await Promise.resolve(store.listDecisions({
3047
+ corpusGroupKey,
3025
3048
  groupKey,
3026
3049
  kind,
3027
3050
  limit,
@@ -3044,12 +3067,14 @@ var loadRAGRetrievalReleaseIncidents = async ({
3044
3067
  })));
3045
3068
  var loadRAGRetrievalLaneHandoffIncidents = async ({
3046
3069
  store,
3070
+ corpusGroupKey,
3047
3071
  groupKey,
3048
3072
  limit,
3049
3073
  targetRolloutLabel,
3050
3074
  status,
3051
3075
  severity
3052
3076
  }) => normalizeRetrievalReleaseIncidentRecords(await Promise.resolve(store.listIncidents({
3077
+ corpusGroupKey,
3053
3078
  groupKey,
3054
3079
  limit,
3055
3080
  severity,
@@ -3058,12 +3083,14 @@ var loadRAGRetrievalLaneHandoffIncidents = async ({
3058
3083
  })));
3059
3084
  var loadRAGRetrievalLaneHandoffIncidentHistory = async ({
3060
3085
  store,
3086
+ corpusGroupKey,
3061
3087
  action,
3062
3088
  groupKey,
3063
3089
  incidentId,
3064
3090
  limit,
3065
3091
  targetRolloutLabel
3066
3092
  }) => await Promise.resolve(store.listRecords({
3093
+ corpusGroupKey,
3067
3094
  action,
3068
3095
  groupKey,
3069
3096
  incidentId,
@@ -3108,21 +3135,25 @@ var loadRAGRetrievalIncidentRemediationExecutionHistory = async ({
3108
3135
  })));
3109
3136
  var loadRAGRetrievalLaneHandoffAutoCompletePolicyHistory = async ({
3110
3137
  store,
3138
+ corpusGroupKey,
3111
3139
  groupKey,
3112
3140
  limit,
3113
3141
  targetRolloutLabel
3114
3142
  }) => await Promise.resolve(store.listRecords({
3143
+ corpusGroupKey,
3115
3144
  groupKey,
3116
3145
  limit,
3117
3146
  targetRolloutLabel
3118
3147
  }));
3119
3148
  var loadRAGRetrievalReleaseLanePolicyHistory = async ({
3120
3149
  store,
3150
+ corpusGroupKey,
3121
3151
  groupKey,
3122
3152
  limit,
3123
3153
  rolloutLabel,
3124
3154
  scope
3125
3155
  }) => await Promise.resolve(store.listRecords({
3156
+ corpusGroupKey,
3126
3157
  groupKey,
3127
3158
  limit,
3128
3159
  rolloutLabel,
@@ -3130,11 +3161,13 @@ var loadRAGRetrievalReleaseLanePolicyHistory = async ({
3130
3161
  }));
3131
3162
  var loadRAGRetrievalBaselineGatePolicyHistory = async ({
3132
3163
  store,
3164
+ corpusGroupKey,
3133
3165
  groupKey,
3134
3166
  limit,
3135
3167
  rolloutLabel,
3136
3168
  scope
3137
3169
  }) => await Promise.resolve(store.listRecords({
3170
+ corpusGroupKey,
3138
3171
  groupKey,
3139
3172
  limit,
3140
3173
  rolloutLabel,
@@ -3142,6 +3175,7 @@ var loadRAGRetrievalBaselineGatePolicyHistory = async ({
3142
3175
  }));
3143
3176
  var loadRAGRetrievalReleaseLaneEscalationPolicyHistory = async ({
3144
3177
  store,
3178
+ corpusGroupKey,
3145
3179
  groupKey,
3146
3180
  limit,
3147
3181
  targetRolloutLabel
@@ -3229,11 +3263,15 @@ var persistRAGRetrievalReleaseLaneEscalationPolicyHistory = async ({
3229
3263
  };
3230
3264
  var buildRAGEvaluationResponse = (cases) => {
3231
3265
  const totalCases = cases.length;
3266
+ const corpusKeys = [
3267
+ ...new Set(cases.flatMap((entry) => entry.corpusKey ?? []))
3268
+ ];
3232
3269
  const passedCases = cases.filter((entry) => entry.status === "pass").length;
3233
3270
  const partialCases = cases.filter((entry) => entry.status === "partial").length;
3234
3271
  const failedCases = cases.filter((entry) => entry.status === "fail").length;
3235
3272
  return {
3236
3273
  cases,
3274
+ ...corpusKeys.length > 0 ? { corpusKeys } : {},
3237
3275
  elapsedMs: cases.reduce((sum, result) => sum + result.elapsedMs, 0),
3238
3276
  ok: true,
3239
3277
  passingRate: totalCases > 0 ? passedCases / totalCases * 100 : 0,
@@ -3459,6 +3497,9 @@ var compareRAGRetrievalStrategies = async ({
3459
3497
  traceSummary: entry.traceSummary
3460
3498
  })));
3461
3499
  return {
3500
+ corpusKeys: [
3501
+ ...new Set(entries.flatMap((entry) => entry.response.corpusKeys ?? []))
3502
+ ],
3462
3503
  entries,
3463
3504
  leaderboard,
3464
3505
  summary: summarizeRAGRetrievalComparison(entries),
@@ -3491,6 +3532,7 @@ var compareRAGRetrievalTraceSummaries = (current, previous) => ({
3491
3532
  });
3492
3533
  var buildSearchTraceResultSnapshots = (results) => results.map((result) => ({
3493
3534
  chunkId: result.chunkId,
3535
+ corpusKey: result.corpusKey ?? (typeof result.metadata?.corpusKey === "string" ? result.metadata.corpusKey : undefined),
3494
3536
  documentId: typeof result.metadata?.documentId === "string" ? result.metadata.documentId : undefined,
3495
3537
  score: result.score,
3496
3538
  source: result.source,
@@ -3690,6 +3732,7 @@ var summarizeRAGEvaluationCase = ({
3690
3732
  const status = expectedCount === 0 ? "partial" : matchedCount === expectedCount ? "pass" : matchedCount > 0 ? "partial" : "fail";
3691
3733
  return {
3692
3734
  caseId: caseInput.id ?? `case-${caseIndex + 1}`,
3735
+ corpusKey: caseInput.corpusKey,
3693
3736
  elapsedMs,
3694
3737
  expectedCount,
3695
3738
  expectedIds,
@@ -4289,10 +4332,14 @@ var buildProvenanceLabel2 = (metadata) => {
4289
4332
  const transcriptSource = getContextString2(metadata.transcriptSource);
4290
4333
  const pdfTextMode = getContextString2(metadata.pdfTextMode);
4291
4334
  const ocrEngine = getContextString2(metadata.ocrEngine);
4335
+ const extractorRegistryMatch = getContextString2(metadata.extractorRegistryMatch);
4336
+ const chunkingProfile = getContextString2(metadata.chunkingProfile);
4292
4337
  const ocrConfidence = getContextNumber2(metadata.ocrRegionConfidence) ?? getContextNumber2(metadata.ocrConfidence);
4293
4338
  const labels = [
4294
4339
  pdfTextMode ? `PDF ${pdfTextMode}` : "",
4295
4340
  ocrEngine ? `OCR ${ocrEngine}` : "",
4341
+ extractorRegistryMatch ? `Extractor ${extractorRegistryMatch}` : "",
4342
+ chunkingProfile ? `Chunking ${chunkingProfile}` : "",
4296
4343
  typeof ocrConfidence === "number" ? `Confidence ${ocrConfidence.toFixed(2)}` : "",
4297
4344
  mediaKind ? `Media ${mediaKind}` : "",
4298
4345
  transcriptSource ? `Transcript ${transcriptSource}` : "",
@@ -5718,73 +5765,73 @@ var buildRAGAnswerGroundingHistoryPresentation = (history) => ({
5718
5765
  summary: history?.latestRun ? history.latestRun.label : "No persisted provider runs yet."
5719
5766
  });
5720
5767
  // src/ai/client/actions.ts
5721
- var serverMessageToAction = (msg) => {
5722
- switch (msg.type) {
5768
+ var serverMessageToAction = (message) => {
5769
+ switch (message.type) {
5723
5770
  case "chunk":
5724
5771
  return {
5725
- content: msg.content,
5726
- conversationId: msg.conversationId,
5727
- messageId: msg.messageId,
5772
+ content: message.content,
5773
+ conversationId: message.conversationId,
5774
+ messageId: message.messageId,
5728
5775
  type: "chunk"
5729
5776
  };
5730
5777
  case "thinking":
5731
5778
  return {
5732
- content: msg.content,
5733
- conversationId: msg.conversationId,
5734
- messageId: msg.messageId,
5779
+ content: message.content,
5780
+ conversationId: message.conversationId,
5781
+ messageId: message.messageId,
5735
5782
  type: "thinking"
5736
5783
  };
5737
5784
  case "tool_status":
5738
5785
  return {
5739
- conversationId: msg.conversationId,
5740
- input: msg.input,
5741
- messageId: msg.messageId,
5742
- name: msg.name,
5743
- result: msg.result,
5744
- status: msg.status,
5786
+ conversationId: message.conversationId,
5787
+ input: message.input,
5788
+ messageId: message.messageId,
5789
+ name: message.name,
5790
+ result: message.result,
5791
+ status: message.status,
5745
5792
  type: "tool_status"
5746
5793
  };
5747
5794
  case "image":
5748
5795
  return {
5749
- conversationId: msg.conversationId,
5750
- data: msg.data,
5751
- format: msg.format,
5752
- imageId: msg.imageId,
5753
- isPartial: msg.isPartial,
5754
- messageId: msg.messageId,
5755
- revisedPrompt: msg.revisedPrompt,
5796
+ conversationId: message.conversationId,
5797
+ data: message.data,
5798
+ format: message.format,
5799
+ imageId: message.imageId,
5800
+ isPartial: message.isPartial,
5801
+ messageId: message.messageId,
5802
+ revisedPrompt: message.revisedPrompt,
5756
5803
  type: "image"
5757
5804
  };
5758
5805
  case "complete":
5759
5806
  return {
5760
- conversationId: msg.conversationId,
5761
- durationMs: msg.durationMs,
5762
- messageId: msg.messageId,
5763
- model: msg.model,
5764
- sources: msg.sources,
5807
+ conversationId: message.conversationId,
5808
+ durationMs: message.durationMs,
5809
+ messageId: message.messageId,
5810
+ model: message.model,
5811
+ sources: message.sources,
5765
5812
  type: "complete",
5766
- usage: msg.usage
5813
+ usage: message.usage
5767
5814
  };
5768
5815
  case "rag_retrieving":
5769
5816
  return {
5770
- conversationId: msg.conversationId,
5771
- messageId: msg.messageId,
5772
- retrievalStartedAt: msg.retrievalStartedAt,
5817
+ conversationId: message.conversationId,
5818
+ messageId: message.messageId,
5819
+ retrievalStartedAt: message.retrievalStartedAt,
5773
5820
  type: "rag_retrieving"
5774
5821
  };
5775
5822
  case "rag_retrieved":
5776
5823
  return {
5777
- conversationId: msg.conversationId,
5778
- messageId: msg.messageId,
5779
- retrievalDurationMs: msg.retrievalDurationMs,
5780
- retrievalStartedAt: msg.retrievalStartedAt,
5781
- retrievedAt: msg.retrievedAt,
5782
- sources: msg.sources,
5783
- trace: msg.trace,
5824
+ conversationId: message.conversationId,
5825
+ messageId: message.messageId,
5826
+ retrievalDurationMs: message.retrievalDurationMs,
5827
+ retrievalStartedAt: message.retrievalStartedAt,
5828
+ retrievedAt: message.retrievedAt,
5829
+ sources: message.sources,
5830
+ trace: message.trace,
5784
5831
  type: "rag_retrieved"
5785
5832
  };
5786
5833
  case "error":
5787
- return { message: msg.message, type: "error" };
5834
+ return { message: message.message, type: "error" };
5788
5835
  default:
5789
5836
  return null;
5790
5837
  }
@@ -6243,8 +6290,8 @@ var createAIStream = (path, conversationId) => {
6243
6290
  listeners.forEach((listener) => listener());
6244
6291
  };
6245
6292
  const unsubscribeStore = store.subscribe(syncState);
6246
- const unsubscribeConnection = connection.subscribe((msg) => {
6247
- const action = serverMessageToAction(msg);
6293
+ const unsubscribeConnection = connection.subscribe((message) => {
6294
+ const action = serverMessageToAction(message);
6248
6295
  if (action) {
6249
6296
  store.dispatch(action);
6250
6297
  }
@@ -7483,8 +7530,8 @@ var AIStreamProvider = ({
7483
7530
  return;
7484
7531
  }
7485
7532
  const { connection, store } = current;
7486
- const unsubscribe = connection.subscribe((msg) => {
7487
- const action = serverMessageToAction(msg);
7533
+ const unsubscribe = connection.subscribe((message) => {
7534
+ const action = serverMessageToAction(message);
7488
7535
  if (action) {
7489
7536
  store.dispatch(action);
7490
7537
  }
@@ -7520,8 +7567,8 @@ var useAIStream = (path, conversationId) => {
7520
7567
  if (!isStandalone) {
7521
7568
  return;
7522
7569
  }
7523
- const unsubscribe = connection.subscribe((msg) => {
7524
- const action = serverMessageToAction(msg);
7570
+ const unsubscribe = connection.subscribe((message) => {
7571
+ const action = serverMessageToAction(message);
7525
7572
  if (action) {
7526
7573
  store.dispatch(action);
7527
7574
  }
@@ -8453,5 +8500,5 @@ export {
8453
8500
  AIStreamProvider
8454
8501
  };
8455
8502
 
8456
- //# debugId=648A4ADF5C5615DA64756E2164756E21
8503
+ //# debugId=083448E48945D21E64756E2164756E21
8457
8504
  //# sourceMappingURL=index.js.map