@livekit/agents 1.0.17 → 1.0.19
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/index.cjs +3 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/inference/api_protos.d.cts +12 -12
- package/dist/inference/api_protos.d.ts +12 -12
- package/dist/inference/llm.cjs +35 -13
- package/dist/inference/llm.cjs.map +1 -1
- package/dist/inference/llm.d.cts +10 -5
- package/dist/inference/llm.d.ts +10 -5
- package/dist/inference/llm.d.ts.map +1 -1
- package/dist/inference/llm.js +35 -13
- package/dist/inference/llm.js.map +1 -1
- package/dist/inference/tts.cjs +1 -1
- package/dist/inference/tts.cjs.map +1 -1
- package/dist/inference/tts.js +1 -1
- package/dist/inference/tts.js.map +1 -1
- package/dist/ipc/job_proc_lazy_main.cjs +6 -2
- package/dist/ipc/job_proc_lazy_main.cjs.map +1 -1
- package/dist/ipc/job_proc_lazy_main.js +6 -2
- package/dist/ipc/job_proc_lazy_main.js.map +1 -1
- package/dist/job.cjs +31 -0
- package/dist/job.cjs.map +1 -1
- package/dist/job.d.cts +6 -0
- package/dist/job.d.ts +6 -0
- package/dist/job.d.ts.map +1 -1
- package/dist/job.js +31 -0
- package/dist/job.js.map +1 -1
- package/dist/llm/chat_context.cjs +33 -0
- package/dist/llm/chat_context.cjs.map +1 -1
- package/dist/llm/chat_context.d.cts +22 -2
- package/dist/llm/chat_context.d.ts +22 -2
- package/dist/llm/chat_context.d.ts.map +1 -1
- package/dist/llm/chat_context.js +32 -0
- package/dist/llm/chat_context.js.map +1 -1
- package/dist/llm/index.cjs +2 -0
- package/dist/llm/index.cjs.map +1 -1
- package/dist/llm/index.d.cts +1 -1
- package/dist/llm/index.d.ts +1 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +2 -0
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/llm.cjs.map +1 -1
- package/dist/llm/llm.d.cts +1 -1
- package/dist/llm/llm.d.ts +1 -1
- package/dist/llm/llm.d.ts.map +1 -1
- package/dist/llm/llm.js.map +1 -1
- package/dist/llm/provider_format/google.cjs.map +1 -1
- package/dist/llm/provider_format/google.d.cts +1 -1
- package/dist/llm/provider_format/google.d.ts +1 -1
- package/dist/llm/provider_format/google.d.ts.map +1 -1
- package/dist/llm/provider_format/google.js.map +1 -1
- package/dist/llm/provider_format/google.test.cjs +48 -0
- package/dist/llm/provider_format/google.test.cjs.map +1 -1
- package/dist/llm/provider_format/google.test.js +54 -1
- package/dist/llm/provider_format/google.test.js.map +1 -1
- package/dist/llm/provider_format/index.d.cts +1 -1
- package/dist/llm/provider_format/index.d.ts +1 -1
- package/dist/llm/provider_format/index.d.ts.map +1 -1
- package/dist/llm/provider_format/openai.cjs +1 -2
- package/dist/llm/provider_format/openai.cjs.map +1 -1
- package/dist/llm/provider_format/openai.js +1 -2
- package/dist/llm/provider_format/openai.js.map +1 -1
- package/dist/llm/provider_format/openai.test.cjs +32 -0
- package/dist/llm/provider_format/openai.test.cjs.map +1 -1
- package/dist/llm/provider_format/openai.test.js +38 -1
- package/dist/llm/provider_format/openai.test.js.map +1 -1
- package/dist/llm/realtime.cjs.map +1 -1
- package/dist/llm/realtime.d.cts +4 -0
- package/dist/llm/realtime.d.ts +4 -0
- package/dist/llm/realtime.d.ts.map +1 -1
- package/dist/llm/realtime.js.map +1 -1
- package/dist/llm/utils.cjs +2 -2
- package/dist/llm/utils.cjs.map +1 -1
- package/dist/llm/utils.d.cts +1 -1
- package/dist/llm/utils.d.ts +1 -1
- package/dist/llm/utils.d.ts.map +1 -1
- package/dist/llm/utils.js +2 -2
- package/dist/llm/utils.js.map +1 -1
- package/dist/llm/zod-utils.cjs +6 -3
- package/dist/llm/zod-utils.cjs.map +1 -1
- package/dist/llm/zod-utils.d.cts +1 -1
- package/dist/llm/zod-utils.d.ts +1 -1
- package/dist/llm/zod-utils.d.ts.map +1 -1
- package/dist/llm/zod-utils.js +6 -3
- package/dist/llm/zod-utils.js.map +1 -1
- package/dist/llm/zod-utils.test.cjs +83 -0
- package/dist/llm/zod-utils.test.cjs.map +1 -1
- package/dist/llm/zod-utils.test.js +83 -0
- package/dist/llm/zod-utils.test.js.map +1 -1
- package/dist/log.cjs.map +1 -1
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js.map +1 -1
- package/dist/telemetry/index.cjs +51 -0
- package/dist/telemetry/index.cjs.map +1 -0
- package/dist/telemetry/index.d.cts +4 -0
- package/dist/telemetry/index.d.ts +4 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +12 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/trace_types.cjs +191 -0
- package/dist/telemetry/trace_types.cjs.map +1 -0
- package/dist/telemetry/trace_types.d.cts +56 -0
- package/dist/telemetry/trace_types.d.ts +56 -0
- package/dist/telemetry/trace_types.d.ts.map +1 -0
- package/dist/telemetry/trace_types.js +113 -0
- package/dist/telemetry/trace_types.js.map +1 -0
- package/dist/telemetry/traces.cjs +196 -0
- package/dist/telemetry/traces.cjs.map +1 -0
- package/dist/telemetry/traces.d.cts +97 -0
- package/dist/telemetry/traces.d.ts +97 -0
- package/dist/telemetry/traces.d.ts.map +1 -0
- package/dist/telemetry/traces.js +173 -0
- package/dist/telemetry/traces.js.map +1 -0
- package/dist/telemetry/utils.cjs +86 -0
- package/dist/telemetry/utils.cjs.map +1 -0
- package/dist/telemetry/utils.d.cts +5 -0
- package/dist/telemetry/utils.d.ts +5 -0
- package/dist/telemetry/utils.d.ts.map +1 -0
- package/dist/telemetry/utils.js +51 -0
- package/dist/telemetry/utils.js.map +1 -0
- package/dist/tts/tts.cjs.map +1 -1
- package/dist/tts/tts.d.ts.map +1 -1
- package/dist/tts/tts.js.map +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +7 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js.map +1 -1
- package/dist/voice/agent.cjs +15 -0
- package/dist/voice/agent.cjs.map +1 -1
- package/dist/voice/agent.d.cts +4 -1
- package/dist/voice/agent.d.ts +4 -1
- package/dist/voice/agent.d.ts.map +1 -1
- package/dist/voice/agent.js +15 -0
- package/dist/voice/agent.js.map +1 -1
- package/dist/voice/agent_activity.cjs +71 -20
- package/dist/voice/agent_activity.cjs.map +1 -1
- package/dist/voice/agent_activity.d.ts.map +1 -1
- package/dist/voice/agent_activity.js +71 -20
- package/dist/voice/agent_activity.js.map +1 -1
- package/dist/voice/agent_session.cjs +69 -2
- package/dist/voice/agent_session.cjs.map +1 -1
- package/dist/voice/agent_session.d.cts +11 -2
- package/dist/voice/agent_session.d.ts +11 -2
- package/dist/voice/agent_session.d.ts.map +1 -1
- package/dist/voice/agent_session.js +70 -3
- package/dist/voice/agent_session.js.map +1 -1
- package/dist/voice/audio_recognition.cjs.map +1 -1
- package/dist/voice/audio_recognition.d.ts.map +1 -1
- package/dist/voice/audio_recognition.js.map +1 -1
- package/dist/voice/generation.cjs.map +1 -1
- package/dist/voice/generation.d.ts.map +1 -1
- package/dist/voice/generation.js.map +1 -1
- package/dist/voice/index.cjs +2 -0
- package/dist/voice/index.cjs.map +1 -1
- package/dist/voice/index.d.cts +1 -0
- package/dist/voice/index.d.ts +1 -0
- package/dist/voice/index.d.ts.map +1 -1
- package/dist/voice/index.js +1 -0
- package/dist/voice/index.js.map +1 -1
- package/dist/voice/interruption_detection.test.cjs +114 -0
- package/dist/voice/interruption_detection.test.cjs.map +1 -0
- package/dist/voice/interruption_detection.test.js +113 -0
- package/dist/voice/interruption_detection.test.js.map +1 -0
- package/dist/voice/report.cjs +69 -0
- package/dist/voice/report.cjs.map +1 -0
- package/dist/voice/report.d.cts +26 -0
- package/dist/voice/report.d.ts +26 -0
- package/dist/voice/report.d.ts.map +1 -0
- package/dist/voice/report.js +44 -0
- package/dist/voice/report.js.map +1 -0
- package/dist/voice/room_io/room_io.cjs +3 -0
- package/dist/voice/room_io/room_io.cjs.map +1 -1
- package/dist/voice/room_io/room_io.d.cts +1 -0
- package/dist/voice/room_io/room_io.d.ts +1 -0
- package/dist/voice/room_io/room_io.d.ts.map +1 -1
- package/dist/voice/room_io/room_io.js +3 -0
- package/dist/voice/room_io/room_io.js.map +1 -1
- package/package.json +12 -5
- package/src/index.ts +2 -1
- package/src/inference/llm.ts +53 -21
- package/src/inference/tts.ts +1 -1
- package/src/ipc/job_proc_lazy_main.ts +10 -2
- package/src/job.ts +48 -0
- package/src/llm/__snapshots__/zod-utils.test.ts.snap +218 -0
- package/src/llm/chat_context.ts +53 -1
- package/src/llm/index.ts +1 -0
- package/src/llm/llm.ts +3 -1
- package/src/llm/provider_format/google.test.ts +72 -1
- package/src/llm/provider_format/google.ts +4 -4
- package/src/llm/provider_format/openai.test.ts +55 -1
- package/src/llm/provider_format/openai.ts +3 -2
- package/src/llm/realtime.ts +8 -1
- package/src/llm/utils.ts +7 -2
- package/src/llm/zod-utils.test.ts +101 -0
- package/src/llm/zod-utils.ts +12 -3
- package/src/log.ts +1 -0
- package/src/telemetry/index.ts +10 -0
- package/src/telemetry/trace_types.ts +88 -0
- package/src/telemetry/traces.ts +266 -0
- package/src/telemetry/utils.ts +61 -0
- package/src/tts/tts.ts +4 -0
- package/src/utils.ts +17 -0
- package/src/voice/agent.ts +22 -0
- package/src/voice/agent_activity.ts +102 -24
- package/src/voice/agent_session.ts +98 -1
- package/src/voice/audio_recognition.ts +2 -0
- package/src/voice/generation.ts +3 -0
- package/src/voice/index.ts +1 -0
- package/src/voice/interruption_detection.test.ts +151 -0
- package/src/voice/report.ts +77 -0
- package/src/voice/room_io/room_io.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/llm/zod-utils.test.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { describe, expect, it } from 'vitest';\nimport { z } from 'zod';\nimport * as z3 from 'zod/v3';\nimport * as z4 from 'zod/v4';\nimport {\n isZod4Schema,\n isZodObjectSchema,\n isZodSchema,\n parseZodSchema,\n zodSchemaToJsonSchema,\n} from './zod-utils.js';\n\ntype JSONSchemaProperties = Record<string, Record<string, unknown>>;\n\ndescribe('Zod Utils', () => {\n describe('isZod4Schema', () => {\n it('should detect Zod v4 schemas', () => {\n const v4Schema = z4.string();\n expect(isZod4Schema(v4Schema)).toBe(true);\n });\n\n it('should detect Zod v3 schemas', () => {\n const v3Schema = z3.string();\n expect(isZod4Schema(v3Schema)).toBe(false);\n });\n\n it('should handle default z import (follows installed version)', () => {\n const schema = z.string();\n expect(typeof isZod4Schema(schema)).toBe('boolean');\n });\n });\n\n describe('isZodSchema', () => {\n it('should detect Zod v4 schemas', () => {\n const v4Schema = z4.object({ name: z4.string() });\n expect(isZodSchema(v4Schema)).toBe(true);\n });\n\n it('should detect Zod v3 schemas', () => {\n const v3Schema = z3.object({ name: z3.string() });\n expect(isZodSchema(v3Schema)).toBe(true);\n });\n\n it('should return false for non-Zod values', () => {\n expect(isZodSchema({})).toBe(false);\n expect(isZodSchema(null)).toBe(false);\n expect(isZodSchema(undefined)).toBe(false);\n expect(isZodSchema('string')).toBe(false);\n expect(isZodSchema(123)).toBe(false);\n expect(isZodSchema({ _def: {} })).toBe(false); // missing typeName\n });\n });\n\n describe('isZodObjectSchema', () => {\n it('should detect Zod v4 object schemas', () => {\n const objectSchema = z4.object({ name: z4.string() });\n expect(isZodObjectSchema(objectSchema)).toBe(true);\n });\n\n it('should detect Zod v3 object schemas', () => {\n const objectSchema = z3.object({ name: z3.string() });\n expect(isZodObjectSchema(objectSchema)).toBe(true);\n });\n\n it('should return false for non-object Zod schemas', () => {\n expect(isZodObjectSchema(z4.string())).toBe(false);\n expect(isZodObjectSchema(z4.number())).toBe(false);\n expect(isZodObjectSchema(z4.array(z4.string()))).toBe(false);\n expect(isZodObjectSchema(z3.string())).toBe(false);\n expect(isZodObjectSchema(z3.number())).toBe(false);\n });\n });\n\n describe('zodSchemaToJsonSchema', () => {\n describe('Zod v4 schemas', () => {\n it('should convert basic v4 object schema to JSON Schema', () => {\n const schema = z4.object({\n name: z4.string(),\n age: z4.number(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it.skip('should handle v4 schemas with descriptions', () => {\n // NOTE: This test is skipped because Zod 3.25.76's v4 alpha doesn't fully support\n // descriptions in toJSONSchema yet. This will work in final Zod v4 release.\n const schema = z4.object({\n location: z4.string().describe('The location to search'),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 schemas with optional fields', () => {\n const schema = z4.object({\n required: z4.string(),\n optional: z4.string().optional(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 enum schemas', () => {\n const schema = z4.object({\n color: z4.enum(['red', 'blue', 'green']),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 array schemas', () => {\n const schema = z4.object({\n tags: z4.array(z4.string()),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 nested object schemas', () => {\n const schema = z4.object({\n user: z4.object({\n name: z4.string(),\n email: z4.string(),\n }),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 schemas with multiple optional fields', () => {\n const schema = z4.object({\n id: z4.string(),\n name: z4.string().optional(),\n age: z4.number().optional(),\n email: z4.string(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 schemas with default values', () => {\n const schema = z4.object({\n name: z4.string(),\n role: z4.string().default('user'),\n active: z4.boolean().default(true),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n });\n\n describe('Zod v3 schemas', () => {\n it('should convert basic v3 object schema to JSON Schema', () => {\n const schema = z3.object({\n name: z3.string(),\n age: z3.number(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 schemas with descriptions', () => {\n const schema = z3.object({\n location: z3.string().describe('The location to search'),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it.skip('should handle v3 schemas with optional fields', () => {\n // NOTE: This test is skipped because in Zod 3.25.76, the v3 export's optional()\n // handling in zod-to-json-schema has some quirks. The behavior is correct for\n // the default z import which is what users will typically use.\n const schema = z3.object({\n required: z3.string(),\n optional: z3.string().optional(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 enum schemas', () => {\n const schema = z3.object({\n color: z3.enum(['red', 'blue', 'green']),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 array schemas', () => {\n const schema = z3.object({\n tags: z3.array(z3.string()),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 nested object schemas', () => {\n const schema = z3.object({\n user: z3.object({\n name: z3.string(),\n email: z3.string(),\n }),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 schemas with multiple optional fields', () => {\n const schema = z3.object({\n id: z3.string(),\n name: z3.string().optional(),\n age: z3.number().optional(),\n email: z3.string(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 schemas with default values', () => {\n const schema = z3.object({\n name: z3.string(),\n role: z3.string().default('user'),\n active: z3.boolean().default(true),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n });\n\n describe('isOpenai parameter', () => {\n it('should respect isOpenai parameter for v3 schemas', () => {\n const schema = z3.object({ name: z3.string() });\n\n const openaiSchema = zodSchemaToJsonSchema(schema, true);\n const jsonSchema7 = zodSchemaToJsonSchema(schema, false);\n\n // Both should work, just different internal handling\n expect(openaiSchema).toHaveProperty('properties');\n expect(jsonSchema7).toHaveProperty('properties');\n });\n });\n });\n\n describe('parseZodSchema', () => {\n describe('Zod v4 schemas', () => {\n it('should successfully parse valid v4 data', async () => {\n const schema = z4.object({\n name: z4.string(),\n age: z4.number(),\n });\n\n const result = await parseZodSchema(schema, { name: 'John', age: 30 });\n\n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual({ name: 'John', age: 30 });\n }\n });\n\n it('should fail to parse invalid v4 data', async () => {\n const schema = z4.object({\n name: z4.string(),\n age: z4.number(),\n });\n\n const result = await parseZodSchema(schema, { name: 'John', age: 'invalid' });\n\n expect(result.success).toBe(false);\n if (!result.success) {\n expect(result.error).toBeDefined();\n }\n });\n\n it('should handle v4 optional fields', async () => {\n const schema = z4.object({\n name: z4.string(),\n email: z4.string().optional(),\n });\n\n const result1 = await parseZodSchema(schema, { name: 'John' });\n expect(result1.success).toBe(true);\n\n const result2 = await parseZodSchema(schema, { name: 'John', email: 'john@example.com' });\n expect(result2.success).toBe(true);\n });\n\n it('should handle v4 default values', async () => {\n const schema = z4.object({\n name: z4.string(),\n role: z4.string().default('user'),\n });\n\n const result = await parseZodSchema(schema, { name: 'John' });\n\n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual({ name: 'John', role: 'user' });\n }\n });\n });\n\n describe('Zod v3 schemas', () => {\n it('should successfully parse valid v3 data', async () => {\n const schema = z3.object({\n name: z3.string(),\n age: z3.number(),\n });\n\n const result = await parseZodSchema(schema, { name: 'John', age: 30 });\n\n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual({ name: 'John', age: 30 });\n }\n });\n\n it('should fail to parse invalid v3 data', async () => {\n const schema = z3.object({\n name: z3.string(),\n age: z3.number(),\n });\n\n const result = await parseZodSchema(schema, { name: 'John', age: 'invalid' });\n\n expect(result.success).toBe(false);\n if (!result.success) {\n expect(result.error).toBeDefined();\n }\n });\n\n it('should handle v3 optional fields', async () => {\n const schema = z3.object({\n name: z3.string(),\n email: z3.string().optional(),\n });\n\n const result1 = await parseZodSchema(schema, { name: 'John' });\n expect(result1.success).toBe(true);\n\n const result2 = await parseZodSchema(schema, { name: 'John', email: 'john@example.com' });\n expect(result2.success).toBe(true);\n });\n\n it('should handle v3 default values', async () => {\n const schema = z3.object({\n name: z3.string(),\n role: z3.string().default('user'),\n });\n\n const result = await parseZodSchema(schema, { name: 'John' });\n\n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual({ name: 'John', role: 'user' });\n }\n });\n });\n });\n\n describe('Cross-version compatibility', () => {\n it('should handle mixed v3 and v4 schemas in the same codebase', async () => {\n const v3Schema = z3.object({ name: z3.string() });\n const v4Schema = z4.object({ name: z4.string() });\n\n const v3Result = await parseZodSchema(v3Schema, { name: 'John' });\n const v4Result = await parseZodSchema(v4Schema, { name: 'Jane' });\n\n expect(v3Result.success).toBe(true);\n expect(v4Result.success).toBe(true);\n });\n\n it('should convert both v3 and v4 basic schemas to compatible JSON Schema', () => {\n const v3Schema = z3.object({ count: z3.number() });\n const v4Schema = z4.object({ count: z4.number() });\n\n const v3Json = zodSchemaToJsonSchema(v3Schema);\n const v4Json = zodSchemaToJsonSchema(v4Schema);\n\n // Both should produce valid JSON Schema with same structure\n expect(v3Json.type).toBe('object');\n expect(v4Json.type).toBe('object');\n expect((v3Json.properties as JSONSchemaProperties).count?.type).toBe('number');\n expect((v4Json.properties as JSONSchemaProperties).count?.type).toBe('number');\n });\n\n it('should handle optional fields consistently across v3 and v4', () => {\n const v3Schema = z3.object({\n required: z3.string(),\n optional: z3.string().optional(),\n });\n const v4Schema = z4.object({\n required: z4.string(),\n optional: z4.string().optional(),\n });\n\n const v3Json = zodSchemaToJsonSchema(v3Schema);\n const v4Json = zodSchemaToJsonSchema(v4Schema);\n\n // Both should mark 'required' as required\n expect(v3Json.required).toContain('required');\n expect(v4Json.required).toContain('required');\n\n // v4 should NOT mark 'optional' as required\n expect(v4Json.required).not.toContain('optional');\n\n // NOTE: v3's optional handling in zod-to-json-schema (for the v3 export) has quirks\n // in the alpha version 3.25.76. The default z import works correctly for users.\n });\n\n it('should handle complex schemas with nested objects and arrays consistently', () => {\n const v3Schema = z3.object({\n user: z3.object({\n name: z3.string(),\n email: z3.string().optional(),\n }),\n tags: z3.array(z3.string()),\n status: z3.enum(['active', 'inactive']),\n });\n\n const v4Schema = z4.object({\n user: z4.object({\n name: z4.string(),\n email: z4.string().optional(),\n }),\n tags: z4.array(z4.string()),\n status: z4.enum(['active', 'inactive']),\n });\n\n const v3Json = zodSchemaToJsonSchema(v3Schema);\n const v4Json = zodSchemaToJsonSchema(v4Schema);\n\n // Check structure compatibility\n expect(v3Json.type).toBe(v4Json.type);\n expect(Object.keys(v3Json.properties || {})).toEqual(Object.keys(v4Json.properties || {}));\n\n // Check nested object\n const v3User = (v3Json.properties as JSONSchemaProperties).user;\n const v4User = (v4Json.properties as JSONSchemaProperties).user;\n expect(v3User?.type).toBe('object');\n expect(v4User?.type).toBe('object');\n\n // Check array\n const v3Tags = (v3Json.properties as JSONSchemaProperties).tags;\n const v4Tags = (v4Json.properties as JSONSchemaProperties).tags;\n expect(v3Tags?.type).toBe('array');\n expect(v4Tags?.type).toBe('array');\n\n // Check enum\n const v3Status = (v3Json.properties as JSONSchemaProperties).status;\n const v4Status = (v4Json.properties as JSONSchemaProperties).status;\n expect(v3Status?.enum).toEqual(['active', 'inactive']);\n expect(v4Status?.enum).toEqual(['active', 'inactive']);\n });\n });\n});\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/llm/zod-utils.test.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { describe, expect, it } from 'vitest';\nimport { z } from 'zod';\nimport * as z3 from 'zod/v3';\nimport * as z4 from 'zod/v4';\nimport {\n isZod4Schema,\n isZodObjectSchema,\n isZodSchema,\n parseZodSchema,\n zodSchemaToJsonSchema,\n} from './zod-utils.js';\n\ntype JSONSchemaProperties = Record<string, Record<string, unknown>>;\n\ndescribe('Zod Utils', () => {\n describe('isZod4Schema', () => {\n it('should detect Zod v4 schemas', () => {\n const v4Schema = z4.string();\n expect(isZod4Schema(v4Schema)).toBe(true);\n });\n\n it('should detect Zod v3 schemas', () => {\n const v3Schema = z3.string();\n expect(isZod4Schema(v3Schema)).toBe(false);\n });\n\n it('should handle default z import (follows installed version)', () => {\n const schema = z.string();\n expect(typeof isZod4Schema(schema)).toBe('boolean');\n });\n });\n\n describe('isZodSchema', () => {\n it('should detect Zod v4 schemas', () => {\n const v4Schema = z4.object({ name: z4.string() });\n expect(isZodSchema(v4Schema)).toBe(true);\n });\n\n it('should detect Zod v3 schemas', () => {\n const v3Schema = z3.object({ name: z3.string() });\n expect(isZodSchema(v3Schema)).toBe(true);\n });\n\n it('should return false for non-Zod values', () => {\n expect(isZodSchema({})).toBe(false);\n expect(isZodSchema(null)).toBe(false);\n expect(isZodSchema(undefined)).toBe(false);\n expect(isZodSchema('string')).toBe(false);\n expect(isZodSchema(123)).toBe(false);\n expect(isZodSchema({ _def: {} })).toBe(false); // missing typeName\n });\n });\n\n describe('isZodObjectSchema', () => {\n it('should detect Zod v4 object schemas', () => {\n const objectSchema = z4.object({ name: z4.string() });\n expect(isZodObjectSchema(objectSchema)).toBe(true);\n });\n\n it('should detect Zod v3 object schemas', () => {\n const objectSchema = z3.object({ name: z3.string() });\n expect(isZodObjectSchema(objectSchema)).toBe(true);\n });\n\n it('should return false for non-object Zod schemas', () => {\n expect(isZodObjectSchema(z4.string())).toBe(false);\n expect(isZodObjectSchema(z4.number())).toBe(false);\n expect(isZodObjectSchema(z4.array(z4.string()))).toBe(false);\n expect(isZodObjectSchema(z3.string())).toBe(false);\n expect(isZodObjectSchema(z3.number())).toBe(false);\n });\n });\n\n describe('zodSchemaToJsonSchema', () => {\n describe('Zod v4 schemas', () => {\n it('should convert basic v4 object schema to JSON Schema', () => {\n const schema = z4.object({\n name: z4.string(),\n age: z4.number(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it.skip('should handle v4 schemas with descriptions', () => {\n // NOTE: This test is skipped because Zod 3.25.76's v4 alpha doesn't fully support\n // descriptions in toJSONSchema yet. This will work in final Zod v4 release.\n const schema = z4.object({\n location: z4.string().describe('The location to search'),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 schemas with optional fields', () => {\n const schema = z4.object({\n required: z4.string(),\n optional: z4.string().optional(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 enum schemas', () => {\n const schema = z4.object({\n color: z4.enum(['red', 'blue', 'green']),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 array schemas', () => {\n const schema = z4.object({\n tags: z4.array(z4.string()),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 nested object schemas', () => {\n const schema = z4.object({\n user: z4.object({\n name: z4.string(),\n email: z4.string(),\n }),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 schemas with multiple optional fields', () => {\n const schema = z4.object({\n id: z4.string(),\n name: z4.string().optional(),\n age: z4.number().optional(),\n email: z4.string(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v4 schemas with default values', () => {\n const schema = z4.object({\n name: z4.string(),\n role: z4.string().default('user'),\n active: z4.boolean().default(true),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n });\n\n describe('Zod v3 schemas', () => {\n it('should convert basic v3 object schema to JSON Schema', () => {\n const schema = z3.object({\n name: z3.string(),\n age: z3.number(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 schemas with descriptions', () => {\n const schema = z3.object({\n location: z3.string().describe('The location to search'),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it.skip('should handle v3 schemas with optional fields', () => {\n // NOTE: This test is skipped because in Zod 3.25.76, the v3 export's optional()\n // handling in zod-to-json-schema has some quirks. The behavior is correct for\n // the default z import which is what users will typically use.\n const schema = z3.object({\n required: z3.string(),\n optional: z3.string().optional(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 enum schemas', () => {\n const schema = z3.object({\n color: z3.enum(['red', 'blue', 'green']),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 array schemas', () => {\n const schema = z3.object({\n tags: z3.array(z3.string()),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 nested object schemas', () => {\n const schema = z3.object({\n user: z3.object({\n name: z3.string(),\n email: z3.string(),\n }),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 schemas with multiple optional fields', () => {\n const schema = z3.object({\n id: z3.string(),\n name: z3.string().optional(),\n age: z3.number().optional(),\n email: z3.string(),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n\n it('should handle v3 schemas with default values', () => {\n const schema = z3.object({\n name: z3.string(),\n role: z3.string().default('user'),\n active: z3.boolean().default(true),\n });\n\n const jsonSchema = zodSchemaToJsonSchema(schema);\n expect(jsonSchema).toMatchSnapshot();\n });\n });\n\n describe('isOpenai parameter', () => {\n it('should respect isOpenai parameter for v3 schemas', () => {\n const schema = z3.object({ name: z3.string() });\n\n const openaiSchema = zodSchemaToJsonSchema(schema, true);\n const jsonSchema7 = zodSchemaToJsonSchema(schema, false);\n\n // Both should work, just different internal handling\n expect(openaiSchema).toHaveProperty('properties');\n expect(jsonSchema7).toHaveProperty('properties');\n });\n });\n\n describe('strict parameter', () => {\n it('should produce strict JSON schema with strict: true', () => {\n const schema = z4.object({\n name: z4.string(),\n age: z4.number(),\n });\n\n const strictSchema = zodSchemaToJsonSchema(schema, true, true);\n expect(strictSchema).toMatchSnapshot();\n });\n\n it('should handle nullable fields in strict mode', () => {\n const schema = z4.object({\n required: z4.string(),\n optional: z4.string().nullable(),\n });\n\n const strictSchema = zodSchemaToJsonSchema(schema, true, true);\n expect(strictSchema).toMatchSnapshot();\n });\n\n it('should handle default values in strict mode', () => {\n const schema = z4.object({\n name: z4.string(),\n role: z4.string().default('user'),\n active: z4.boolean().default(true),\n });\n\n const strictSchema = zodSchemaToJsonSchema(schema, true, true);\n expect(strictSchema).toMatchSnapshot();\n });\n\n it('should handle nested objects in strict mode', () => {\n const schema = z4.object({\n user: z4.object({\n name: z4.string(),\n email: z4.string().nullable(),\n }),\n metadata: z4.object({\n created: z4.string(),\n }),\n });\n\n const strictSchema = zodSchemaToJsonSchema(schema, true, true);\n expect(strictSchema).toMatchSnapshot();\n });\n\n it('should handle arrays in strict mode', () => {\n const schema = z4.object({\n tags: z4.array(z4.string()),\n numbers: z4.array(z4.number()),\n });\n\n const strictSchema = zodSchemaToJsonSchema(schema, true, true);\n expect(strictSchema).toMatchSnapshot();\n });\n\n it('should handle v3 schemas in strict mode', () => {\n const schema = z3.object({\n name: z3.string(),\n age: z3.number().optional(),\n });\n\n const strictSchema = zodSchemaToJsonSchema(schema, true, true);\n expect(strictSchema).toMatchSnapshot();\n });\n\n it('should throw error when using .optional() without .nullable() in strict mode', () => {\n const schema = z4.object({\n required: z4.string(),\n optional: z4.string().optional(),\n });\n\n expect(() => zodSchemaToJsonSchema(schema, true, true)).toThrow(\n /uses `.optional\\(\\)` without `.nullable\\(\\)` which is not supported by the API/,\n );\n });\n\n it('should throw error for nested .optional() fields in strict mode', () => {\n const schema = z4.object({\n user: z4.object({\n name: z4.string(),\n email: z4.string().optional(),\n }),\n });\n\n expect(() => zodSchemaToJsonSchema(schema, true, true)).toThrow(\n /uses `.optional\\(\\)` without `.nullable\\(\\)` which is not supported by the API/,\n );\n });\n\n it('should NOT throw error when using .optional() in non-strict mode', () => {\n const schema = z4.object({\n required: z4.string(),\n optional: z4.string().optional(),\n });\n\n expect(() => zodSchemaToJsonSchema(schema, true, false)).not.toThrow();\n });\n });\n });\n\n describe('parseZodSchema', () => {\n describe('Zod v4 schemas', () => {\n it('should successfully parse valid v4 data', async () => {\n const schema = z4.object({\n name: z4.string(),\n age: z4.number(),\n });\n\n const result = await parseZodSchema(schema, { name: 'John', age: 30 });\n\n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual({ name: 'John', age: 30 });\n }\n });\n\n it('should fail to parse invalid v4 data', async () => {\n const schema = z4.object({\n name: z4.string(),\n age: z4.number(),\n });\n\n const result = await parseZodSchema(schema, { name: 'John', age: 'invalid' });\n\n expect(result.success).toBe(false);\n if (!result.success) {\n expect(result.error).toBeDefined();\n }\n });\n\n it('should handle v4 optional fields', async () => {\n const schema = z4.object({\n name: z4.string(),\n email: z4.string().optional(),\n });\n\n const result1 = await parseZodSchema(schema, { name: 'John' });\n expect(result1.success).toBe(true);\n\n const result2 = await parseZodSchema(schema, { name: 'John', email: 'john@example.com' });\n expect(result2.success).toBe(true);\n });\n\n it('should handle v4 default values', async () => {\n const schema = z4.object({\n name: z4.string(),\n role: z4.string().default('user'),\n });\n\n const result = await parseZodSchema(schema, { name: 'John' });\n\n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual({ name: 'John', role: 'user' });\n }\n });\n });\n\n describe('Zod v3 schemas', () => {\n it('should successfully parse valid v3 data', async () => {\n const schema = z3.object({\n name: z3.string(),\n age: z3.number(),\n });\n\n const result = await parseZodSchema(schema, { name: 'John', age: 30 });\n\n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual({ name: 'John', age: 30 });\n }\n });\n\n it('should fail to parse invalid v3 data', async () => {\n const schema = z3.object({\n name: z3.string(),\n age: z3.number(),\n });\n\n const result = await parseZodSchema(schema, { name: 'John', age: 'invalid' });\n\n expect(result.success).toBe(false);\n if (!result.success) {\n expect(result.error).toBeDefined();\n }\n });\n\n it('should handle v3 optional fields', async () => {\n const schema = z3.object({\n name: z3.string(),\n email: z3.string().optional(),\n });\n\n const result1 = await parseZodSchema(schema, { name: 'John' });\n expect(result1.success).toBe(true);\n\n const result2 = await parseZodSchema(schema, { name: 'John', email: 'john@example.com' });\n expect(result2.success).toBe(true);\n });\n\n it('should handle v3 default values', async () => {\n const schema = z3.object({\n name: z3.string(),\n role: z3.string().default('user'),\n });\n\n const result = await parseZodSchema(schema, { name: 'John' });\n\n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual({ name: 'John', role: 'user' });\n }\n });\n });\n });\n\n describe('Cross-version compatibility', () => {\n it('should handle mixed v3 and v4 schemas in the same codebase', async () => {\n const v3Schema = z3.object({ name: z3.string() });\n const v4Schema = z4.object({ name: z4.string() });\n\n const v3Result = await parseZodSchema(v3Schema, { name: 'John' });\n const v4Result = await parseZodSchema(v4Schema, { name: 'Jane' });\n\n expect(v3Result.success).toBe(true);\n expect(v4Result.success).toBe(true);\n });\n\n it('should convert both v3 and v4 basic schemas to compatible JSON Schema', () => {\n const v3Schema = z3.object({ count: z3.number() });\n const v4Schema = z4.object({ count: z4.number() });\n\n const v3Json = zodSchemaToJsonSchema(v3Schema);\n const v4Json = zodSchemaToJsonSchema(v4Schema);\n\n // Both should produce valid JSON Schema with same structure\n expect(v3Json.type).toBe('object');\n expect(v4Json.type).toBe('object');\n expect((v3Json.properties as JSONSchemaProperties).count?.type).toBe('number');\n expect((v4Json.properties as JSONSchemaProperties).count?.type).toBe('number');\n });\n\n it('should handle optional fields consistently across v3 and v4', () => {\n const v3Schema = z3.object({\n required: z3.string(),\n optional: z3.string().optional(),\n });\n const v4Schema = z4.object({\n required: z4.string(),\n optional: z4.string().optional(),\n });\n\n const v3Json = zodSchemaToJsonSchema(v3Schema);\n const v4Json = zodSchemaToJsonSchema(v4Schema);\n\n // Both should mark 'required' as required\n expect(v3Json.required).toContain('required');\n expect(v4Json.required).toContain('required');\n\n // v4 should NOT mark 'optional' as required\n expect(v4Json.required).not.toContain('optional');\n\n // NOTE: v3's optional handling in zod-to-json-schema (for the v3 export) has quirks\n // in the alpha version 3.25.76. The default z import works correctly for users.\n });\n\n it('should handle complex schemas with nested objects and arrays consistently', () => {\n const v3Schema = z3.object({\n user: z3.object({\n name: z3.string(),\n email: z3.string().optional(),\n }),\n tags: z3.array(z3.string()),\n status: z3.enum(['active', 'inactive']),\n });\n\n const v4Schema = z4.object({\n user: z4.object({\n name: z4.string(),\n email: z4.string().optional(),\n }),\n tags: z4.array(z4.string()),\n status: z4.enum(['active', 'inactive']),\n });\n\n const v3Json = zodSchemaToJsonSchema(v3Schema);\n const v4Json = zodSchemaToJsonSchema(v4Schema);\n\n // Check structure compatibility\n expect(v3Json.type).toBe(v4Json.type);\n expect(Object.keys(v3Json.properties || {})).toEqual(Object.keys(v4Json.properties || {}));\n\n // Check nested object\n const v3User = (v3Json.properties as JSONSchemaProperties).user;\n const v4User = (v4Json.properties as JSONSchemaProperties).user;\n expect(v3User?.type).toBe('object');\n expect(v4User?.type).toBe('object');\n\n // Check array\n const v3Tags = (v3Json.properties as JSONSchemaProperties).tags;\n const v4Tags = (v4Json.properties as JSONSchemaProperties).tags;\n expect(v3Tags?.type).toBe('array');\n expect(v4Tags?.type).toBe('array');\n\n // Check enum\n const v3Status = (v3Json.properties as JSONSchemaProperties).status;\n const v4Status = (v4Json.properties as JSONSchemaProperties).status;\n expect(v3Status?.enum).toEqual(['active', 'inactive']);\n expect(v4Status?.enum).toEqual(['active', 'inactive']);\n });\n });\n});\n"],"mappings":"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","names":[]}
|
package/dist/log.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/log.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { Logger } from 'pino';\nimport { pino } from 'pino';\n\n/** @internal */\nexport type LoggerOptions = {\n pretty: boolean;\n level?: string;\n};\n\n/** @internal */\nexport let loggerOptions: LoggerOptions;\n\n/** @internal */\nlet logger: Logger | undefined = undefined;\n\n/** @internal */\nexport const log = () => {\n if (!logger) {\n throw new TypeError('logger not initialized. did you forget to run initializeLogger()?');\n }\n return logger;\n};\n\n/** @internal */\nexport const initializeLogger = ({ pretty, level }: LoggerOptions) => {\n loggerOptions = { pretty, level };\n logger = pino(\n pretty\n ? {\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n }\n : {},\n );\n if (level) {\n logger.level = level;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kBAAqB;AASd,IAAI;AAGX,IAAI,SAA6B;AAG1B,MAAM,MAAM,MAAM;AACvB,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,UAAU,mEAAmE;AAAA,EACzF;AACA,SAAO;AACT;AAGO,MAAM,mBAAmB,CAAC,EAAE,QAAQ,MAAM,MAAqB;AACpE,kBAAgB,EAAE,QAAQ,MAAM;AAChC,eAAS;AAAA,IACP,SACI;AAAA,MACE,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF,IACA,CAAC;AAAA,EACP;AACA,MAAI,OAAO;AACT,WAAO,QAAQ;AAAA,EACjB;
|
|
1
|
+
{"version":3,"sources":["../src/log.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { Logger } from 'pino';\nimport { pino } from 'pino';\n\n/** @internal */\nexport type LoggerOptions = {\n pretty: boolean;\n level?: string;\n};\n\n/** @internal */\nexport let loggerOptions: LoggerOptions;\n\n/** @internal */\nlet logger: Logger | undefined = undefined;\n\n/** @internal */\nexport const log = () => {\n if (!logger) {\n throw new TypeError('logger not initialized. did you forget to run initializeLogger()?');\n }\n return logger;\n};\n\n/** @internal */\nexport const initializeLogger = ({ pretty, level }: LoggerOptions) => {\n loggerOptions = { pretty, level };\n logger = pino(\n pretty\n ? {\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n }\n : {},\n );\n if (level) {\n logger.level = level;\n }\n // TODO(brian): PR4 - Add Pino bridge to OTEL LoggingHandler for structured logging integration\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kBAAqB;AASd,IAAI;AAGX,IAAI,SAA6B;AAG1B,MAAM,MAAM,MAAM;AACvB,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,UAAU,mEAAmE;AAAA,EACzF;AACA,SAAO;AACT;AAGO,MAAM,mBAAmB,CAAC,EAAE,QAAQ,MAAM,MAAqB;AACpE,kBAAgB,EAAE,QAAQ,MAAM;AAChC,eAAS;AAAA,IACP,SACI;AAAA,MACE,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF,IACA,CAAC;AAAA,EACP;AACA,MAAI,OAAO;AACT,WAAO,QAAQ;AAAA,EACjB;AAEF;","names":[]}
|
package/dist/log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,gBAAgB;AAChB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,gBAAgB;AAChB,eAAO,IAAI,aAAa,EAAE,aAAa,CAAC;AAKxC,gBAAgB;AAChB,eAAO,MAAM,GAAG,cAKf,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,gBAAgB,sBAAuB,aAAa,
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,gBAAgB;AAChB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,gBAAgB;AAChB,eAAO,IAAI,aAAa,EAAE,aAAa,CAAC;AAKxC,gBAAgB;AAChB,eAAO,MAAM,GAAG,cAKf,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,gBAAgB,sBAAuB,aAAa,SAkBhE,CAAC"}
|
package/dist/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/log.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { Logger } from 'pino';\nimport { pino } from 'pino';\n\n/** @internal */\nexport type LoggerOptions = {\n pretty: boolean;\n level?: string;\n};\n\n/** @internal */\nexport let loggerOptions: LoggerOptions;\n\n/** @internal */\nlet logger: Logger | undefined = undefined;\n\n/** @internal */\nexport const log = () => {\n if (!logger) {\n throw new TypeError('logger not initialized. did you forget to run initializeLogger()?');\n }\n return logger;\n};\n\n/** @internal */\nexport const initializeLogger = ({ pretty, level }: LoggerOptions) => {\n loggerOptions = { pretty, level };\n logger = pino(\n pretty\n ? {\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n }\n : {},\n );\n if (level) {\n logger.level = level;\n }\n};\n"],"mappings":"AAIA,SAAS,YAAY;AASd,IAAI;AAGX,IAAI,SAA6B;AAG1B,MAAM,MAAM,MAAM;AACvB,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,UAAU,mEAAmE;AAAA,EACzF;AACA,SAAO;AACT;AAGO,MAAM,mBAAmB,CAAC,EAAE,QAAQ,MAAM,MAAqB;AACpE,kBAAgB,EAAE,QAAQ,MAAM;AAChC,WAAS;AAAA,IACP,SACI;AAAA,MACE,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF,IACA,CAAC;AAAA,EACP;AACA,MAAI,OAAO;AACT,WAAO,QAAQ;AAAA,EACjB;
|
|
1
|
+
{"version":3,"sources":["../src/log.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { Logger } from 'pino';\nimport { pino } from 'pino';\n\n/** @internal */\nexport type LoggerOptions = {\n pretty: boolean;\n level?: string;\n};\n\n/** @internal */\nexport let loggerOptions: LoggerOptions;\n\n/** @internal */\nlet logger: Logger | undefined = undefined;\n\n/** @internal */\nexport const log = () => {\n if (!logger) {\n throw new TypeError('logger not initialized. did you forget to run initializeLogger()?');\n }\n return logger;\n};\n\n/** @internal */\nexport const initializeLogger = ({ pretty, level }: LoggerOptions) => {\n loggerOptions = { pretty, level };\n logger = pino(\n pretty\n ? {\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n },\n },\n }\n : {},\n );\n if (level) {\n logger.level = level;\n }\n // TODO(brian): PR4 - Add Pino bridge to OTEL LoggingHandler for structured logging integration\n};\n"],"mappings":"AAIA,SAAS,YAAY;AASd,IAAI;AAGX,IAAI,SAA6B;AAG1B,MAAM,MAAM,MAAM;AACvB,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,UAAU,mEAAmE;AAAA,EACzF;AACA,SAAO;AACT;AAGO,MAAM,mBAAmB,CAAC,EAAE,QAAQ,MAAM,MAAqB;AACpE,kBAAgB,EAAE,QAAQ,MAAM;AAChC,WAAS;AAAA,IACP,SACI;AAAA,MACE,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF,IACA,CAAC;AAAA,EACP;AACA,MAAI,OAAO;AACT,WAAO,QAAQ;AAAA,EACjB;AAEF;","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var telemetry_exports = {};
|
|
30
|
+
__export(telemetry_exports, {
|
|
31
|
+
recordException: () => import_utils.recordException,
|
|
32
|
+
recordRealtimeMetrics: () => import_utils.recordRealtimeMetrics,
|
|
33
|
+
setTracerProvider: () => import_traces.setTracerProvider,
|
|
34
|
+
setupCloudTracer: () => import_traces.setupCloudTracer,
|
|
35
|
+
traceTypes: () => traceTypes,
|
|
36
|
+
tracer: () => import_traces.tracer
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(telemetry_exports);
|
|
39
|
+
var traceTypes = __toESM(require("./trace_types.cjs"), 1);
|
|
40
|
+
var import_traces = require("./traces.cjs");
|
|
41
|
+
var import_utils = require("./utils.cjs");
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
recordException,
|
|
45
|
+
recordRealtimeMetrics,
|
|
46
|
+
setTracerProvider,
|
|
47
|
+
setupCloudTracer,
|
|
48
|
+
traceTypes,
|
|
49
|
+
tracer
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/telemetry/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n// TODO(brian): PR4 - Add logging integration exports\n// TODO(brian): PR5 - Add uploadSessionReport export\n\nexport * as traceTypes from './trace_types.js';\nexport { setTracerProvider, setupCloudTracer, tracer, type StartSpanOptions } from './traces.js';\nexport { recordException, recordRealtimeMetrics } from './utils.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,iBAA4B;AAC5B,oBAAmF;AACnF,mBAAuD;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as traceTypes from "./trace_types.js";
|
|
2
|
+
import { setTracerProvider, setupCloudTracer, tracer } from "./traces.js";
|
|
3
|
+
import { recordException, recordRealtimeMetrics } from "./utils.js";
|
|
4
|
+
export {
|
|
5
|
+
recordException,
|
|
6
|
+
recordRealtimeMetrics,
|
|
7
|
+
setTracerProvider,
|
|
8
|
+
setupCloudTracer,
|
|
9
|
+
traceTypes,
|
|
10
|
+
tracer
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/telemetry/index.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n// TODO(brian): PR4 - Add logging integration exports\n// TODO(brian): PR5 - Add uploadSessionReport export\n\nexport * as traceTypes from './trace_types.js';\nexport { setTracerProvider, setupCloudTracer, tracer, type StartSpanOptions } from './traces.js';\nexport { recordException, recordRealtimeMetrics } from './utils.js';\n"],"mappings":"AAOA,YAAY,gBAAgB;AAC5B,SAAS,mBAAmB,kBAAkB,cAAqC;AACnF,SAAS,iBAAiB,6BAA6B;","names":[]}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var trace_types_exports = {};
|
|
20
|
+
__export(trace_types_exports, {
|
|
21
|
+
ATTR_AGENT_LABEL: () => ATTR_AGENT_LABEL,
|
|
22
|
+
ATTR_AGENT_NAME: () => ATTR_AGENT_NAME,
|
|
23
|
+
ATTR_CHAT_CTX: () => ATTR_CHAT_CTX,
|
|
24
|
+
ATTR_END_OF_TURN_DELAY: () => ATTR_END_OF_TURN_DELAY,
|
|
25
|
+
ATTR_END_TIME: () => ATTR_END_TIME,
|
|
26
|
+
ATTR_EOU_DELAY: () => ATTR_EOU_DELAY,
|
|
27
|
+
ATTR_EOU_LANGUAGE: () => ATTR_EOU_LANGUAGE,
|
|
28
|
+
ATTR_EOU_PROBABILITY: () => ATTR_EOU_PROBABILITY,
|
|
29
|
+
ATTR_EOU_UNLIKELY_THRESHOLD: () => ATTR_EOU_UNLIKELY_THRESHOLD,
|
|
30
|
+
ATTR_EXCEPTION_MESSAGE: () => ATTR_EXCEPTION_MESSAGE,
|
|
31
|
+
ATTR_EXCEPTION_TRACE: () => ATTR_EXCEPTION_TRACE,
|
|
32
|
+
ATTR_EXCEPTION_TYPE: () => ATTR_EXCEPTION_TYPE,
|
|
33
|
+
ATTR_FUNCTION_TOOLS: () => ATTR_FUNCTION_TOOLS,
|
|
34
|
+
ATTR_FUNCTION_TOOL_ARGS: () => ATTR_FUNCTION_TOOL_ARGS,
|
|
35
|
+
ATTR_FUNCTION_TOOL_IS_ERROR: () => ATTR_FUNCTION_TOOL_IS_ERROR,
|
|
36
|
+
ATTR_FUNCTION_TOOL_NAME: () => ATTR_FUNCTION_TOOL_NAME,
|
|
37
|
+
ATTR_FUNCTION_TOOL_OUTPUT: () => ATTR_FUNCTION_TOOL_OUTPUT,
|
|
38
|
+
ATTR_GEN_AI_OPERATION_NAME: () => ATTR_GEN_AI_OPERATION_NAME,
|
|
39
|
+
ATTR_GEN_AI_REQUEST_MODEL: () => ATTR_GEN_AI_REQUEST_MODEL,
|
|
40
|
+
ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS: () => ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS,
|
|
41
|
+
ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS: () => ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS,
|
|
42
|
+
ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS: () => ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS,
|
|
43
|
+
ATTR_GEN_AI_USAGE_INPUT_TOKENS: () => ATTR_GEN_AI_USAGE_INPUT_TOKENS,
|
|
44
|
+
ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS: () => ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS,
|
|
45
|
+
ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS: () => ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS,
|
|
46
|
+
ATTR_GEN_AI_USAGE_OUTPUT_TOKENS: () => ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,
|
|
47
|
+
ATTR_INSTRUCTIONS: () => ATTR_INSTRUCTIONS,
|
|
48
|
+
ATTR_JOB_ID: () => ATTR_JOB_ID,
|
|
49
|
+
ATTR_LANGFUSE_COMPLETION_START_TIME: () => ATTR_LANGFUSE_COMPLETION_START_TIME,
|
|
50
|
+
ATTR_LLM_METRICS: () => ATTR_LLM_METRICS,
|
|
51
|
+
ATTR_PARTICIPANT_ID: () => ATTR_PARTICIPANT_ID,
|
|
52
|
+
ATTR_PARTICIPANT_IDENTITY: () => ATTR_PARTICIPANT_IDENTITY,
|
|
53
|
+
ATTR_PARTICIPANT_KIND: () => ATTR_PARTICIPANT_KIND,
|
|
54
|
+
ATTR_REALTIME_MODEL_METRICS: () => ATTR_REALTIME_MODEL_METRICS,
|
|
55
|
+
ATTR_RESPONSE_FUNCTION_CALLS: () => ATTR_RESPONSE_FUNCTION_CALLS,
|
|
56
|
+
ATTR_RESPONSE_TEXT: () => ATTR_RESPONSE_TEXT,
|
|
57
|
+
ATTR_RETRY_COUNT: () => ATTR_RETRY_COUNT,
|
|
58
|
+
ATTR_ROOM_NAME: () => ATTR_ROOM_NAME,
|
|
59
|
+
ATTR_SESSION_OPTIONS: () => ATTR_SESSION_OPTIONS,
|
|
60
|
+
ATTR_SPEECH_ID: () => ATTR_SPEECH_ID,
|
|
61
|
+
ATTR_SPEECH_INTERRUPTED: () => ATTR_SPEECH_INTERRUPTED,
|
|
62
|
+
ATTR_START_TIME: () => ATTR_START_TIME,
|
|
63
|
+
ATTR_TRANSCRIPTION_DELAY: () => ATTR_TRANSCRIPTION_DELAY,
|
|
64
|
+
ATTR_TRANSCRIPT_CONFIDENCE: () => ATTR_TRANSCRIPT_CONFIDENCE,
|
|
65
|
+
ATTR_TTS_INPUT_TEXT: () => ATTR_TTS_INPUT_TEXT,
|
|
66
|
+
ATTR_TTS_LABEL: () => ATTR_TTS_LABEL,
|
|
67
|
+
ATTR_TTS_METRICS: () => ATTR_TTS_METRICS,
|
|
68
|
+
ATTR_TTS_STREAMING: () => ATTR_TTS_STREAMING,
|
|
69
|
+
ATTR_USER_INPUT: () => ATTR_USER_INPUT,
|
|
70
|
+
ATTR_USER_TRANSCRIPT: () => ATTR_USER_TRANSCRIPT,
|
|
71
|
+
EVENT_GEN_AI_ASSISTANT_MESSAGE: () => EVENT_GEN_AI_ASSISTANT_MESSAGE,
|
|
72
|
+
EVENT_GEN_AI_CHOICE: () => EVENT_GEN_AI_CHOICE,
|
|
73
|
+
EVENT_GEN_AI_SYSTEM_MESSAGE: () => EVENT_GEN_AI_SYSTEM_MESSAGE,
|
|
74
|
+
EVENT_GEN_AI_TOOL_MESSAGE: () => EVENT_GEN_AI_TOOL_MESSAGE,
|
|
75
|
+
EVENT_GEN_AI_USER_MESSAGE: () => EVENT_GEN_AI_USER_MESSAGE
|
|
76
|
+
});
|
|
77
|
+
module.exports = __toCommonJS(trace_types_exports);
|
|
78
|
+
const ATTR_SPEECH_ID = "lk.speech_id";
|
|
79
|
+
const ATTR_AGENT_LABEL = "lk.agent_label";
|
|
80
|
+
const ATTR_START_TIME = "lk.start_time";
|
|
81
|
+
const ATTR_END_TIME = "lk.end_time";
|
|
82
|
+
const ATTR_RETRY_COUNT = "lk.retry_count";
|
|
83
|
+
const ATTR_PARTICIPANT_ID = "lk.participant_id";
|
|
84
|
+
const ATTR_PARTICIPANT_IDENTITY = "lk.participant_identity";
|
|
85
|
+
const ATTR_PARTICIPANT_KIND = "lk.participant_kind";
|
|
86
|
+
const ATTR_JOB_ID = "lk.job_id";
|
|
87
|
+
const ATTR_AGENT_NAME = "lk.agent_name";
|
|
88
|
+
const ATTR_ROOM_NAME = "lk.room_name";
|
|
89
|
+
const ATTR_SESSION_OPTIONS = "lk.session_options";
|
|
90
|
+
const ATTR_USER_INPUT = "lk.user_input";
|
|
91
|
+
const ATTR_INSTRUCTIONS = "lk.instructions";
|
|
92
|
+
const ATTR_SPEECH_INTERRUPTED = "lk.interrupted";
|
|
93
|
+
const ATTR_CHAT_CTX = "lk.chat_ctx";
|
|
94
|
+
const ATTR_FUNCTION_TOOLS = "lk.function_tools";
|
|
95
|
+
const ATTR_RESPONSE_TEXT = "lk.response.text";
|
|
96
|
+
const ATTR_RESPONSE_FUNCTION_CALLS = "lk.response.function_calls";
|
|
97
|
+
const ATTR_FUNCTION_TOOL_NAME = "lk.function_tool.name";
|
|
98
|
+
const ATTR_FUNCTION_TOOL_ARGS = "lk.function_tool.arguments";
|
|
99
|
+
const ATTR_FUNCTION_TOOL_IS_ERROR = "lk.function_tool.is_error";
|
|
100
|
+
const ATTR_FUNCTION_TOOL_OUTPUT = "lk.function_tool.output";
|
|
101
|
+
const ATTR_TTS_INPUT_TEXT = "lk.input_text";
|
|
102
|
+
const ATTR_TTS_STREAMING = "lk.tts.streaming";
|
|
103
|
+
const ATTR_TTS_LABEL = "lk.tts.label";
|
|
104
|
+
const ATTR_EOU_PROBABILITY = "lk.eou.probability";
|
|
105
|
+
const ATTR_EOU_UNLIKELY_THRESHOLD = "lk.eou.unlikely_threshold";
|
|
106
|
+
const ATTR_EOU_DELAY = "lk.eou.endpointing_delay";
|
|
107
|
+
const ATTR_EOU_LANGUAGE = "lk.eou.language";
|
|
108
|
+
const ATTR_USER_TRANSCRIPT = "lk.user_transcript";
|
|
109
|
+
const ATTR_TRANSCRIPT_CONFIDENCE = "lk.transcript_confidence";
|
|
110
|
+
const ATTR_TRANSCRIPTION_DELAY = "lk.transcription_delay";
|
|
111
|
+
const ATTR_END_OF_TURN_DELAY = "lk.end_of_turn_delay";
|
|
112
|
+
const ATTR_LLM_METRICS = "lk.llm_metrics";
|
|
113
|
+
const ATTR_TTS_METRICS = "lk.tts_metrics";
|
|
114
|
+
const ATTR_REALTIME_MODEL_METRICS = "lk.realtime_model_metrics";
|
|
115
|
+
const ATTR_GEN_AI_OPERATION_NAME = "gen_ai.operation.name";
|
|
116
|
+
const ATTR_GEN_AI_REQUEST_MODEL = "gen_ai.request.model";
|
|
117
|
+
const ATTR_GEN_AI_USAGE_INPUT_TOKENS = "gen_ai.usage.input_tokens";
|
|
118
|
+
const ATTR_GEN_AI_USAGE_OUTPUT_TOKENS = "gen_ai.usage.output_tokens";
|
|
119
|
+
const ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS = "gen_ai.usage.input_text_tokens";
|
|
120
|
+
const ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS = "gen_ai.usage.input_audio_tokens";
|
|
121
|
+
const ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS = "gen_ai.usage.input_cached_tokens";
|
|
122
|
+
const ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS = "gen_ai.usage.output_text_tokens";
|
|
123
|
+
const ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS = "gen_ai.usage.output_audio_tokens";
|
|
124
|
+
const EVENT_GEN_AI_SYSTEM_MESSAGE = "gen_ai.system.message";
|
|
125
|
+
const EVENT_GEN_AI_USER_MESSAGE = "gen_ai.user.message";
|
|
126
|
+
const EVENT_GEN_AI_ASSISTANT_MESSAGE = "gen_ai.assistant.message";
|
|
127
|
+
const EVENT_GEN_AI_TOOL_MESSAGE = "gen_ai.tool.message";
|
|
128
|
+
const EVENT_GEN_AI_CHOICE = "gen_ai.choice";
|
|
129
|
+
const ATTR_EXCEPTION_TRACE = "exception.stacktrace";
|
|
130
|
+
const ATTR_EXCEPTION_TYPE = "exception.type";
|
|
131
|
+
const ATTR_EXCEPTION_MESSAGE = "exception.message";
|
|
132
|
+
const ATTR_LANGFUSE_COMPLETION_START_TIME = "langfuse.observation.completion_start_time";
|
|
133
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
134
|
+
0 && (module.exports = {
|
|
135
|
+
ATTR_AGENT_LABEL,
|
|
136
|
+
ATTR_AGENT_NAME,
|
|
137
|
+
ATTR_CHAT_CTX,
|
|
138
|
+
ATTR_END_OF_TURN_DELAY,
|
|
139
|
+
ATTR_END_TIME,
|
|
140
|
+
ATTR_EOU_DELAY,
|
|
141
|
+
ATTR_EOU_LANGUAGE,
|
|
142
|
+
ATTR_EOU_PROBABILITY,
|
|
143
|
+
ATTR_EOU_UNLIKELY_THRESHOLD,
|
|
144
|
+
ATTR_EXCEPTION_MESSAGE,
|
|
145
|
+
ATTR_EXCEPTION_TRACE,
|
|
146
|
+
ATTR_EXCEPTION_TYPE,
|
|
147
|
+
ATTR_FUNCTION_TOOLS,
|
|
148
|
+
ATTR_FUNCTION_TOOL_ARGS,
|
|
149
|
+
ATTR_FUNCTION_TOOL_IS_ERROR,
|
|
150
|
+
ATTR_FUNCTION_TOOL_NAME,
|
|
151
|
+
ATTR_FUNCTION_TOOL_OUTPUT,
|
|
152
|
+
ATTR_GEN_AI_OPERATION_NAME,
|
|
153
|
+
ATTR_GEN_AI_REQUEST_MODEL,
|
|
154
|
+
ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS,
|
|
155
|
+
ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS,
|
|
156
|
+
ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS,
|
|
157
|
+
ATTR_GEN_AI_USAGE_INPUT_TOKENS,
|
|
158
|
+
ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS,
|
|
159
|
+
ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS,
|
|
160
|
+
ATTR_GEN_AI_USAGE_OUTPUT_TOKENS,
|
|
161
|
+
ATTR_INSTRUCTIONS,
|
|
162
|
+
ATTR_JOB_ID,
|
|
163
|
+
ATTR_LANGFUSE_COMPLETION_START_TIME,
|
|
164
|
+
ATTR_LLM_METRICS,
|
|
165
|
+
ATTR_PARTICIPANT_ID,
|
|
166
|
+
ATTR_PARTICIPANT_IDENTITY,
|
|
167
|
+
ATTR_PARTICIPANT_KIND,
|
|
168
|
+
ATTR_REALTIME_MODEL_METRICS,
|
|
169
|
+
ATTR_RESPONSE_FUNCTION_CALLS,
|
|
170
|
+
ATTR_RESPONSE_TEXT,
|
|
171
|
+
ATTR_RETRY_COUNT,
|
|
172
|
+
ATTR_ROOM_NAME,
|
|
173
|
+
ATTR_SESSION_OPTIONS,
|
|
174
|
+
ATTR_SPEECH_ID,
|
|
175
|
+
ATTR_SPEECH_INTERRUPTED,
|
|
176
|
+
ATTR_START_TIME,
|
|
177
|
+
ATTR_TRANSCRIPTION_DELAY,
|
|
178
|
+
ATTR_TRANSCRIPT_CONFIDENCE,
|
|
179
|
+
ATTR_TTS_INPUT_TEXT,
|
|
180
|
+
ATTR_TTS_LABEL,
|
|
181
|
+
ATTR_TTS_METRICS,
|
|
182
|
+
ATTR_TTS_STREAMING,
|
|
183
|
+
ATTR_USER_INPUT,
|
|
184
|
+
ATTR_USER_TRANSCRIPT,
|
|
185
|
+
EVENT_GEN_AI_ASSISTANT_MESSAGE,
|
|
186
|
+
EVENT_GEN_AI_CHOICE,
|
|
187
|
+
EVENT_GEN_AI_SYSTEM_MESSAGE,
|
|
188
|
+
EVENT_GEN_AI_TOOL_MESSAGE,
|
|
189
|
+
EVENT_GEN_AI_USER_MESSAGE
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=trace_types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/telemetry/trace_types.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2025 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n\n// LiveKit custom attributes\nexport const ATTR_SPEECH_ID = 'lk.speech_id';\nexport const ATTR_AGENT_LABEL = 'lk.agent_label';\nexport const ATTR_START_TIME = 'lk.start_time';\nexport const ATTR_END_TIME = 'lk.end_time';\nexport const ATTR_RETRY_COUNT = 'lk.retry_count';\n\nexport const ATTR_PARTICIPANT_ID = 'lk.participant_id';\nexport const ATTR_PARTICIPANT_IDENTITY = 'lk.participant_identity';\nexport const ATTR_PARTICIPANT_KIND = 'lk.participant_kind';\n\n// session start\nexport const ATTR_JOB_ID = 'lk.job_id';\nexport const ATTR_AGENT_NAME = 'lk.agent_name';\nexport const ATTR_ROOM_NAME = 'lk.room_name';\nexport const ATTR_SESSION_OPTIONS = 'lk.session_options';\n\n// assistant turn\nexport const ATTR_USER_INPUT = 'lk.user_input';\nexport const ATTR_INSTRUCTIONS = 'lk.instructions';\nexport const ATTR_SPEECH_INTERRUPTED = 'lk.interrupted';\n\n// llm node\nexport const ATTR_CHAT_CTX = 'lk.chat_ctx';\nexport const ATTR_FUNCTION_TOOLS = 'lk.function_tools';\nexport const ATTR_RESPONSE_TEXT = 'lk.response.text';\nexport const ATTR_RESPONSE_FUNCTION_CALLS = 'lk.response.function_calls';\n\n// function tool\nexport const ATTR_FUNCTION_TOOL_NAME = 'lk.function_tool.name';\nexport const ATTR_FUNCTION_TOOL_ARGS = 'lk.function_tool.arguments';\nexport const ATTR_FUNCTION_TOOL_IS_ERROR = 'lk.function_tool.is_error';\nexport const ATTR_FUNCTION_TOOL_OUTPUT = 'lk.function_tool.output';\n\n// tts node\nexport const ATTR_TTS_INPUT_TEXT = 'lk.input_text';\nexport const ATTR_TTS_STREAMING = 'lk.tts.streaming';\nexport const ATTR_TTS_LABEL = 'lk.tts.label';\n\n// eou detection\nexport const ATTR_EOU_PROBABILITY = 'lk.eou.probability';\nexport const ATTR_EOU_UNLIKELY_THRESHOLD = 'lk.eou.unlikely_threshold';\nexport const ATTR_EOU_DELAY = 'lk.eou.endpointing_delay';\nexport const ATTR_EOU_LANGUAGE = 'lk.eou.language';\nexport const ATTR_USER_TRANSCRIPT = 'lk.user_transcript';\nexport const ATTR_TRANSCRIPT_CONFIDENCE = 'lk.transcript_confidence';\nexport const ATTR_TRANSCRIPTION_DELAY = 'lk.transcription_delay';\nexport const ATTR_END_OF_TURN_DELAY = 'lk.end_of_turn_delay';\n\n// metrics\nexport const ATTR_LLM_METRICS = 'lk.llm_metrics';\nexport const ATTR_TTS_METRICS = 'lk.tts_metrics';\nexport const ATTR_REALTIME_MODEL_METRICS = 'lk.realtime_model_metrics';\n\n// OpenTelemetry GenAI attributes\n// OpenTelemetry specification: https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/\nexport const ATTR_GEN_AI_OPERATION_NAME = 'gen_ai.operation.name';\nexport const ATTR_GEN_AI_REQUEST_MODEL = 'gen_ai.request.model';\nexport const ATTR_GEN_AI_USAGE_INPUT_TOKENS = 'gen_ai.usage.input_tokens';\nexport const ATTR_GEN_AI_USAGE_OUTPUT_TOKENS = 'gen_ai.usage.output_tokens';\n\n// Unofficial OpenTelemetry GenAI attributes, recognized by LangFuse\n// https://langfuse.com/integrations/native/opentelemetry#usage\n// but not yet in the official OpenTelemetry specification.\nexport const ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS = 'gen_ai.usage.input_text_tokens';\nexport const ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS = 'gen_ai.usage.input_audio_tokens';\nexport const ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS = 'gen_ai.usage.input_cached_tokens';\nexport const ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS = 'gen_ai.usage.output_text_tokens';\nexport const ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS = 'gen_ai.usage.output_audio_tokens';\n\n// OpenTelemetry GenAI event names (for structured logging)\nexport const EVENT_GEN_AI_SYSTEM_MESSAGE = 'gen_ai.system.message';\nexport const EVENT_GEN_AI_USER_MESSAGE = 'gen_ai.user.message';\nexport const EVENT_GEN_AI_ASSISTANT_MESSAGE = 'gen_ai.assistant.message';\nexport const EVENT_GEN_AI_TOOL_MESSAGE = 'gen_ai.tool.message';\nexport const EVENT_GEN_AI_CHOICE = 'gen_ai.choice';\n\n// Exception attributes\nexport const ATTR_EXCEPTION_TRACE = 'exception.stacktrace';\nexport const ATTR_EXCEPTION_TYPE = 'exception.type';\nexport const ATTR_EXCEPTION_MESSAGE = 'exception.message';\n\n// Platform-specific attributes\nexport const ATTR_LANGFUSE_COMPLETION_START_TIME = 'langfuse.observation.completion_start_time';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,MAAM,iBAAiB;AACvB,MAAM,mBAAmB;AACzB,MAAM,kBAAkB;AACxB,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AAEzB,MAAM,sBAAsB;AAC5B,MAAM,4BAA4B;AAClC,MAAM,wBAAwB;AAG9B,MAAM,cAAc;AACpB,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;AACvB,MAAM,uBAAuB;AAG7B,MAAM,kBAAkB;AACxB,MAAM,oBAAoB;AAC1B,MAAM,0BAA0B;AAGhC,MAAM,gBAAgB;AACtB,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAC3B,MAAM,+BAA+B;AAGrC,MAAM,0BAA0B;AAChC,MAAM,0BAA0B;AAChC,MAAM,8BAA8B;AACpC,MAAM,4BAA4B;AAGlC,MAAM,sBAAsB;AAC5B,MAAM,qBAAqB;AAC3B,MAAM,iBAAiB;AAGvB,MAAM,uBAAuB;AAC7B,MAAM,8BAA8B;AACpC,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,uBAAuB;AAC7B,MAAM,6BAA6B;AACnC,MAAM,2BAA2B;AACjC,MAAM,yBAAyB;AAG/B,MAAM,mBAAmB;AACzB,MAAM,mBAAmB;AACzB,MAAM,8BAA8B;AAIpC,MAAM,6BAA6B;AACnC,MAAM,4BAA4B;AAClC,MAAM,iCAAiC;AACvC,MAAM,kCAAkC;AAKxC,MAAM,sCAAsC;AAC5C,MAAM,uCAAuC;AAC7C,MAAM,wCAAwC;AAC9C,MAAM,uCAAuC;AAC7C,MAAM,wCAAwC;AAG9C,MAAM,8BAA8B;AACpC,MAAM,4BAA4B;AAClC,MAAM,iCAAiC;AACvC,MAAM,4BAA4B;AAClC,MAAM,sBAAsB;AAG5B,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAG/B,MAAM,sCAAsC;","names":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare const ATTR_SPEECH_ID = "lk.speech_id";
|
|
2
|
+
export declare const ATTR_AGENT_LABEL = "lk.agent_label";
|
|
3
|
+
export declare const ATTR_START_TIME = "lk.start_time";
|
|
4
|
+
export declare const ATTR_END_TIME = "lk.end_time";
|
|
5
|
+
export declare const ATTR_RETRY_COUNT = "lk.retry_count";
|
|
6
|
+
export declare const ATTR_PARTICIPANT_ID = "lk.participant_id";
|
|
7
|
+
export declare const ATTR_PARTICIPANT_IDENTITY = "lk.participant_identity";
|
|
8
|
+
export declare const ATTR_PARTICIPANT_KIND = "lk.participant_kind";
|
|
9
|
+
export declare const ATTR_JOB_ID = "lk.job_id";
|
|
10
|
+
export declare const ATTR_AGENT_NAME = "lk.agent_name";
|
|
11
|
+
export declare const ATTR_ROOM_NAME = "lk.room_name";
|
|
12
|
+
export declare const ATTR_SESSION_OPTIONS = "lk.session_options";
|
|
13
|
+
export declare const ATTR_USER_INPUT = "lk.user_input";
|
|
14
|
+
export declare const ATTR_INSTRUCTIONS = "lk.instructions";
|
|
15
|
+
export declare const ATTR_SPEECH_INTERRUPTED = "lk.interrupted";
|
|
16
|
+
export declare const ATTR_CHAT_CTX = "lk.chat_ctx";
|
|
17
|
+
export declare const ATTR_FUNCTION_TOOLS = "lk.function_tools";
|
|
18
|
+
export declare const ATTR_RESPONSE_TEXT = "lk.response.text";
|
|
19
|
+
export declare const ATTR_RESPONSE_FUNCTION_CALLS = "lk.response.function_calls";
|
|
20
|
+
export declare const ATTR_FUNCTION_TOOL_NAME = "lk.function_tool.name";
|
|
21
|
+
export declare const ATTR_FUNCTION_TOOL_ARGS = "lk.function_tool.arguments";
|
|
22
|
+
export declare const ATTR_FUNCTION_TOOL_IS_ERROR = "lk.function_tool.is_error";
|
|
23
|
+
export declare const ATTR_FUNCTION_TOOL_OUTPUT = "lk.function_tool.output";
|
|
24
|
+
export declare const ATTR_TTS_INPUT_TEXT = "lk.input_text";
|
|
25
|
+
export declare const ATTR_TTS_STREAMING = "lk.tts.streaming";
|
|
26
|
+
export declare const ATTR_TTS_LABEL = "lk.tts.label";
|
|
27
|
+
export declare const ATTR_EOU_PROBABILITY = "lk.eou.probability";
|
|
28
|
+
export declare const ATTR_EOU_UNLIKELY_THRESHOLD = "lk.eou.unlikely_threshold";
|
|
29
|
+
export declare const ATTR_EOU_DELAY = "lk.eou.endpointing_delay";
|
|
30
|
+
export declare const ATTR_EOU_LANGUAGE = "lk.eou.language";
|
|
31
|
+
export declare const ATTR_USER_TRANSCRIPT = "lk.user_transcript";
|
|
32
|
+
export declare const ATTR_TRANSCRIPT_CONFIDENCE = "lk.transcript_confidence";
|
|
33
|
+
export declare const ATTR_TRANSCRIPTION_DELAY = "lk.transcription_delay";
|
|
34
|
+
export declare const ATTR_END_OF_TURN_DELAY = "lk.end_of_turn_delay";
|
|
35
|
+
export declare const ATTR_LLM_METRICS = "lk.llm_metrics";
|
|
36
|
+
export declare const ATTR_TTS_METRICS = "lk.tts_metrics";
|
|
37
|
+
export declare const ATTR_REALTIME_MODEL_METRICS = "lk.realtime_model_metrics";
|
|
38
|
+
export declare const ATTR_GEN_AI_OPERATION_NAME = "gen_ai.operation.name";
|
|
39
|
+
export declare const ATTR_GEN_AI_REQUEST_MODEL = "gen_ai.request.model";
|
|
40
|
+
export declare const ATTR_GEN_AI_USAGE_INPUT_TOKENS = "gen_ai.usage.input_tokens";
|
|
41
|
+
export declare const ATTR_GEN_AI_USAGE_OUTPUT_TOKENS = "gen_ai.usage.output_tokens";
|
|
42
|
+
export declare const ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS = "gen_ai.usage.input_text_tokens";
|
|
43
|
+
export declare const ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS = "gen_ai.usage.input_audio_tokens";
|
|
44
|
+
export declare const ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS = "gen_ai.usage.input_cached_tokens";
|
|
45
|
+
export declare const ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS = "gen_ai.usage.output_text_tokens";
|
|
46
|
+
export declare const ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS = "gen_ai.usage.output_audio_tokens";
|
|
47
|
+
export declare const EVENT_GEN_AI_SYSTEM_MESSAGE = "gen_ai.system.message";
|
|
48
|
+
export declare const EVENT_GEN_AI_USER_MESSAGE = "gen_ai.user.message";
|
|
49
|
+
export declare const EVENT_GEN_AI_ASSISTANT_MESSAGE = "gen_ai.assistant.message";
|
|
50
|
+
export declare const EVENT_GEN_AI_TOOL_MESSAGE = "gen_ai.tool.message";
|
|
51
|
+
export declare const EVENT_GEN_AI_CHOICE = "gen_ai.choice";
|
|
52
|
+
export declare const ATTR_EXCEPTION_TRACE = "exception.stacktrace";
|
|
53
|
+
export declare const ATTR_EXCEPTION_TYPE = "exception.type";
|
|
54
|
+
export declare const ATTR_EXCEPTION_MESSAGE = "exception.message";
|
|
55
|
+
export declare const ATTR_LANGFUSE_COMPLETION_START_TIME = "langfuse.observation.completion_start_time";
|
|
56
|
+
//# sourceMappingURL=trace_types.d.ts.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare const ATTR_SPEECH_ID = "lk.speech_id";
|
|
2
|
+
export declare const ATTR_AGENT_LABEL = "lk.agent_label";
|
|
3
|
+
export declare const ATTR_START_TIME = "lk.start_time";
|
|
4
|
+
export declare const ATTR_END_TIME = "lk.end_time";
|
|
5
|
+
export declare const ATTR_RETRY_COUNT = "lk.retry_count";
|
|
6
|
+
export declare const ATTR_PARTICIPANT_ID = "lk.participant_id";
|
|
7
|
+
export declare const ATTR_PARTICIPANT_IDENTITY = "lk.participant_identity";
|
|
8
|
+
export declare const ATTR_PARTICIPANT_KIND = "lk.participant_kind";
|
|
9
|
+
export declare const ATTR_JOB_ID = "lk.job_id";
|
|
10
|
+
export declare const ATTR_AGENT_NAME = "lk.agent_name";
|
|
11
|
+
export declare const ATTR_ROOM_NAME = "lk.room_name";
|
|
12
|
+
export declare const ATTR_SESSION_OPTIONS = "lk.session_options";
|
|
13
|
+
export declare const ATTR_USER_INPUT = "lk.user_input";
|
|
14
|
+
export declare const ATTR_INSTRUCTIONS = "lk.instructions";
|
|
15
|
+
export declare const ATTR_SPEECH_INTERRUPTED = "lk.interrupted";
|
|
16
|
+
export declare const ATTR_CHAT_CTX = "lk.chat_ctx";
|
|
17
|
+
export declare const ATTR_FUNCTION_TOOLS = "lk.function_tools";
|
|
18
|
+
export declare const ATTR_RESPONSE_TEXT = "lk.response.text";
|
|
19
|
+
export declare const ATTR_RESPONSE_FUNCTION_CALLS = "lk.response.function_calls";
|
|
20
|
+
export declare const ATTR_FUNCTION_TOOL_NAME = "lk.function_tool.name";
|
|
21
|
+
export declare const ATTR_FUNCTION_TOOL_ARGS = "lk.function_tool.arguments";
|
|
22
|
+
export declare const ATTR_FUNCTION_TOOL_IS_ERROR = "lk.function_tool.is_error";
|
|
23
|
+
export declare const ATTR_FUNCTION_TOOL_OUTPUT = "lk.function_tool.output";
|
|
24
|
+
export declare const ATTR_TTS_INPUT_TEXT = "lk.input_text";
|
|
25
|
+
export declare const ATTR_TTS_STREAMING = "lk.tts.streaming";
|
|
26
|
+
export declare const ATTR_TTS_LABEL = "lk.tts.label";
|
|
27
|
+
export declare const ATTR_EOU_PROBABILITY = "lk.eou.probability";
|
|
28
|
+
export declare const ATTR_EOU_UNLIKELY_THRESHOLD = "lk.eou.unlikely_threshold";
|
|
29
|
+
export declare const ATTR_EOU_DELAY = "lk.eou.endpointing_delay";
|
|
30
|
+
export declare const ATTR_EOU_LANGUAGE = "lk.eou.language";
|
|
31
|
+
export declare const ATTR_USER_TRANSCRIPT = "lk.user_transcript";
|
|
32
|
+
export declare const ATTR_TRANSCRIPT_CONFIDENCE = "lk.transcript_confidence";
|
|
33
|
+
export declare const ATTR_TRANSCRIPTION_DELAY = "lk.transcription_delay";
|
|
34
|
+
export declare const ATTR_END_OF_TURN_DELAY = "lk.end_of_turn_delay";
|
|
35
|
+
export declare const ATTR_LLM_METRICS = "lk.llm_metrics";
|
|
36
|
+
export declare const ATTR_TTS_METRICS = "lk.tts_metrics";
|
|
37
|
+
export declare const ATTR_REALTIME_MODEL_METRICS = "lk.realtime_model_metrics";
|
|
38
|
+
export declare const ATTR_GEN_AI_OPERATION_NAME = "gen_ai.operation.name";
|
|
39
|
+
export declare const ATTR_GEN_AI_REQUEST_MODEL = "gen_ai.request.model";
|
|
40
|
+
export declare const ATTR_GEN_AI_USAGE_INPUT_TOKENS = "gen_ai.usage.input_tokens";
|
|
41
|
+
export declare const ATTR_GEN_AI_USAGE_OUTPUT_TOKENS = "gen_ai.usage.output_tokens";
|
|
42
|
+
export declare const ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENS = "gen_ai.usage.input_text_tokens";
|
|
43
|
+
export declare const ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENS = "gen_ai.usage.input_audio_tokens";
|
|
44
|
+
export declare const ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENS = "gen_ai.usage.input_cached_tokens";
|
|
45
|
+
export declare const ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENS = "gen_ai.usage.output_text_tokens";
|
|
46
|
+
export declare const ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENS = "gen_ai.usage.output_audio_tokens";
|
|
47
|
+
export declare const EVENT_GEN_AI_SYSTEM_MESSAGE = "gen_ai.system.message";
|
|
48
|
+
export declare const EVENT_GEN_AI_USER_MESSAGE = "gen_ai.user.message";
|
|
49
|
+
export declare const EVENT_GEN_AI_ASSISTANT_MESSAGE = "gen_ai.assistant.message";
|
|
50
|
+
export declare const EVENT_GEN_AI_TOOL_MESSAGE = "gen_ai.tool.message";
|
|
51
|
+
export declare const EVENT_GEN_AI_CHOICE = "gen_ai.choice";
|
|
52
|
+
export declare const ATTR_EXCEPTION_TRACE = "exception.stacktrace";
|
|
53
|
+
export declare const ATTR_EXCEPTION_TYPE = "exception.type";
|
|
54
|
+
export declare const ATTR_EXCEPTION_MESSAGE = "exception.message";
|
|
55
|
+
export declare const ATTR_LANGFUSE_COMPLETION_START_TIME = "langfuse.observation.completion_start_time";
|
|
56
|
+
//# sourceMappingURL=trace_types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace_types.d.ts","sourceRoot":"","sources":["../../src/telemetry/trace_types.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAC3C,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAG3D,eAAO,MAAM,WAAW,cAAc,CAAC;AACvC,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAC7C,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAGzD,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAGxD,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAC3C,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,4BAA4B,+BAA+B,CAAC;AAGzE,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AACvE,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAGnE,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AACrD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAG7C,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AACvE,eAAO,MAAM,cAAc,6BAA6B,CAAC;AACzD,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,0BAA0B,6BAA6B,CAAC;AACrE,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AACjE,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAG7D,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AAIvE,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAChE,eAAO,MAAM,8BAA8B,8BAA8B,CAAC;AAC1E,eAAO,MAAM,+BAA+B,+BAA+B,CAAC;AAK5E,eAAO,MAAM,mCAAmC,mCAAmC,CAAC;AACpF,eAAO,MAAM,oCAAoC,oCAAoC,CAAC;AACtF,eAAO,MAAM,qCAAqC,qCAAqC,CAAC;AACxF,eAAO,MAAM,oCAAoC,oCAAoC,CAAC;AACtF,eAAO,MAAM,qCAAqC,qCAAqC,CAAC;AAGxF,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAC/D,eAAO,MAAM,8BAA8B,6BAA6B,CAAC;AACzE,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAC/D,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAGnD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAG1D,eAAO,MAAM,mCAAmC,+CAA+C,CAAC"}
|