@absolutejs/voice 0.0.22-beta.412 → 0.0.22-beta.414

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.
@@ -5396,6 +5396,25 @@ var createVoiceScopedTraceEventStore = (store, scope) => {
5396
5396
  remove: (id) => store.remove(id)
5397
5397
  };
5398
5398
  };
5399
+ var createVoiceProofTraceStore = (options = {}) => {
5400
+ const proofStore = options.proofStore ?? createVoiceMemoryTraceEventStore();
5401
+ const scopedProofStore = options.scope ? createVoiceScopedTraceEventStore(proofStore, options.scope) : proofStore;
5402
+ return {
5403
+ append: async (event) => {
5404
+ const stored = await proofStore.append(event);
5405
+ await options.mirrorStore?.append(stored);
5406
+ return stored;
5407
+ },
5408
+ get: async (id) => await proofStore.get(id) ?? await options.mirrorStore?.get(id),
5409
+ list: (filter) => scopedProofStore.list(filter),
5410
+ remove: async (id) => {
5411
+ await Promise.all([
5412
+ proofStore.remove(id),
5413
+ options.mirrorStore?.remove(id) ?? Promise.resolve()
5414
+ ]);
5415
+ }
5416
+ };
5417
+ };
5399
5418
  var isPruneTimeMatch = (event, options) => {
5400
5419
  if (typeof options.before === "number" && event.at >= options.before) {
5401
5420
  return false;
package/dist/index.d.ts CHANGED
@@ -96,7 +96,7 @@ export { createVoiceOpsStatusRoutes, renderVoiceOpsStatusHTML } from './opsStatu
96
96
  export { createVoiceQualityRoutes, evaluateVoiceQuality, renderVoiceQualityHTML } from './qualityRoutes';
97
97
  export { createVoiceResilienceRoutes, createVoiceRoutingDecisionSummary, listVoiceRoutingEvents, renderVoiceResilienceHTML, summarizeVoiceRoutingDecision, summarizeVoiceRoutingSessions } from './resilienceRoutes';
98
98
  export { createVoiceSTTProviderRouter, createVoiceTTSProviderRouter } from './providerAdapters';
99
- export { buildVoiceTraceReplay, createVoiceMemoryTraceSinkDeliveryStore, createVoiceProfileTraceTagger, createVoiceTraceHTTPSink, createVoiceTraceS3Sink, createVoiceMemoryTraceEventStore, createVoiceScopedTraceEventStore, createVoiceTraceSinkDeliveryId, createVoiceTraceSinkDeliveryRecord, createVoiceTraceSinkStore, createVoiceTraceEvent, createVoiceTraceEventId, deliverVoiceTraceEventsToSinks, evaluateVoiceTrace, exportVoiceTrace, filterVoiceTraceEvents, pruneVoiceTraceEvents, redactVoiceTraceEvent, redactVoiceTraceEvents, redactVoiceTraceText, renderVoiceTraceHTML, renderVoiceTraceMarkdown, resolveVoiceTraceRedactionOptions, selectVoiceTraceEventsForPrune, summarizeVoiceTrace } from './trace';
99
+ export { buildVoiceTraceReplay, createVoiceMemoryTraceSinkDeliveryStore, createVoiceProfileTraceTagger, createVoiceTraceHTTPSink, createVoiceTraceS3Sink, createVoiceMemoryTraceEventStore, createVoiceProofTraceStore, createVoiceScopedTraceEventStore, createVoiceTraceSinkDeliveryId, createVoiceTraceSinkDeliveryRecord, createVoiceTraceSinkStore, createVoiceTraceEvent, createVoiceTraceEventId, deliverVoiceTraceEventsToSinks, evaluateVoiceTrace, exportVoiceTrace, filterVoiceTraceEvents, pruneVoiceTraceEvents, redactVoiceTraceEvent, redactVoiceTraceEvents, redactVoiceTraceText, renderVoiceTraceHTML, renderVoiceTraceMarkdown, resolveVoiceTraceRedactionOptions, selectVoiceTraceEventsForPrune, summarizeVoiceTrace } from './trace';
100
100
  export { buildVoiceTraceDeliveryReport, createVoiceTraceDeliveryHTMLHandler, createVoiceTraceDeliveryJSONHandler, createVoiceTraceDeliveryRoutes, renderVoiceTraceDeliveryHTML, resolveVoiceTraceDeliveryFilter } from './traceDeliveryRoutes';
101
101
  export { createVoiceTraceTimelineRoutes, renderVoiceTraceTimelineHTML, renderVoiceTraceTimelineSessionHTML, summarizeVoiceTraceTimeline } from './traceTimeline';
102
102
  export { createVoiceSQLiteAuditEventStore, createVoiceSQLiteAuditSinkDeliveryStore, createVoiceSQLiteCampaignStore, createVoiceSQLiteExternalObjectMapStore, createVoiceSQLiteIntegrationEventStore, createVoiceSQLiteReviewStore, createVoiceSQLiteRuntimeStorage, createVoiceSQLiteSessionStore, createVoiceSQLiteTaskStore, createVoiceSQLiteTelephonyWebhookIdempotencyStore, createVoiceSQLiteTraceSinkDeliveryStore, createVoiceSQLiteTraceEventStore } from './sqliteStore';
package/dist/index.js CHANGED
@@ -9929,6 +9929,25 @@ var createVoiceScopedTraceEventStore = (store, scope) => {
9929
9929
  remove: (id) => store.remove(id)
9930
9930
  };
9931
9931
  };
9932
+ var createVoiceProofTraceStore = (options = {}) => {
9933
+ const proofStore = options.proofStore ?? createVoiceMemoryTraceEventStore();
9934
+ const scopedProofStore = options.scope ? createVoiceScopedTraceEventStore(proofStore, options.scope) : proofStore;
9935
+ return {
9936
+ append: async (event) => {
9937
+ const stored = await proofStore.append(event);
9938
+ await options.mirrorStore?.append(stored);
9939
+ return stored;
9940
+ },
9941
+ get: async (id) => await proofStore.get(id) ?? await options.mirrorStore?.get(id),
9942
+ list: (filter) => scopedProofStore.list(filter),
9943
+ remove: async (id) => {
9944
+ await Promise.all([
9945
+ proofStore.remove(id),
9946
+ options.mirrorStore?.remove(id) ?? Promise.resolve()
9947
+ ]);
9948
+ }
9949
+ };
9950
+ };
9932
9951
  var isPruneTimeMatch = (event, options) => {
9933
9952
  if (typeof options.before === "number" && event.at >= options.before) {
9934
9953
  return false;
@@ -32415,6 +32434,7 @@ var assertVoiceObservabilityExportRecord = (input, options) => {
32415
32434
  }
32416
32435
  return result;
32417
32436
  };
32437
+ var resolveVoiceObservabilityArtifactIndex = async (source) => typeof source === "function" ? await source() : source;
32418
32438
  var isDeliveryStore = (value) => !Array.isArray(value) && typeof value.list === "function";
32419
32439
  var getString18 = (value) => typeof value === "string" ? value : undefined;
32420
32440
  var getProviderKind = (payload) => getString18(payload.kind) ?? getString18(payload.providerKind);
@@ -33600,7 +33620,7 @@ var createVoiceObservabilityExportRoutes = (options = {}) => {
33600
33620
  });
33601
33621
  app.get(path, async () => Response.json(await buildReport(), { headers }));
33602
33622
  if (artifactIndexPath !== false) {
33603
- app.get(artifactIndexPath, async () => Response.json(buildVoiceObservabilityArtifactIndex(await buildReport()), { headers }));
33623
+ app.get(artifactIndexPath, async () => Response.json(options.artifactIndex ? await resolveVoiceObservabilityArtifactIndex(options.artifactIndex) : buildVoiceObservabilityArtifactIndex(await buildReport()), { headers }));
33604
33624
  }
33605
33625
  if (artifactDownloadPath !== false) {
33606
33626
  app.get(`${artifactDownloadPath}/:artifactId`, async ({ params }) => {
@@ -40703,6 +40723,7 @@ export {
40703
40723
  createVoiceProviderCapabilityHTMLHandler,
40704
40724
  createVoiceProofTrendRoutes,
40705
40725
  createVoiceProofTrendRecommendationRoutes,
40726
+ createVoiceProofTraceStore,
40706
40727
  createVoiceProofPackSupportBundleSection,
40707
40728
  createVoiceProofPackRoutes,
40708
40729
  createVoiceProofPackProviderSloSection,
@@ -399,6 +399,7 @@ export type VoiceObservabilityExportOptions = {
399
399
  export type VoiceObservabilityExportRoutesOptions = VoiceObservabilityExportOptions & {
400
400
  headers?: HeadersInit;
401
401
  artifactDownloadPath?: false | string;
402
+ artifactIndex?: VoiceObservabilityExportArtifactIndex | (() => VoiceObservabilityExportArtifactIndex | Promise<VoiceObservabilityExportArtifactIndex>);
402
403
  artifactIndexPath?: false | string;
403
404
  deliveryDestinations?: VoiceObservabilityExportDeliveryDestination[];
404
405
  deliveryPath?: false | string;
@@ -2588,6 +2588,25 @@ var createVoiceScopedTraceEventStore = (store, scope) => {
2588
2588
  remove: (id) => store.remove(id)
2589
2589
  };
2590
2590
  };
2591
+ var createVoiceProofTraceStore = (options = {}) => {
2592
+ const proofStore = options.proofStore ?? createVoiceMemoryTraceEventStore();
2593
+ const scopedProofStore = options.scope ? createVoiceScopedTraceEventStore(proofStore, options.scope) : proofStore;
2594
+ return {
2595
+ append: async (event) => {
2596
+ const stored = await proofStore.append(event);
2597
+ await options.mirrorStore?.append(stored);
2598
+ return stored;
2599
+ },
2600
+ get: async (id) => await proofStore.get(id) ?? await options.mirrorStore?.get(id),
2601
+ list: (filter) => scopedProofStore.list(filter),
2602
+ remove: async (id) => {
2603
+ await Promise.all([
2604
+ proofStore.remove(id),
2605
+ options.mirrorStore?.remove(id) ?? Promise.resolve()
2606
+ ]);
2607
+ }
2608
+ };
2609
+ };
2591
2610
  var isPruneTimeMatch = (event, options) => {
2592
2611
  if (typeof options.before === "number" && event.at >= options.before) {
2593
2612
  return false;
@@ -1149,6 +1149,25 @@ var createVoiceScopedTraceEventStore = (store, scope) => {
1149
1149
  remove: (id) => store.remove(id)
1150
1150
  };
1151
1151
  };
1152
+ var createVoiceProofTraceStore = (options = {}) => {
1153
+ const proofStore = options.proofStore ?? createVoiceMemoryTraceEventStore();
1154
+ const scopedProofStore = options.scope ? createVoiceScopedTraceEventStore(proofStore, options.scope) : proofStore;
1155
+ return {
1156
+ append: async (event) => {
1157
+ const stored = await proofStore.append(event);
1158
+ await options.mirrorStore?.append(stored);
1159
+ return stored;
1160
+ },
1161
+ get: async (id) => await proofStore.get(id) ?? await options.mirrorStore?.get(id),
1162
+ list: (filter) => scopedProofStore.list(filter),
1163
+ remove: async (id) => {
1164
+ await Promise.all([
1165
+ proofStore.remove(id),
1166
+ options.mirrorStore?.remove(id) ?? Promise.resolve()
1167
+ ]);
1168
+ }
1169
+ };
1170
+ };
1152
1171
  var isPruneTimeMatch = (event, options) => {
1153
1172
  if (typeof options.before === "number" && event.at >= options.before) {
1154
1173
  return false;
@@ -9314,6 +9314,25 @@ var createVoiceScopedTraceEventStore = (store, scope) => {
9314
9314
  remove: (id) => store.remove(id)
9315
9315
  };
9316
9316
  };
9317
+ var createVoiceProofTraceStore = (options = {}) => {
9318
+ const proofStore = options.proofStore ?? createVoiceMemoryTraceEventStore();
9319
+ const scopedProofStore = options.scope ? createVoiceScopedTraceEventStore(proofStore, options.scope) : proofStore;
9320
+ return {
9321
+ append: async (event) => {
9322
+ const stored = await proofStore.append(event);
9323
+ await options.mirrorStore?.append(stored);
9324
+ return stored;
9325
+ },
9326
+ get: async (id) => await proofStore.get(id) ?? await options.mirrorStore?.get(id),
9327
+ list: (filter) => scopedProofStore.list(filter),
9328
+ remove: async (id) => {
9329
+ await Promise.all([
9330
+ proofStore.remove(id),
9331
+ options.mirrorStore?.remove(id) ?? Promise.resolve()
9332
+ ]);
9333
+ }
9334
+ };
9335
+ };
9317
9336
  var isPruneTimeMatch = (event, options) => {
9318
9337
  if (typeof options.before === "number" && event.at >= options.before) {
9319
9338
  return false;
package/dist/trace.d.ts CHANGED
@@ -29,6 +29,11 @@ export type VoiceTraceEventStore<TEvent extends StoredVoiceTraceEvent = StoredVo
29
29
  remove: (id: string) => Promise<void>;
30
30
  };
31
31
  export type VoiceScopedTraceEventStoreOptions = VoiceTraceEventFilter;
32
+ export type VoiceProofTraceStoreOptions<TEvent extends StoredVoiceTraceEvent = StoredVoiceTraceEvent> = {
33
+ mirrorStore?: VoiceTraceEventStore<TEvent>;
34
+ proofStore?: VoiceTraceEventStore<TEvent>;
35
+ scope?: VoiceScopedTraceEventStoreOptions;
36
+ };
32
37
  export type VoiceTracePruneFilter = Omit<VoiceTraceEventFilter, 'limit'>;
33
38
  export type VoiceTracePruneOptions = {
34
39
  before?: number;
@@ -214,6 +219,7 @@ export declare const createVoiceTraceSinkDeliveryRecord: (input: {
214
219
  } & Partial<Omit<VoiceTraceSinkDeliveryRecord, "createdAt" | "events" | "id">>) => VoiceTraceSinkDeliveryRecord;
215
220
  export declare const filterVoiceTraceEvents: <TEvent extends StoredVoiceTraceEvent = StoredVoiceTraceEvent>(events: TEvent[], filter?: VoiceTraceEventFilter) => TEvent[];
216
221
  export declare const createVoiceScopedTraceEventStore: <TEvent extends StoredVoiceTraceEvent = StoredVoiceTraceEvent>(store: VoiceTraceEventStore<TEvent>, scope: VoiceScopedTraceEventStoreOptions) => VoiceTraceEventStore<TEvent>;
222
+ export declare const createVoiceProofTraceStore: <TEvent extends StoredVoiceTraceEvent = StoredVoiceTraceEvent>(options?: VoiceProofTraceStoreOptions<TEvent>) => VoiceTraceEventStore<TEvent>;
217
223
  export declare const selectVoiceTraceEventsForPrune: <TEvent extends StoredVoiceTraceEvent = StoredVoiceTraceEvent>(events: TEvent[], options?: Omit<VoiceTracePruneOptions, "store">) => TEvent[];
218
224
  export declare const pruneVoiceTraceEvents: (options: VoiceTracePruneOptions) => Promise<VoiceTracePruneResult>;
219
225
  export declare const createVoiceTraceHTTPSink: <TBody extends Record<string, unknown> = Record<string, unknown>>(options: VoiceTraceHTTPSinkOptions<TBody>) => VoiceTraceSink;
package/dist/vue/index.js CHANGED
@@ -2509,6 +2509,25 @@ var createVoiceScopedTraceEventStore = (store, scope) => {
2509
2509
  remove: (id) => store.remove(id)
2510
2510
  };
2511
2511
  };
2512
+ var createVoiceProofTraceStore = (options = {}) => {
2513
+ const proofStore = options.proofStore ?? createVoiceMemoryTraceEventStore();
2514
+ const scopedProofStore = options.scope ? createVoiceScopedTraceEventStore(proofStore, options.scope) : proofStore;
2515
+ return {
2516
+ append: async (event) => {
2517
+ const stored = await proofStore.append(event);
2518
+ await options.mirrorStore?.append(stored);
2519
+ return stored;
2520
+ },
2521
+ get: async (id) => await proofStore.get(id) ?? await options.mirrorStore?.get(id),
2522
+ list: (filter) => scopedProofStore.list(filter),
2523
+ remove: async (id) => {
2524
+ await Promise.all([
2525
+ proofStore.remove(id),
2526
+ options.mirrorStore?.remove(id) ?? Promise.resolve()
2527
+ ]);
2528
+ }
2529
+ };
2530
+ };
2512
2531
  var isPruneTimeMatch = (event, options) => {
2513
2532
  if (typeof options.before === "number" && event.at >= options.before) {
2514
2533
  return false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/voice",
3
- "version": "0.0.22-beta.412",
3
+ "version": "0.0.22-beta.414",
4
4
  "description": "Voice primitives and Elysia plugin for AbsoluteJS",
5
5
  "repository": {
6
6
  "type": "git",