@mnemom/aip-otel-exporter 0.1.0

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 (66) hide show
  1. package/README.md +172 -0
  2. package/dashboards/README.md +92 -0
  3. package/dashboards/datadog-aip-overview.json +311 -0
  4. package/dashboards/grafana-aip-detail.json +403 -0
  5. package/dashboards/grafana-aip-overview.json +431 -0
  6. package/dist/attributes.d.ts +70 -0
  7. package/dist/attributes.d.ts.map +1 -0
  8. package/dist/attributes.js +81 -0
  9. package/dist/attributes.js.map +1 -0
  10. package/dist/auto/aap-instrumentation.d.ts +23 -0
  11. package/dist/auto/aap-instrumentation.d.ts.map +1 -0
  12. package/dist/auto/aap-instrumentation.js +112 -0
  13. package/dist/auto/aap-instrumentation.js.map +1 -0
  14. package/dist/auto/aip-instrumentation.d.ts +22 -0
  15. package/dist/auto/aip-instrumentation.d.ts.map +1 -0
  16. package/dist/auto/aip-instrumentation.js +87 -0
  17. package/dist/auto/aip-instrumentation.js.map +1 -0
  18. package/dist/auto/index.d.ts +20 -0
  19. package/dist/auto/index.d.ts.map +1 -0
  20. package/dist/auto/index.js +22 -0
  21. package/dist/auto/index.js.map +1 -0
  22. package/dist/index.d.ts +33 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +58 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/manual/record-coherence.d.ts +12 -0
  27. package/dist/manual/record-coherence.d.ts.map +1 -0
  28. package/dist/manual/record-coherence.js +21 -0
  29. package/dist/manual/record-coherence.js.map +1 -0
  30. package/dist/manual/record-drift.d.ts +14 -0
  31. package/dist/manual/record-drift.d.ts.map +1 -0
  32. package/dist/manual/record-drift.js +48 -0
  33. package/dist/manual/record-drift.js.map +1 -0
  34. package/dist/manual/record-integrity-check.d.ts +19 -0
  35. package/dist/manual/record-integrity-check.d.ts.map +1 -0
  36. package/dist/manual/record-integrity-check.js +92 -0
  37. package/dist/manual/record-integrity-check.js.map +1 -0
  38. package/dist/manual/record-verification.d.ts +14 -0
  39. package/dist/manual/record-verification.d.ts.map +1 -0
  40. package/dist/manual/record-verification.js +40 -0
  41. package/dist/manual/record-verification.js.map +1 -0
  42. package/dist/manual/span-builder.d.ts +28 -0
  43. package/dist/manual/span-builder.d.ts.map +1 -0
  44. package/dist/manual/span-builder.js +42 -0
  45. package/dist/manual/span-builder.js.map +1 -0
  46. package/dist/metrics/integrity-metrics.d.ts +44 -0
  47. package/dist/metrics/integrity-metrics.d.ts.map +1 -0
  48. package/dist/metrics/integrity-metrics.js +128 -0
  49. package/dist/metrics/integrity-metrics.js.map +1 -0
  50. package/dist/types.d.ts +205 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +8 -0
  53. package/dist/types.js.map +1 -0
  54. package/dist/workers/index.d.ts +8 -0
  55. package/dist/workers/index.d.ts.map +1 -0
  56. package/dist/workers/index.js +7 -0
  57. package/dist/workers/index.js.map +1 -0
  58. package/dist/workers/otlp-serializer.d.ts +90 -0
  59. package/dist/workers/otlp-serializer.d.ts.map +1 -0
  60. package/dist/workers/otlp-serializer.js +133 -0
  61. package/dist/workers/otlp-serializer.js.map +1 -0
  62. package/dist/workers/workers-exporter.d.ts +26 -0
  63. package/dist/workers/workers-exporter.d.ts.map +1 -0
  64. package/dist/workers/workers-exporter.js +228 -0
  65. package/dist/workers/workers-exporter.js.map +1 -0
  66. package/package.json +83 -0
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Records an AAP VerificationResult as an OpenTelemetry span.
3
+ *
4
+ * Maps 8 attributes (result, similarity_score, violations_count, warnings_count,
5
+ * trace_id, card_id, duration_ms, checks_performed) and emits one EVENT_AAP_VIOLATION
6
+ * event per violation.
7
+ */
8
+ import type { Span, Tracer } from "@opentelemetry/api";
9
+ import type { VerificationResultInput } from "../types.js";
10
+ /**
11
+ * Record a VerificationResult as an OTel span with 8 attributes and per-violation events.
12
+ */
13
+ export declare function recordVerification(tracer: Tracer, result: VerificationResultInput): Span;
14
+ //# sourceMappingURL=record-verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-verification.d.ts","sourceRoot":"","sources":["../../src/manual/record-verification.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAc,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAiB3D;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,uBAAuB,GAC9B,IAAI,CA8BN"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Records an AAP VerificationResult as an OpenTelemetry span.
3
+ *
4
+ * Maps 8 attributes (result, similarity_score, violations_count, warnings_count,
5
+ * trace_id, card_id, duration_ms, checks_performed) and emits one EVENT_AAP_VIOLATION
6
+ * event per violation.
7
+ */
8
+ import { SPAN_AAP_VERIFY_TRACE, EVENT_AAP_VIOLATION, AAP_VERIFICATION_RESULT, AAP_VERIFICATION_SIMILARITY_SCORE, AAP_VERIFICATION_VIOLATIONS_COUNT, AAP_VERIFICATION_WARNINGS_COUNT, AAP_VERIFICATION_TRACE_ID, AAP_VERIFICATION_CARD_ID, AAP_VERIFICATION_DURATION_MS, AAP_VERIFICATION_CHECKS_PERFORMED, } from "../attributes.js";
9
+ import { buildSpan } from "./span-builder.js";
10
+ /**
11
+ * Record a VerificationResult as an OTel span with 8 attributes and per-violation events.
12
+ */
13
+ export function recordVerification(tracer, result) {
14
+ const meta = result?.verification_metadata;
15
+ const attributes = {
16
+ [AAP_VERIFICATION_RESULT]: result?.verified,
17
+ [AAP_VERIFICATION_SIMILARITY_SCORE]: result?.similarity_score,
18
+ [AAP_VERIFICATION_VIOLATIONS_COUNT]: result?.violations?.length,
19
+ [AAP_VERIFICATION_WARNINGS_COUNT]: result?.warnings?.length,
20
+ [AAP_VERIFICATION_TRACE_ID]: result?.trace_id,
21
+ [AAP_VERIFICATION_CARD_ID]: result?.card_id,
22
+ [AAP_VERIFICATION_DURATION_MS]: meta?.duration_ms,
23
+ [AAP_VERIFICATION_CHECKS_PERFORMED]: meta?.checks_performed?.join(", "),
24
+ };
25
+ const events = [];
26
+ if (result?.violations) {
27
+ for (const violation of result.violations) {
28
+ events.push({
29
+ name: EVENT_AAP_VIOLATION,
30
+ attributes: {
31
+ type: violation.type,
32
+ severity: violation.severity,
33
+ description: violation.description,
34
+ },
35
+ });
36
+ }
37
+ }
38
+ return buildSpan(tracer, SPAN_AAP_VERIFY_TRACE, attributes, events);
39
+ }
40
+ //# sourceMappingURL=record-verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-verification.js","sourceRoot":"","sources":["../../src/manual/record-verification.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,iCAAiC,EACjC,iCAAiC,EACjC,+BAA+B,EAC/B,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,EAAE,qBAAqB,CAAC;IAE3C,MAAM,UAAU,GAA4B;QAC1C,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,QAAQ;QAC3C,CAAC,iCAAiC,CAAC,EAAE,MAAM,EAAE,gBAAgB;QAC7D,CAAC,iCAAiC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;QAC/D,CAAC,+BAA+B,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;QAC3D,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE,QAAQ;QAC7C,CAAC,wBAAwB,CAAC,EAAE,MAAM,EAAE,OAAO;QAC3C,CAAC,4BAA4B,CAAC,EAAE,IAAI,EAAE,WAAW;QACjD,CAAC,iCAAiC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC;KACxE,CAAC;IAEF,MAAM,MAAM,GAAoD,EAAE,CAAC;IAEnE,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;QACvB,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,mBAAmB;gBACzB,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;iBACnC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Shared span-building utility for the manual recording API.
3
+ *
4
+ * Provides a generic helper that:
5
+ * - Starts a span with SpanKind.INTERNAL under the current active context
6
+ * - Sets attributes (skipping undefined/null values)
7
+ * - Adds events
8
+ * - Ends the span and returns it
9
+ */
10
+ import type { Span, Tracer, Attributes } from "@opentelemetry/api";
11
+ /**
12
+ * Set attributes on a span, skipping any whose value is undefined or null.
13
+ */
14
+ export declare function setOptionalAttributes(span: Span, attrs: Record<string, unknown>): void;
15
+ /**
16
+ * Build, populate, end, and return an OTel span.
17
+ *
18
+ * The span is created as a child of the current active span (via `context.active()`),
19
+ * with `SpanKind.INTERNAL`. Attributes with undefined/null values are silently
20
+ * dropped. Each entry in `events` produces a span event with optional attributes.
21
+ * The span is ended before being returned so callers can still read its data but
22
+ * the timing is captured immediately.
23
+ */
24
+ export declare function buildSpan(tracer: Tracer, spanName: string, attributes: Record<string, unknown>, events?: Array<{
25
+ name: string;
26
+ attributes: Attributes;
27
+ }>): Span;
28
+ //# sourceMappingURL=span-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-builder.d.ts","sourceRoot":"","sources":["../../src/manual/span-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CAMN;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC,GACvD,IAAI,CAmBN"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Shared span-building utility for the manual recording API.
3
+ *
4
+ * Provides a generic helper that:
5
+ * - Starts a span with SpanKind.INTERNAL under the current active context
6
+ * - Sets attributes (skipping undefined/null values)
7
+ * - Adds events
8
+ * - Ends the span and returns it
9
+ */
10
+ import { SpanKind, SpanStatusCode, context, trace } from "@opentelemetry/api";
11
+ /**
12
+ * Set attributes on a span, skipping any whose value is undefined or null.
13
+ */
14
+ export function setOptionalAttributes(span, attrs) {
15
+ for (const [key, value] of Object.entries(attrs)) {
16
+ if (value !== undefined && value !== null) {
17
+ span.setAttribute(key, value);
18
+ }
19
+ }
20
+ }
21
+ /**
22
+ * Build, populate, end, and return an OTel span.
23
+ *
24
+ * The span is created as a child of the current active span (via `context.active()`),
25
+ * with `SpanKind.INTERNAL`. Attributes with undefined/null values are silently
26
+ * dropped. Each entry in `events` produces a span event with optional attributes.
27
+ * The span is ended before being returned so callers can still read its data but
28
+ * the timing is captured immediately.
29
+ */
30
+ export function buildSpan(tracer, spanName, attributes, events) {
31
+ const span = tracer.startSpan(spanName, { kind: SpanKind.INTERNAL }, context.active());
32
+ setOptionalAttributes(span, attributes);
33
+ if (events) {
34
+ for (const event of events) {
35
+ span.addEvent(event.name, event.attributes);
36
+ }
37
+ }
38
+ span.setStatus({ code: SpanStatusCode.OK });
39
+ span.end();
40
+ return span;
41
+ }
42
+ //# sourceMappingURL=span-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-builder.js","sourceRoot":"","sources":["../../src/manual/span-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG9E;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAU,EACV,KAA8B;IAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAkC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,MAAc,EACd,QAAgB,EAChB,UAAmC,EACnC,MAAwD;IAExD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAC3B,QAAQ,EACR,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAC3B,OAAO,CAAC,MAAM,EAAE,CACjB,CAAC;IAEF,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAExC,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * AIP/AAP metrics using OpenTelemetry Metrics API.
3
+ *
4
+ * Provides counters and histograms for integrity checks, verification results,
5
+ * concerns, violations, and performance metrics.
6
+ */
7
+ import type { MeterProvider, Counter, Histogram } from "@opentelemetry/api";
8
+ import type { IntegritySignalInput, VerificationResultInput, CoherenceResultInput, DriftAlertInput } from "../types.js";
9
+ /** Collection of AIP/AAP metric instruments. */
10
+ export interface AIPMetrics {
11
+ integrityChecks: Counter;
12
+ concerns: Counter;
13
+ analysisDuration: Histogram;
14
+ integrityRatio: Histogram;
15
+ driftAlerts: Counter;
16
+ verifications: Counter;
17
+ violations: Counter;
18
+ verificationDuration: Histogram;
19
+ coherenceScore: Histogram;
20
+ }
21
+ /**
22
+ * Create AIP/AAP metric instruments.
23
+ *
24
+ * @param meterProvider - OTel MeterProvider. Falls back to global if not set.
25
+ * @returns Collection of metric instruments ready for recording.
26
+ */
27
+ export declare function createAIPMetrics(meterProvider?: MeterProvider): AIPMetrics;
28
+ /**
29
+ * Record metrics from an AIP integrity signal.
30
+ */
31
+ export declare function recordIntegrityMetrics(m: AIPMetrics, signal: IntegritySignalInput): void;
32
+ /**
33
+ * Record metrics from an AAP verification result.
34
+ */
35
+ export declare function recordVerificationMetrics(m: AIPMetrics, result: VerificationResultInput): void;
36
+ /**
37
+ * Record metrics from an AAP coherence result.
38
+ */
39
+ export declare function recordCoherenceMetrics(m: AIPMetrics, result: CoherenceResultInput): void;
40
+ /**
41
+ * Record metrics from AAP drift alerts.
42
+ */
43
+ export declare function recordDriftMetrics(m: AIPMetrics, alerts: DriftAlertInput[]): void;
44
+ //# sourceMappingURL=integrity-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrity-metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/integrity-metrics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EAEb,OAAO,EACP,SAAS,EACV,MAAM,oBAAoB,CAAC;AAa5B,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,gDAAgD;AAChD,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,cAAc,EAAE,SAAS,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,SAAS,CAAC;IAChC,cAAc,EAAE,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,UAAU,CAuC1E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,UAAU,EACb,MAAM,EAAE,oBAAoB,GAC3B,IAAI,CAiCN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,UAAU,EACb,MAAM,EAAE,uBAAuB,GAC9B,IAAI,CAsBN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,UAAU,EACb,MAAM,EAAE,oBAAoB,GAC3B,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,UAAU,EACb,MAAM,EAAE,eAAe,EAAE,GACxB,IAAI,CAON"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * AIP/AAP metrics using OpenTelemetry Metrics API.
3
+ *
4
+ * Provides counters and histograms for integrity checks, verification results,
5
+ * concerns, violations, and performance metrics.
6
+ */
7
+ import { metrics } from "@opentelemetry/api";
8
+ import { METRIC_AIP_INTEGRITY_CHECKS_TOTAL, METRIC_AIP_CONCERNS_TOTAL, METRIC_AIP_ANALYSIS_DURATION, METRIC_AIP_WINDOW_INTEGRITY_RATIO, METRIC_AIP_DRIFT_ALERTS_TOTAL, METRIC_AAP_VERIFICATIONS_TOTAL, METRIC_AAP_VIOLATIONS_TOTAL, METRIC_AAP_VERIFICATION_DURATION, METRIC_AAP_COHERENCE_SCORE, } from "../attributes.js";
9
+ /**
10
+ * Create AIP/AAP metric instruments.
11
+ *
12
+ * @param meterProvider - OTel MeterProvider. Falls back to global if not set.
13
+ * @returns Collection of metric instruments ready for recording.
14
+ */
15
+ export function createAIPMetrics(meterProvider) {
16
+ const meter = meterProvider
17
+ ? meterProvider.getMeter("@mnemom/aip-otel-exporter", "0.1.0")
18
+ : metrics.getMeter("@mnemom/aip-otel-exporter", "0.1.0");
19
+ return {
20
+ integrityChecks: meter.createCounter(METRIC_AIP_INTEGRITY_CHECKS_TOTAL, {
21
+ description: "Total AIP integrity checks performed",
22
+ }),
23
+ concerns: meter.createCounter(METRIC_AIP_CONCERNS_TOTAL, {
24
+ description: "Total AIP concerns raised",
25
+ }),
26
+ analysisDuration: meter.createHistogram(METRIC_AIP_ANALYSIS_DURATION, {
27
+ description: "AIP analysis duration in milliseconds",
28
+ unit: "ms",
29
+ }),
30
+ integrityRatio: meter.createHistogram(METRIC_AIP_WINDOW_INTEGRITY_RATIO, {
31
+ description: "Window integrity ratio (0.0 to 1.0)",
32
+ }),
33
+ driftAlerts: meter.createCounter(METRIC_AIP_DRIFT_ALERTS_TOTAL, {
34
+ description: "Total AIP drift alerts generated",
35
+ }),
36
+ verifications: meter.createCounter(METRIC_AAP_VERIFICATIONS_TOTAL, {
37
+ description: "Total AAP verifications performed",
38
+ }),
39
+ violations: meter.createCounter(METRIC_AAP_VIOLATIONS_TOTAL, {
40
+ description: "Total AAP violations detected",
41
+ }),
42
+ verificationDuration: meter.createHistogram(METRIC_AAP_VERIFICATION_DURATION, {
43
+ description: "AAP verification duration in milliseconds",
44
+ unit: "ms",
45
+ }),
46
+ coherenceScore: meter.createHistogram(METRIC_AAP_COHERENCE_SCORE, {
47
+ description: "AAP coherence score (0.0 to 1.0)",
48
+ }),
49
+ };
50
+ }
51
+ /**
52
+ * Record metrics from an AIP integrity signal.
53
+ */
54
+ export function recordIntegrityMetrics(m, signal) {
55
+ const verdict = signal.checkpoint?.verdict ?? "unknown";
56
+ const agentId = signal.checkpoint?.agent_id;
57
+ const attrs = { verdict };
58
+ if (agentId)
59
+ attrs.agent_id = agentId;
60
+ m.integrityChecks.add(1, attrs);
61
+ const concernsCount = signal.checkpoint?.concerns?.length ?? 0;
62
+ if (concernsCount > 0) {
63
+ for (const concern of signal.checkpoint.concerns) {
64
+ m.concerns.add(1, {
65
+ category: concern.category,
66
+ severity: concern.severity,
67
+ ...attrs,
68
+ });
69
+ }
70
+ }
71
+ const duration = signal.checkpoint?.analysis_metadata?.analysis_duration_ms;
72
+ if (duration != null) {
73
+ m.analysisDuration.record(duration, attrs);
74
+ }
75
+ const ratio = signal.window_summary?.integrity_ratio;
76
+ if (ratio != null) {
77
+ m.integrityRatio.record(ratio, attrs);
78
+ }
79
+ if (signal.window_summary?.drift_alert_active) {
80
+ m.driftAlerts.add(1, attrs);
81
+ }
82
+ }
83
+ /**
84
+ * Record metrics from an AAP verification result.
85
+ */
86
+ export function recordVerificationMetrics(m, result) {
87
+ const attrs = {
88
+ verified: String(result.verified ?? false),
89
+ };
90
+ if (result.card_id)
91
+ attrs.card_id = result.card_id;
92
+ m.verifications.add(1, attrs);
93
+ const violationsCount = result.violations?.length ?? 0;
94
+ if (violationsCount > 0) {
95
+ for (const violation of result.violations) {
96
+ m.violations.add(1, {
97
+ type: violation.type,
98
+ severity: violation.severity,
99
+ });
100
+ }
101
+ }
102
+ const duration = result.verification_metadata?.duration_ms;
103
+ if (duration != null) {
104
+ m.verificationDuration.record(duration, attrs);
105
+ }
106
+ }
107
+ /**
108
+ * Record metrics from an AAP coherence result.
109
+ */
110
+ export function recordCoherenceMetrics(m, result) {
111
+ if (result.score != null) {
112
+ m.coherenceScore.record(result.score, {
113
+ compatible: String(result.compatible ?? false),
114
+ });
115
+ }
116
+ }
117
+ /**
118
+ * Record metrics from AAP drift alerts.
119
+ */
120
+ export function recordDriftMetrics(m, alerts) {
121
+ for (const alert of alerts) {
122
+ m.driftAlerts.add(1, {
123
+ drift_direction: alert.analysis?.drift_direction ?? "unknown",
124
+ agent_id: alert.agent_id ?? "unknown",
125
+ });
126
+ }
127
+ }
128
+ //# sourceMappingURL=integrity-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrity-metrics.js","sourceRoot":"","sources":["../../src/metrics/integrity-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Configuration and duck-typed input types for the AIP OTel Exporter.
3
+ *
4
+ * All input types are duck-typed (no hard imports from AIP/AAP packages).
5
+ * Fields use optional chaining for graceful handling of missing data.
6
+ */
7
+ import type { TracerProvider } from "@opentelemetry/api";
8
+ /** Configuration for the AIP OTel Recorder. */
9
+ export interface AIPOTelRecorderConfig {
10
+ /** OTel TracerProvider to use. Falls back to global provider if not set. */
11
+ tracerProvider?: TracerProvider;
12
+ /** Custom tracer name. Defaults to "@mnemom/aip-otel-exporter". */
13
+ tracerName?: string;
14
+ /** Custom tracer version. Defaults to package version. */
15
+ tracerVersion?: string;
16
+ }
17
+ /** Configuration for the CF Workers exporter. */
18
+ export interface WorkersExporterConfig {
19
+ /** OTLP endpoint URL (e.g., "https://otel-collector.example.com/v1/traces"). */
20
+ endpoint: string;
21
+ /** Authorization header value (e.g., "Bearer <token>"). */
22
+ authorization?: string;
23
+ /** Additional headers to include in the OTLP request. */
24
+ headers?: Record<string, string>;
25
+ /** Service name for the resource. Defaults to "aip-otel-exporter". */
26
+ serviceName?: string;
27
+ /** Maximum batch size before auto-flush. Defaults to 100. */
28
+ maxBatchSize?: number;
29
+ }
30
+ /** Duck-typed IntegrityConcern (matches AIP's IntegrityConcern shape). */
31
+ export interface ConcernInput {
32
+ category: string;
33
+ severity: string;
34
+ description: string;
35
+ evidence?: string;
36
+ relevant_card_field?: string | null;
37
+ relevant_conscience_value?: string | null;
38
+ }
39
+ /** Duck-typed ConscienceContext. */
40
+ export interface ConscienceContextInput {
41
+ consultation_depth?: string;
42
+ values_checked?: string[];
43
+ conflicts?: string[];
44
+ supports?: string[];
45
+ considerations?: string[];
46
+ }
47
+ /** Duck-typed AnalysisMetadata. */
48
+ export interface AnalysisMetadataInput {
49
+ analysis_model?: string;
50
+ analysis_duration_ms?: number;
51
+ thinking_tokens_original?: number;
52
+ thinking_tokens_analyzed?: number;
53
+ truncated?: boolean;
54
+ extraction_confidence?: number;
55
+ }
56
+ /** Duck-typed WindowSummary. */
57
+ export interface WindowSummaryInput {
58
+ size?: number;
59
+ max_size?: number;
60
+ verdicts?: {
61
+ clear?: number;
62
+ review_needed?: number;
63
+ boundary_violation?: number;
64
+ };
65
+ integrity_ratio?: number;
66
+ drift_alert_active?: boolean;
67
+ }
68
+ /** Duck-typed IntegrityCheckpoint. */
69
+ export interface CheckpointInput {
70
+ checkpoint_id?: string;
71
+ agent_id?: string;
72
+ card_id?: string;
73
+ session_id?: string;
74
+ timestamp?: string;
75
+ thinking_block_hash?: string;
76
+ provider?: string;
77
+ model?: string;
78
+ verdict?: string;
79
+ concerns?: ConcernInput[];
80
+ reasoning_summary?: string;
81
+ conscience_context?: ConscienceContextInput;
82
+ window_position?: {
83
+ index?: number;
84
+ window_size?: number;
85
+ };
86
+ analysis_metadata?: AnalysisMetadataInput;
87
+ linked_trace_id?: string | null;
88
+ }
89
+ /** Duck-typed IntegritySignal (primary AIP input). */
90
+ export interface IntegritySignalInput {
91
+ checkpoint: CheckpointInput;
92
+ proceed?: boolean;
93
+ recommended_action?: string;
94
+ window_summary?: WindowSummaryInput;
95
+ }
96
+ /** Duck-typed Violation. */
97
+ export interface ViolationInput {
98
+ type: string;
99
+ severity: string;
100
+ description: string;
101
+ trace_field?: string | null;
102
+ }
103
+ /** Duck-typed Warning. */
104
+ export interface WarningInput {
105
+ type: string;
106
+ description: string;
107
+ trace_field?: string | null;
108
+ }
109
+ /** Duck-typed VerificationMetadata. */
110
+ export interface VerificationMetadataInput {
111
+ algorithm_version?: string;
112
+ checks_performed?: string[];
113
+ duration_ms?: number | null;
114
+ }
115
+ /** Duck-typed VerificationResult (primary AAP verification input). */
116
+ export interface VerificationResultInput {
117
+ verified?: boolean;
118
+ trace_id?: string;
119
+ card_id?: string;
120
+ timestamp?: string;
121
+ violations?: ViolationInput[];
122
+ warnings?: WarningInput[];
123
+ verification_metadata?: VerificationMetadataInput;
124
+ /** Python AAP has similarity_score on the result; TS does not. */
125
+ similarity_score?: number;
126
+ }
127
+ /** Duck-typed ValueAlignment. */
128
+ export interface ValueAlignmentInput {
129
+ matched?: string[];
130
+ unmatched?: string[];
131
+ conflicts?: Array<{
132
+ initiator_value?: string;
133
+ responder_value?: string;
134
+ conflict_type?: string;
135
+ description?: string;
136
+ }>;
137
+ }
138
+ /** Duck-typed CoherenceResult. */
139
+ export interface CoherenceResultInput {
140
+ compatible?: boolean;
141
+ score?: number;
142
+ value_alignment?: ValueAlignmentInput;
143
+ proceed?: boolean;
144
+ conditions?: string[];
145
+ }
146
+ /** Duck-typed DriftAnalysis. */
147
+ export interface DriftAnalysisInput {
148
+ similarity_score?: number;
149
+ sustained_traces?: number;
150
+ threshold?: number;
151
+ drift_direction?: string;
152
+ specific_indicators?: Array<{
153
+ indicator?: string;
154
+ baseline?: number;
155
+ current?: number;
156
+ description?: string;
157
+ }>;
158
+ }
159
+ /** Duck-typed DriftAlert (AAP). */
160
+ export interface DriftAlertInput {
161
+ alert_type?: string;
162
+ agent_id?: string;
163
+ card_id?: string;
164
+ detection_timestamp?: string;
165
+ analysis?: DriftAnalysisInput;
166
+ recommendation?: string;
167
+ trace_ids?: string[];
168
+ }
169
+ /** Duck-typed IntegrityDriftAlert (AIP). */
170
+ export interface IntegrityDriftAlertInput {
171
+ alert_id?: string;
172
+ agent_id?: string;
173
+ session_id?: string;
174
+ checkpoint_ids?: string[];
175
+ integrity_similarity?: number;
176
+ sustained_checks?: number;
177
+ severity?: string;
178
+ drift_direction?: string;
179
+ message?: string;
180
+ }
181
+ /** Public interface for the AIP OTel Recorder. */
182
+ export interface AIPOTelRecorder {
183
+ /** Record an AIP integrity check as an OTel span. */
184
+ recordIntegrityCheck(signal: IntegritySignalInput): void;
185
+ /** Record an AAP verification result as an OTel span. */
186
+ recordVerification(result: VerificationResultInput): void;
187
+ /** Record an AAP coherence check as an OTel span. */
188
+ recordCoherence(result: CoherenceResultInput): void;
189
+ /** Record AAP drift detection as an OTel span. */
190
+ recordDrift(alerts: DriftAlertInput[], tracesAnalyzed?: number): void;
191
+ }
192
+ /** Public interface for the CF Workers exporter. */
193
+ export interface WorkersOTelExporter {
194
+ /** Record an AIP integrity check (builds internal span). */
195
+ recordIntegrityCheck(signal: IntegritySignalInput): void;
196
+ /** Record an AAP verification result (builds internal span). */
197
+ recordVerification(result: VerificationResultInput): void;
198
+ /** Record an AAP coherence check (builds internal span). */
199
+ recordCoherence(result: CoherenceResultInput): void;
200
+ /** Record AAP drift detection (builds internal span). */
201
+ recordDrift(alerts: DriftAlertInput[], tracesAnalyzed?: number): void;
202
+ /** Flush all buffered spans to the OTLP endpoint. Returns a Promise for ctx.waitUntil(). */
203
+ flush(): Promise<void>;
204
+ }
205
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Configuration and duck-typed input types for the AIP OTel Exporter.
3
+ *
4
+ * All input types are duck-typed (no hard imports from AIP/AAP packages).
5
+ * Fields use optional chaining for graceful handling of missing data.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Cloudflare Workers subpath entry point.
3
+ *
4
+ * Import via: `import { createWorkersExporter } from "@mnemom/aip-otel-exporter/workers"`
5
+ */
6
+ export { createWorkersExporter } from "./workers-exporter.js";
7
+ export type { WorkersExporterConfig, WorkersOTelExporter } from "../types.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Cloudflare Workers subpath entry point.
3
+ *
4
+ * Import via: `import { createWorkersExporter } from "@mnemom/aip-otel-exporter/workers"`
5
+ */
6
+ export { createWorkersExporter } from "./workers-exporter.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}