@proj-airi/trace-kit 0.0.0-stage → 0.15.2
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/LICENSE +21 -0
- package/README.md +102 -2
- package/dist/clock-CewQJzn8.d.mts +545 -0
- package/dist/clock-hjTPEs21.mjs +212 -0
- package/dist/collector/index.d.mts +207 -0
- package/dist/collector/index.mjs +601 -0
- package/dist/conventions-DLiC8rkL.mjs +285 -0
- package/dist/index-DV04qeax.d.mts +49 -0
- package/dist/index.d.mts +782 -0
- package/dist/index.mjs +6 -0
- package/dist/keys-DD_VE8Fk.mjs +34 -0
- package/dist/profiles/agent.d.mts +70 -0
- package/dist/profiles/agent.mjs +295 -0
- package/dist/profiles/voice.d.mts +128 -0
- package/dist/profiles/voice.mjs +669 -0
- package/dist/projections/index.d.mts +3 -0
- package/dist/projections/index.mjs +1 -0
- package/dist/semconv-BOVWnou1.d.mts +832 -0
- package/dist/semconv.d.mts +2 -0
- package/dist/semconv.mjs +832 -0
- package/dist/series-ring-CaKfvyWQ.mjs +118 -0
- package/dist/series-ring-DCb7czkl.d.mts +49 -0
- package/dist/sink-BoftsA-W.mjs +501 -0
- package/dist/testing/index.d.mts +79 -0
- package/dist/testing/index.mjs +880 -0
- package/dist/timeline-B4Vc6qQf.mjs +766 -0
- package/dist/types-Fp54Yi6b.d.mts +319 -0
- package/dist/views/index.d.mts +97 -0
- package/dist/views/index.mjs +219 -0
- package/package.json +71 -3
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { A as applyContentPolicy, B as definePipeline, C as ATTR_WARMUP, D as TraceEndReasons, E as TraceEdgeKinds, F as defineClock, G as definitionRecordsOf, H as defineProfile, I as defineEndReason, J as trackPath, K as localize, L as defineIdKey, M as percentile, N as scrubSecrets, O as TraceLinkRelations, P as defineAttribute, R as defineLink, S as ATTR_STREAM_START_FRAME, T as TRACE_CONVENTIONS_VERSION, U as defineScore, V as definePreset, W as defineTrack, _ as ATTR_REPLAY_INPUT, a as ATTR_DECISION_LATENCY_MS, b as ATTR_STREAM_END_FRAME, c as ATTR_DECISION_THRESHOLD, d as ATTR_MSG_KIND, f as ATTR_MSG_NAME, g as ATTR_PROVIDER_RESPONSE_ID, h as ATTR_PROVIDER_REQUEST_ID, i as ATTR_DECISION_CHOICES, j as conventionAttributes, k as aggregate, l as ATTR_DECISION_VERDICT, m as ATTR_PROVIDER_ITEM_ID, n as ATTR_CENSORED, o as ATTR_DECISION_P, p as ATTR_MSG_TO, q as matchTrackPath, r as ATTR_DECIDER, s as ATTR_DECISION_REASON, t as ATTR_AIRI_TOPIC_ID, u as ATTR_FALLBACK_INDEX, v as ATTR_RETRY_COUNT, w as ATTR_WORK_INTERRUPTIBLE, x as ATTR_STREAM_ID, y as ATTR_RULE, z as defineMetric } from "./conventions-DLiC8rkL.mjs";
|
|
2
|
+
import { ATTR_GEN_AI_AGENT_DESCRIPTION, ATTR_GEN_AI_AGENT_ID, ATTR_GEN_AI_AGENT_NAME, ATTR_GEN_AI_AGENT_VERSION, ATTR_GEN_AI_CONVERSATION_COMPACTED, ATTR_GEN_AI_CONVERSATION_ID, ATTR_GEN_AI_DATA_SOURCE_ID, ATTR_GEN_AI_EMBEDDINGS_DIMENSION_COUNT, ATTR_GEN_AI_EVALUATION_EXPLANATION, ATTR_GEN_AI_EVALUATION_NAME, ATTR_GEN_AI_EVALUATION_SCORE_LABEL, ATTR_GEN_AI_EVALUATION_SCORE_VALUE, ATTR_GEN_AI_INPUT_MESSAGES, ATTR_GEN_AI_INPUT_MESSAGES_REF, ATTR_GEN_AI_MAIN_AGENT_DESCRIPTION, ATTR_GEN_AI_MAIN_AGENT_ID, ATTR_GEN_AI_MAIN_AGENT_NAME, ATTR_GEN_AI_MEMORY_QUERY_TEXT, ATTR_GEN_AI_MEMORY_RECORDS, ATTR_GEN_AI_MEMORY_RECORD_COUNT, ATTR_GEN_AI_MEMORY_RECORD_ID, ATTR_GEN_AI_MEMORY_STORE_ID, ATTR_GEN_AI_OPERATION_NAME, ATTR_GEN_AI_OUTPUT_MESSAGES, ATTR_GEN_AI_OUTPUT_MESSAGES_REF, ATTR_GEN_AI_OUTPUT_TYPE, ATTR_GEN_AI_PROMPT_NAME, ATTR_GEN_AI_PROMPT_VARIABLE, ATTR_GEN_AI_PROMPT_VERSION, ATTR_GEN_AI_PROVIDER_NAME, ATTR_GEN_AI_REALTIME_SESSION_ID, ATTR_GEN_AI_REQUEST_CHOICE_COUNT, ATTR_GEN_AI_REQUEST_ENCODING_FORMATS, ATTR_GEN_AI_REQUEST_FREQUENCY_PENALTY, ATTR_GEN_AI_REQUEST_MAX_TOKENS, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_REQUEST_PRESENCE_PENALTY, ATTR_GEN_AI_REQUEST_PREVIOUS_RESPONSE_ID, ATTR_GEN_AI_REQUEST_REASONING_LEVEL, ATTR_GEN_AI_REQUEST_SEED, ATTR_GEN_AI_REQUEST_STOP_SEQUENCES, ATTR_GEN_AI_REQUEST_STREAM, ATTR_GEN_AI_REQUEST_STREAM_CURSOR, ATTR_GEN_AI_REQUEST_TEMPERATURE, ATTR_GEN_AI_REQUEST_TOP_K, ATTR_GEN_AI_REQUEST_TOP_P, ATTR_GEN_AI_RESPONSE_FINISH_REASONS, ATTR_GEN_AI_RESPONSE_ID, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_RESPONSE_STATUS, ATTR_GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK, ATTR_GEN_AI_RETRIEVAL_DOCUMENTS, ATTR_GEN_AI_RETRIEVAL_QUERY_TEXT, ATTR_GEN_AI_RETRIEVAL_TOP_K, ATTR_GEN_AI_SKILL_DESCRIPTION, ATTR_GEN_AI_SKILL_NAME, ATTR_GEN_AI_SKILL_RESOURCE_NAME, ATTR_GEN_AI_SKILL_SOURCE_URI, ATTR_GEN_AI_SYSTEM_INSTRUCTIONS, ATTR_GEN_AI_SYSTEM_INSTRUCTIONS_REF, ATTR_GEN_AI_TOKEN_MODALITY, ATTR_GEN_AI_TOOL_CALL_ARGUMENTS, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_CALL_RESULT, ATTR_GEN_AI_TOOL_DEFINITIONS, ATTR_GEN_AI_TOOL_DEFINITIONS_REF, ATTR_GEN_AI_TOOL_DESCRIPTION, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_TOOL_TYPE, ATTR_GEN_AI_TRANSFER_MODE, ATTR_GEN_AI_TRANSFER_TARGET_NAME, ATTR_GEN_AI_USAGE_AUDIO_CACHE_READ_INPUT_TOKENS, ATTR_GEN_AI_USAGE_AUDIO_INPUT_TOKENS, ATTR_GEN_AI_USAGE_AUDIO_OUTPUT_TOKENS, ATTR_GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, ATTR_GEN_AI_USAGE_CACHE_WRITE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_IMAGE_CACHE_READ_INPUT_TOKENS, ATTR_GEN_AI_USAGE_IMAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_IMAGE_OUTPUT_TOKENS, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, ATTR_GEN_AI_USAGE_REASONING_OUTPUT_TOKENS, ATTR_GEN_AI_USAGE_TEXT_CACHE_READ_INPUT_TOKENS, ATTR_GEN_AI_USAGE_TEXT_INPUT_TOKENS, ATTR_GEN_AI_USAGE_TEXT_OUTPUT_TOKENS, GEN_AI_OPERATION_NAME_VALUE_CHAT, GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT, GEN_AI_OPERATION_NAME_VALUE_CREATE_MEMORY, GEN_AI_OPERATION_NAME_VALUE_CREATE_MEMORY_STORE, GEN_AI_OPERATION_NAME_VALUE_DELETE_MEMORY, GEN_AI_OPERATION_NAME_VALUE_DELETE_MEMORY_STORE, GEN_AI_OPERATION_NAME_VALUE_EMBEDDINGS, GEN_AI_OPERATION_NAME_VALUE_EXECUTE_TOOL, GEN_AI_OPERATION_NAME_VALUE_FETCH_RESPONSE, GEN_AI_OPERATION_NAME_VALUE_GENERATE_CONTENT, GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT, GEN_AI_OPERATION_NAME_VALUE_INVOKE_RUNNER, GEN_AI_OPERATION_NAME_VALUE_INVOKE_WORKFLOW, GEN_AI_OPERATION_NAME_VALUE_PLAN, GEN_AI_OPERATION_NAME_VALUE_REALTIME_INFERENCE, GEN_AI_OPERATION_NAME_VALUE_RETRIEVAL, GEN_AI_OPERATION_NAME_VALUE_SEARCH_MEMORY, GEN_AI_OPERATION_NAME_VALUE_TEXT_COMPLETION, GEN_AI_OPERATION_NAME_VALUE_UPDATE_MEMORY, GEN_AI_OPERATION_NAME_VALUE_UPSERT_MEMORY, GEN_AI_OPERATION_NAME_VALUE_USER_SPEECH, GEN_AI_OUTPUT_TYPE_VALUE_IMAGE, GEN_AI_OUTPUT_TYPE_VALUE_JSON, GEN_AI_OUTPUT_TYPE_VALUE_SPEECH, GEN_AI_OUTPUT_TYPE_VALUE_TEXT, GEN_AI_PROVIDER_NAME_VALUE_ANTHROPIC, GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK, GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_INFERENCE, GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_OPENAI, GEN_AI_PROVIDER_NAME_VALUE_COHERE, GEN_AI_PROVIDER_NAME_VALUE_DEEPSEEK, GEN_AI_PROVIDER_NAME_VALUE_GCP_GEMINI, GEN_AI_PROVIDER_NAME_VALUE_GCP_GEN_AI, GEN_AI_PROVIDER_NAME_VALUE_GCP_VERTEX_AI, GEN_AI_PROVIDER_NAME_VALUE_GROQ, GEN_AI_PROVIDER_NAME_VALUE_IBM_WATSONX_AI, GEN_AI_PROVIDER_NAME_VALUE_MISTRAL, GEN_AI_PROVIDER_NAME_VALUE_MOONSHOT_AI, GEN_AI_PROVIDER_NAME_VALUE_OLLAMA, GEN_AI_PROVIDER_NAME_VALUE_OPENAI, GEN_AI_PROVIDER_NAME_VALUE_PERPLEXITY, GEN_AI_PROVIDER_NAME_VALUE_X_AI, GEN_AI_RESPONSE_STATUS_VALUE_CANCELLED, GEN_AI_RESPONSE_STATUS_VALUE_COMPLETED, GEN_AI_RESPONSE_STATUS_VALUE_FAILED, GEN_AI_RESPONSE_STATUS_VALUE_INCOMPLETE, GEN_AI_RESPONSE_STATUS_VALUE_IN_PROGRESS, GEN_AI_RESPONSE_STATUS_VALUE_QUEUED, GEN_AI_TOKEN_MODALITY_VALUE_AUDIO, GEN_AI_TOKEN_MODALITY_VALUE_IMAGE, GEN_AI_TOKEN_MODALITY_VALUE_TEXT, GEN_AI_TOKEN_MODALITY_VALUE_UNKNOWN, GEN_AI_TRANSFER_MODE_VALUE_PASS_CONTROL, GEN_AI_TRANSFER_MODE_VALUE_RETURN_TO_CALLER, METRIC_GEN_AI_CLIENT_EMBEDDINGS_DURATION, METRIC_GEN_AI_CLIENT_EMBEDDINGS_OPERATION_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_DURATION, METRIC_GEN_AI_CLIENT_INFERENCE_OPERATION_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_OPERATION_OUTPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_TIME_PER_OUTPUT_CHUNK, METRIC_GEN_AI_CLIENT_INFERENCE_TIME_TO_FIRST_CHUNK, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_CACHE_READ_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_CACHE_WRITE_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_OUTPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_REASONING_OUTPUT_TOKENS, METRIC_GEN_AI_CLIENT_INVOKE_AGENT_DURATION, METRIC_GEN_AI_CLIENT_OPERATION_DURATION, METRIC_GEN_AI_EXECUTE_TOOL_DURATION, METRIC_GEN_AI_INVOKE_AGENT_DURATION, METRIC_GEN_AI_INVOKE_AGENT_INFERENCE_CALLS, METRIC_GEN_AI_INVOKE_AGENT_TOOL_CALLS, METRIC_GEN_AI_RETRIEVAL_DURATION, METRIC_GEN_AI_SERVER_REQUEST_DURATION, METRIC_GEN_AI_SERVER_TIME_PER_OUTPUT_TOKEN, METRIC_GEN_AI_SERVER_TIME_TO_FIRST_TOKEN, SEMCONV_GENAI_COMMIT } from "./semconv.mjs";
|
|
3
|
+
import { n as measureClockOffset, t as ClockGraph } from "./clock-hjTPEs21.mjs";
|
|
4
|
+
import { i as streamClockOf, n as recordKey, r as spanKeyOf, t as epochKeyOf } from "./keys-DD_VE8Fk.mjs";
|
|
5
|
+
import { a as createSpanId, c as MAX_CHUNK_POINTS, d as isSystemRecord, f as isTrackedRecord, i as beginSpan, l as traceRecordSchema, n as TraceSource, o as fanOutTraceSink, r as TraceSpan, s as noopTraceSink, t as SeriesWriter, u as TRACE_FORMAT } from "./sink-BoftsA-W.mjs";
|
|
6
|
+
export { ATTR_AIRI_TOPIC_ID, ATTR_CENSORED, ATTR_DECIDER, ATTR_DECISION_CHOICES, ATTR_DECISION_LATENCY_MS, ATTR_DECISION_P, ATTR_DECISION_REASON, ATTR_DECISION_THRESHOLD, ATTR_DECISION_VERDICT, ATTR_FALLBACK_INDEX, ATTR_GEN_AI_AGENT_DESCRIPTION, ATTR_GEN_AI_AGENT_ID, ATTR_GEN_AI_AGENT_NAME, ATTR_GEN_AI_AGENT_VERSION, ATTR_GEN_AI_CONVERSATION_COMPACTED, ATTR_GEN_AI_CONVERSATION_ID, ATTR_GEN_AI_DATA_SOURCE_ID, ATTR_GEN_AI_EMBEDDINGS_DIMENSION_COUNT, ATTR_GEN_AI_EVALUATION_EXPLANATION, ATTR_GEN_AI_EVALUATION_NAME, ATTR_GEN_AI_EVALUATION_SCORE_LABEL, ATTR_GEN_AI_EVALUATION_SCORE_VALUE, ATTR_GEN_AI_INPUT_MESSAGES, ATTR_GEN_AI_INPUT_MESSAGES_REF, ATTR_GEN_AI_MAIN_AGENT_DESCRIPTION, ATTR_GEN_AI_MAIN_AGENT_ID, ATTR_GEN_AI_MAIN_AGENT_NAME, ATTR_GEN_AI_MEMORY_QUERY_TEXT, ATTR_GEN_AI_MEMORY_RECORDS, ATTR_GEN_AI_MEMORY_RECORD_COUNT, ATTR_GEN_AI_MEMORY_RECORD_ID, ATTR_GEN_AI_MEMORY_STORE_ID, ATTR_GEN_AI_OPERATION_NAME, ATTR_GEN_AI_OUTPUT_MESSAGES, ATTR_GEN_AI_OUTPUT_MESSAGES_REF, ATTR_GEN_AI_OUTPUT_TYPE, ATTR_GEN_AI_PROMPT_NAME, ATTR_GEN_AI_PROMPT_VARIABLE, ATTR_GEN_AI_PROMPT_VERSION, ATTR_GEN_AI_PROVIDER_NAME, ATTR_GEN_AI_REALTIME_SESSION_ID, ATTR_GEN_AI_REQUEST_CHOICE_COUNT, ATTR_GEN_AI_REQUEST_ENCODING_FORMATS, ATTR_GEN_AI_REQUEST_FREQUENCY_PENALTY, ATTR_GEN_AI_REQUEST_MAX_TOKENS, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_REQUEST_PRESENCE_PENALTY, ATTR_GEN_AI_REQUEST_PREVIOUS_RESPONSE_ID, ATTR_GEN_AI_REQUEST_REASONING_LEVEL, ATTR_GEN_AI_REQUEST_SEED, ATTR_GEN_AI_REQUEST_STOP_SEQUENCES, ATTR_GEN_AI_REQUEST_STREAM, ATTR_GEN_AI_REQUEST_STREAM_CURSOR, ATTR_GEN_AI_REQUEST_TEMPERATURE, ATTR_GEN_AI_REQUEST_TOP_K, ATTR_GEN_AI_REQUEST_TOP_P, ATTR_GEN_AI_RESPONSE_FINISH_REASONS, ATTR_GEN_AI_RESPONSE_ID, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_RESPONSE_STATUS, ATTR_GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK, ATTR_GEN_AI_RETRIEVAL_DOCUMENTS, ATTR_GEN_AI_RETRIEVAL_QUERY_TEXT, ATTR_GEN_AI_RETRIEVAL_TOP_K, ATTR_GEN_AI_SKILL_DESCRIPTION, ATTR_GEN_AI_SKILL_NAME, ATTR_GEN_AI_SKILL_RESOURCE_NAME, ATTR_GEN_AI_SKILL_SOURCE_URI, ATTR_GEN_AI_SYSTEM_INSTRUCTIONS, ATTR_GEN_AI_SYSTEM_INSTRUCTIONS_REF, ATTR_GEN_AI_TOKEN_MODALITY, ATTR_GEN_AI_TOOL_CALL_ARGUMENTS, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_CALL_RESULT, ATTR_GEN_AI_TOOL_DEFINITIONS, ATTR_GEN_AI_TOOL_DEFINITIONS_REF, ATTR_GEN_AI_TOOL_DESCRIPTION, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_TOOL_TYPE, ATTR_GEN_AI_TRANSFER_MODE, ATTR_GEN_AI_TRANSFER_TARGET_NAME, ATTR_GEN_AI_USAGE_AUDIO_CACHE_READ_INPUT_TOKENS, ATTR_GEN_AI_USAGE_AUDIO_INPUT_TOKENS, ATTR_GEN_AI_USAGE_AUDIO_OUTPUT_TOKENS, ATTR_GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, ATTR_GEN_AI_USAGE_CACHE_WRITE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_IMAGE_CACHE_READ_INPUT_TOKENS, ATTR_GEN_AI_USAGE_IMAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_IMAGE_OUTPUT_TOKENS, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, ATTR_GEN_AI_USAGE_REASONING_OUTPUT_TOKENS, ATTR_GEN_AI_USAGE_TEXT_CACHE_READ_INPUT_TOKENS, ATTR_GEN_AI_USAGE_TEXT_INPUT_TOKENS, ATTR_GEN_AI_USAGE_TEXT_OUTPUT_TOKENS, ATTR_MSG_KIND, ATTR_MSG_NAME, ATTR_MSG_TO, ATTR_PROVIDER_ITEM_ID, ATTR_PROVIDER_REQUEST_ID, ATTR_PROVIDER_RESPONSE_ID, ATTR_REPLAY_INPUT, ATTR_RETRY_COUNT, ATTR_RULE, ATTR_STREAM_END_FRAME, ATTR_STREAM_ID, ATTR_STREAM_START_FRAME, ATTR_WARMUP, ATTR_WORK_INTERRUPTIBLE, ClockGraph, GEN_AI_OPERATION_NAME_VALUE_CHAT, GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT, GEN_AI_OPERATION_NAME_VALUE_CREATE_MEMORY, GEN_AI_OPERATION_NAME_VALUE_CREATE_MEMORY_STORE, GEN_AI_OPERATION_NAME_VALUE_DELETE_MEMORY, GEN_AI_OPERATION_NAME_VALUE_DELETE_MEMORY_STORE, GEN_AI_OPERATION_NAME_VALUE_EMBEDDINGS, GEN_AI_OPERATION_NAME_VALUE_EXECUTE_TOOL, GEN_AI_OPERATION_NAME_VALUE_FETCH_RESPONSE, GEN_AI_OPERATION_NAME_VALUE_GENERATE_CONTENT, GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT, GEN_AI_OPERATION_NAME_VALUE_INVOKE_RUNNER, GEN_AI_OPERATION_NAME_VALUE_INVOKE_WORKFLOW, GEN_AI_OPERATION_NAME_VALUE_PLAN, GEN_AI_OPERATION_NAME_VALUE_REALTIME_INFERENCE, GEN_AI_OPERATION_NAME_VALUE_RETRIEVAL, GEN_AI_OPERATION_NAME_VALUE_SEARCH_MEMORY, GEN_AI_OPERATION_NAME_VALUE_TEXT_COMPLETION, GEN_AI_OPERATION_NAME_VALUE_UPDATE_MEMORY, GEN_AI_OPERATION_NAME_VALUE_UPSERT_MEMORY, GEN_AI_OPERATION_NAME_VALUE_USER_SPEECH, GEN_AI_OUTPUT_TYPE_VALUE_IMAGE, GEN_AI_OUTPUT_TYPE_VALUE_JSON, GEN_AI_OUTPUT_TYPE_VALUE_SPEECH, GEN_AI_OUTPUT_TYPE_VALUE_TEXT, GEN_AI_PROVIDER_NAME_VALUE_ANTHROPIC, GEN_AI_PROVIDER_NAME_VALUE_AWS_BEDROCK, GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_INFERENCE, GEN_AI_PROVIDER_NAME_VALUE_AZURE_AI_OPENAI, GEN_AI_PROVIDER_NAME_VALUE_COHERE, GEN_AI_PROVIDER_NAME_VALUE_DEEPSEEK, GEN_AI_PROVIDER_NAME_VALUE_GCP_GEMINI, GEN_AI_PROVIDER_NAME_VALUE_GCP_GEN_AI, GEN_AI_PROVIDER_NAME_VALUE_GCP_VERTEX_AI, GEN_AI_PROVIDER_NAME_VALUE_GROQ, GEN_AI_PROVIDER_NAME_VALUE_IBM_WATSONX_AI, GEN_AI_PROVIDER_NAME_VALUE_MISTRAL, GEN_AI_PROVIDER_NAME_VALUE_MOONSHOT_AI, GEN_AI_PROVIDER_NAME_VALUE_OLLAMA, GEN_AI_PROVIDER_NAME_VALUE_OPENAI, GEN_AI_PROVIDER_NAME_VALUE_PERPLEXITY, GEN_AI_PROVIDER_NAME_VALUE_X_AI, GEN_AI_RESPONSE_STATUS_VALUE_CANCELLED, GEN_AI_RESPONSE_STATUS_VALUE_COMPLETED, GEN_AI_RESPONSE_STATUS_VALUE_FAILED, GEN_AI_RESPONSE_STATUS_VALUE_INCOMPLETE, GEN_AI_RESPONSE_STATUS_VALUE_IN_PROGRESS, GEN_AI_RESPONSE_STATUS_VALUE_QUEUED, GEN_AI_TOKEN_MODALITY_VALUE_AUDIO, GEN_AI_TOKEN_MODALITY_VALUE_IMAGE, GEN_AI_TOKEN_MODALITY_VALUE_TEXT, GEN_AI_TOKEN_MODALITY_VALUE_UNKNOWN, GEN_AI_TRANSFER_MODE_VALUE_PASS_CONTROL, GEN_AI_TRANSFER_MODE_VALUE_RETURN_TO_CALLER, MAX_CHUNK_POINTS, METRIC_GEN_AI_CLIENT_EMBEDDINGS_DURATION, METRIC_GEN_AI_CLIENT_EMBEDDINGS_OPERATION_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_DURATION, METRIC_GEN_AI_CLIENT_INFERENCE_OPERATION_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_OPERATION_OUTPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_TIME_PER_OUTPUT_CHUNK, METRIC_GEN_AI_CLIENT_INFERENCE_TIME_TO_FIRST_CHUNK, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_CACHE_READ_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_CACHE_WRITE_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_INPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_OUTPUT_TOKENS, METRIC_GEN_AI_CLIENT_INFERENCE_USAGE_REASONING_OUTPUT_TOKENS, METRIC_GEN_AI_CLIENT_INVOKE_AGENT_DURATION, METRIC_GEN_AI_CLIENT_OPERATION_DURATION, METRIC_GEN_AI_EXECUTE_TOOL_DURATION, METRIC_GEN_AI_INVOKE_AGENT_DURATION, METRIC_GEN_AI_INVOKE_AGENT_INFERENCE_CALLS, METRIC_GEN_AI_INVOKE_AGENT_TOOL_CALLS, METRIC_GEN_AI_RETRIEVAL_DURATION, METRIC_GEN_AI_SERVER_REQUEST_DURATION, METRIC_GEN_AI_SERVER_TIME_PER_OUTPUT_TOKEN, METRIC_GEN_AI_SERVER_TIME_TO_FIRST_TOKEN, SEMCONV_GENAI_COMMIT, SeriesWriter, TRACE_CONVENTIONS_VERSION, TRACE_FORMAT, TraceEdgeKinds, TraceEndReasons, TraceLinkRelations, TraceSource, TraceSpan, aggregate, applyContentPolicy, beginSpan, conventionAttributes, createSpanId, defineAttribute, defineClock, defineEndReason, defineIdKey, defineLink, defineMetric, definePipeline, definePreset, defineProfile, defineScore, defineTrack, definitionRecordsOf, epochKeyOf, fanOutTraceSink, isSystemRecord, isTrackedRecord, localize, matchTrackPath, measureClockOffset, noopTraceSink, percentile, recordKey, scrubSecrets, spanKeyOf, streamClockOf, traceRecordSchema, trackPath };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//#region src/core/keys.ts
|
|
2
|
+
/**
|
|
3
|
+
* Key of one epoch of a source: `source/epoch`. The cursor of `caughtUp` uses it. A source and an epoch do not
|
|
4
|
+
* contain `/`, so the key is unambiguous.
|
|
5
|
+
*/
|
|
6
|
+
function epochKeyOf(source, epoch) {
|
|
7
|
+
return `${source}/${epoch}`;
|
|
8
|
+
}
|
|
9
|
+
/** Stable key of a record: `source/epoch/seq`. */
|
|
10
|
+
function recordKey(ref) {
|
|
11
|
+
return `${ref.source}/${ref.epoch}/${ref.seq}`;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Stable key of a span: `source/epoch/spanId`. A span ID is unique only inside one epoch of one source.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* spanKeyOf('window:main', 'e1', 'llm-1')
|
|
18
|
+
* // => 'window:main/e1/llm-1'
|
|
19
|
+
*/
|
|
20
|
+
function spanKeyOf(source, epoch, spanId) {
|
|
21
|
+
return `${source}/${epoch}/${spanId}`;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The clock of a media stream. Its values are frame positions, and its snapshots pair them with a monotonic clock.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* streamClockOf('capture:mic')
|
|
28
|
+
* // => 'audio:capture:mic'
|
|
29
|
+
*/
|
|
30
|
+
function streamClockOf(streamId) {
|
|
31
|
+
return `audio:${streamId}`;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { streamClockOf as i, recordKey as n, spanKeyOf as r, epochKeyOf as t };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { x as TraceProfileDefinition } from "../clock-CewQJzn8.mjs";
|
|
2
|
+
//#region src/profiles/agent.d.ts
|
|
3
|
+
/** Track path patterns of the agent profile. Fill them with `trackPath`. */
|
|
4
|
+
declare const AgentTracks: {
|
|
5
|
+
readonly State: "agents/{agent}/state";
|
|
6
|
+
readonly Turn: "agents/{agent}/turn";
|
|
7
|
+
readonly LLM: "agents/{agent}/llm";
|
|
8
|
+
readonly Tools: "agents/{agent}/tools";
|
|
9
|
+
readonly Control: "agents/{agent}/control";
|
|
10
|
+
readonly Decision: "background/decision";
|
|
11
|
+
readonly Memory: "background/memory";
|
|
12
|
+
};
|
|
13
|
+
declare const AgentIdKeys: {
|
|
14
|
+
readonly Topic: "topic";
|
|
15
|
+
readonly Round: "round";
|
|
16
|
+
readonly Request: "request";
|
|
17
|
+
readonly Message: "message";
|
|
18
|
+
readonly ToolCall: "toolCall";
|
|
19
|
+
readonly ToolGroup: "toolGroup";
|
|
20
|
+
readonly Intent: "intent";
|
|
21
|
+
readonly Decision: "decision";
|
|
22
|
+
readonly Job: "job";
|
|
23
|
+
readonly Agent: "agent";
|
|
24
|
+
readonly Run: "run";
|
|
25
|
+
/** The chat domain `causation.rootId`. */
|
|
26
|
+
readonly CausationRoot: "causationRoot";
|
|
27
|
+
/** The chat domain `causation.chainId`. */
|
|
28
|
+
readonly CausationChain: "causationChain";
|
|
29
|
+
};
|
|
30
|
+
/** Span and instant names. Instants use `<object>.<past-tense verb>`. */
|
|
31
|
+
declare const AgentNames: {
|
|
32
|
+
readonly ChatTurn: "chat-turn";
|
|
33
|
+
readonly ModelRequest: "chat";
|
|
34
|
+
readonly ToolCall: "execute_tool";
|
|
35
|
+
readonly ControlDispatch: "control.dispatch";
|
|
36
|
+
readonly LLMFirstChunk: "llm.first_chunk";
|
|
37
|
+
readonly LLMFirstAnswer: "llm.first_answer";
|
|
38
|
+
readonly AgentHandedOff: "agent.handed_off";
|
|
39
|
+
readonly IntentEmitted: "intent.emitted";
|
|
40
|
+
readonly ControlParsed: "control.parsed";
|
|
41
|
+
readonly ControlRejected: "control.rejected";
|
|
42
|
+
readonly ControlHandlerStarted: "control.handler_started";
|
|
43
|
+
readonly ControlHandlerEnded: "control.handler_ended";
|
|
44
|
+
readonly ControlHandlerFailed: "control.handler_failed";
|
|
45
|
+
};
|
|
46
|
+
declare const AgentAttributes: {
|
|
47
|
+
readonly LLMTtftMs: "llm.ttft_ms";
|
|
48
|
+
readonly LLMTtfatMs: "llm.ttfat_ms";
|
|
49
|
+
readonly LLMInputMessageCount: "llm.input_message_count";
|
|
50
|
+
readonly LLMInputMessageRoles: "llm.input_message_roles";
|
|
51
|
+
readonly LLMInputUserMessageCount: "llm.input_user_message_count";
|
|
52
|
+
readonly LLMOutputChunkCount: "llm.output_chunk_count";
|
|
53
|
+
readonly LLMOutputChunkLengths: "llm.output_chunk_lengths";
|
|
54
|
+
readonly LLMTextLength: "llm.text_length";
|
|
55
|
+
/** The text of the user input of a chat turn. */
|
|
56
|
+
readonly TurnInputText: "turn.input_text";
|
|
57
|
+
readonly ControlCallName: "control.call_name";
|
|
58
|
+
readonly ControlHandlerCount: "control.handler_count";
|
|
59
|
+
readonly ControlMatched: "control.matched";
|
|
60
|
+
readonly ControlParameter: "control.parameter";
|
|
61
|
+
readonly ControlParsed: "control.parsed";
|
|
62
|
+
readonly ControlParserName: "control.parser_name";
|
|
63
|
+
readonly ControlReason: "control.reason";
|
|
64
|
+
readonly ControlRawToken: "control.raw_token";
|
|
65
|
+
readonly ControlTokenLength: "control.token_length";
|
|
66
|
+
readonly ControlTokenType: "control.token_type";
|
|
67
|
+
};
|
|
68
|
+
declare const agentProfile: TraceProfileDefinition;
|
|
69
|
+
//#endregion
|
|
70
|
+
export { AgentAttributes, AgentIdKeys, AgentNames, AgentTracks, agentProfile };
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { H as defineProfile, I as defineEndReason, L as defineIdKey, P as defineAttribute, R as defineLink, V as definePreset, W as defineTrack, t as ATTR_AIRI_TOPIC_ID, z as defineMetric } from "../conventions-DLiC8rkL.mjs";
|
|
2
|
+
//#region src/profiles/agent.ts
|
|
3
|
+
/** Track path patterns of the agent profile. Fill them with `trackPath`. */
|
|
4
|
+
const AgentTracks = {
|
|
5
|
+
State: "agents/{agent}/state",
|
|
6
|
+
Turn: "agents/{agent}/turn",
|
|
7
|
+
LLM: "agents/{agent}/llm",
|
|
8
|
+
Tools: "agents/{agent}/tools",
|
|
9
|
+
Control: "agents/{agent}/control",
|
|
10
|
+
Decision: "background/decision",
|
|
11
|
+
Memory: "background/memory"
|
|
12
|
+
};
|
|
13
|
+
const AgentIdKeys = {
|
|
14
|
+
Topic: "topic",
|
|
15
|
+
Round: "round",
|
|
16
|
+
Request: "request",
|
|
17
|
+
Message: "message",
|
|
18
|
+
ToolCall: "toolCall",
|
|
19
|
+
ToolGroup: "toolGroup",
|
|
20
|
+
Intent: "intent",
|
|
21
|
+
Decision: "decision",
|
|
22
|
+
Job: "job",
|
|
23
|
+
Agent: "agent",
|
|
24
|
+
Run: "run",
|
|
25
|
+
/** The chat domain `causation.rootId`. */
|
|
26
|
+
CausationRoot: "causationRoot",
|
|
27
|
+
/** The chat domain `causation.chainId`. */
|
|
28
|
+
CausationChain: "causationChain"
|
|
29
|
+
};
|
|
30
|
+
/** Span and instant names. Instants use `<object>.<past-tense verb>`. */
|
|
31
|
+
const AgentNames = {
|
|
32
|
+
ChatTurn: "chat-turn",
|
|
33
|
+
ModelRequest: "chat",
|
|
34
|
+
ToolCall: "execute_tool",
|
|
35
|
+
ControlDispatch: "control.dispatch",
|
|
36
|
+
LLMFirstChunk: "llm.first_chunk",
|
|
37
|
+
LLMFirstAnswer: "llm.first_answer",
|
|
38
|
+
AgentHandedOff: "agent.handed_off",
|
|
39
|
+
IntentEmitted: "intent.emitted",
|
|
40
|
+
ControlParsed: "control.parsed",
|
|
41
|
+
ControlRejected: "control.rejected",
|
|
42
|
+
ControlHandlerStarted: "control.handler_started",
|
|
43
|
+
ControlHandlerEnded: "control.handler_ended",
|
|
44
|
+
ControlHandlerFailed: "control.handler_failed"
|
|
45
|
+
};
|
|
46
|
+
const AgentAttributes = {
|
|
47
|
+
LLMTtftMs: "llm.ttft_ms",
|
|
48
|
+
LLMTtfatMs: "llm.ttfat_ms",
|
|
49
|
+
LLMInputMessageCount: "llm.input_message_count",
|
|
50
|
+
LLMInputMessageRoles: "llm.input_message_roles",
|
|
51
|
+
LLMInputUserMessageCount: "llm.input_user_message_count",
|
|
52
|
+
LLMOutputChunkCount: "llm.output_chunk_count",
|
|
53
|
+
LLMOutputChunkLengths: "llm.output_chunk_lengths",
|
|
54
|
+
LLMTextLength: "llm.text_length",
|
|
55
|
+
/** The text of the user input of a chat turn. */
|
|
56
|
+
TurnInputText: "turn.input_text",
|
|
57
|
+
ControlCallName: "control.call_name",
|
|
58
|
+
ControlHandlerCount: "control.handler_count",
|
|
59
|
+
ControlMatched: "control.matched",
|
|
60
|
+
ControlParameter: "control.parameter",
|
|
61
|
+
ControlParsed: "control.parsed",
|
|
62
|
+
ControlParserName: "control.parser_name",
|
|
63
|
+
ControlReason: "control.reason",
|
|
64
|
+
ControlRawToken: "control.raw_token",
|
|
65
|
+
ControlTokenLength: "control.token_length",
|
|
66
|
+
ControlTokenType: "control.token_type"
|
|
67
|
+
};
|
|
68
|
+
const agentProfile = defineProfile({
|
|
69
|
+
key: "agent",
|
|
70
|
+
version: "1",
|
|
71
|
+
label: {
|
|
72
|
+
"en": "Agent",
|
|
73
|
+
"zh-Hans": "智能体"
|
|
74
|
+
},
|
|
75
|
+
description: {
|
|
76
|
+
"en": "Chat turns, model requests, tools, sub-agents, and async work such as memory decisions.",
|
|
77
|
+
"zh-Hans": "聊天轮次、模型请求、工具、子智能体,以及记忆决策这类异步工作。"
|
|
78
|
+
},
|
|
79
|
+
tracks: [
|
|
80
|
+
defineTrack({
|
|
81
|
+
path: AgentTracks.State,
|
|
82
|
+
entity: "agent",
|
|
83
|
+
group: "agents",
|
|
84
|
+
order: 0,
|
|
85
|
+
render: ["state"],
|
|
86
|
+
states: [
|
|
87
|
+
"running",
|
|
88
|
+
"paused",
|
|
89
|
+
"waiting",
|
|
90
|
+
"done"
|
|
91
|
+
],
|
|
92
|
+
label: {
|
|
93
|
+
"en": "State",
|
|
94
|
+
"zh-Hans": "状态"
|
|
95
|
+
}
|
|
96
|
+
}),
|
|
97
|
+
defineTrack({
|
|
98
|
+
path: AgentTracks.Turn,
|
|
99
|
+
entity: "agent",
|
|
100
|
+
activity: "waiting",
|
|
101
|
+
group: "agents",
|
|
102
|
+
order: 10,
|
|
103
|
+
render: ["spans"],
|
|
104
|
+
color: "#64748b",
|
|
105
|
+
icon: "i-mingcute:chat-2-line",
|
|
106
|
+
label: {
|
|
107
|
+
"en": "Chat turn",
|
|
108
|
+
"zh-Hans": "聊天轮次"
|
|
109
|
+
}
|
|
110
|
+
}),
|
|
111
|
+
defineTrack({
|
|
112
|
+
path: AgentTracks.LLM,
|
|
113
|
+
entity: "agent",
|
|
114
|
+
activity: "thinking",
|
|
115
|
+
activitySplit: {
|
|
116
|
+
instant: "llm.first_chunk",
|
|
117
|
+
activity: "active"
|
|
118
|
+
},
|
|
119
|
+
group: "agents",
|
|
120
|
+
order: 20,
|
|
121
|
+
render: ["spans", "instants"],
|
|
122
|
+
color: "#a855f7",
|
|
123
|
+
icon: "i-mingcute:ai-line",
|
|
124
|
+
label: {
|
|
125
|
+
"en": "Model",
|
|
126
|
+
"zh-Hans": "模型"
|
|
127
|
+
}
|
|
128
|
+
}),
|
|
129
|
+
defineTrack({
|
|
130
|
+
path: AgentTracks.Tools,
|
|
131
|
+
entity: "agent",
|
|
132
|
+
activity: "active",
|
|
133
|
+
itemLabel: "name",
|
|
134
|
+
group: "agents",
|
|
135
|
+
order: 30,
|
|
136
|
+
render: ["spans"],
|
|
137
|
+
color: "#0ea5e9",
|
|
138
|
+
icon: "i-mingcute:tool-line",
|
|
139
|
+
label: {
|
|
140
|
+
"en": "Tools",
|
|
141
|
+
"zh-Hans": "工具"
|
|
142
|
+
}
|
|
143
|
+
}),
|
|
144
|
+
defineTrack({
|
|
145
|
+
path: AgentTracks.Control,
|
|
146
|
+
entity: "agent",
|
|
147
|
+
group: "agents",
|
|
148
|
+
order: 40,
|
|
149
|
+
render: ["spans", "instants"],
|
|
150
|
+
color: "#06b6d4",
|
|
151
|
+
icon: "i-mingcute:signal-line",
|
|
152
|
+
label: {
|
|
153
|
+
"en": "Streaming control",
|
|
154
|
+
"zh-Hans": "流式控制"
|
|
155
|
+
}
|
|
156
|
+
}),
|
|
157
|
+
defineTrack({
|
|
158
|
+
path: AgentTracks.Decision,
|
|
159
|
+
activity: "thinking",
|
|
160
|
+
group: "background",
|
|
161
|
+
order: 0,
|
|
162
|
+
render: ["spans"],
|
|
163
|
+
color: "#eab308",
|
|
164
|
+
icon: "i-mingcute:git-branch-line",
|
|
165
|
+
label: {
|
|
166
|
+
"en": "Decisions",
|
|
167
|
+
"zh-Hans": "决策"
|
|
168
|
+
}
|
|
169
|
+
}),
|
|
170
|
+
defineTrack({
|
|
171
|
+
path: AgentTracks.Memory,
|
|
172
|
+
activity: "active",
|
|
173
|
+
group: "background",
|
|
174
|
+
order: 10,
|
|
175
|
+
render: ["spans", "instants"],
|
|
176
|
+
color: "#84cc16",
|
|
177
|
+
icon: "i-mingcute:storage-line",
|
|
178
|
+
label: {
|
|
179
|
+
"en": "Memory",
|
|
180
|
+
"zh-Hans": "记忆"
|
|
181
|
+
}
|
|
182
|
+
})
|
|
183
|
+
],
|
|
184
|
+
idKeys: Object.values(AgentIdKeys).map((key) => defineIdKey({ key })),
|
|
185
|
+
links: [defineLink({
|
|
186
|
+
rel: "handed-off-to",
|
|
187
|
+
label: {
|
|
188
|
+
"en": "Handed off to",
|
|
189
|
+
"zh-Hans": "移交给"
|
|
190
|
+
}
|
|
191
|
+
})],
|
|
192
|
+
endReasons: [
|
|
193
|
+
defineEndReason({
|
|
194
|
+
reason: "max-steps",
|
|
195
|
+
label: {
|
|
196
|
+
"en": "Max steps",
|
|
197
|
+
"zh-Hans": "达到步数上限"
|
|
198
|
+
}
|
|
199
|
+
}),
|
|
200
|
+
defineEndReason({
|
|
201
|
+
reason: "handed-off",
|
|
202
|
+
label: {
|
|
203
|
+
"en": "Handed off",
|
|
204
|
+
"zh-Hans": "已移交"
|
|
205
|
+
}
|
|
206
|
+
}),
|
|
207
|
+
defineEndReason({
|
|
208
|
+
reason: "awaiting-input",
|
|
209
|
+
label: {
|
|
210
|
+
"en": "Awaiting input",
|
|
211
|
+
"zh-Hans": "等待输入"
|
|
212
|
+
}
|
|
213
|
+
})
|
|
214
|
+
],
|
|
215
|
+
attributes: [
|
|
216
|
+
defineAttribute({
|
|
217
|
+
key: AgentAttributes.TurnInputText,
|
|
218
|
+
type: "string",
|
|
219
|
+
sensitivity: "content"
|
|
220
|
+
}),
|
|
221
|
+
defineAttribute({
|
|
222
|
+
key: AgentAttributes.ControlRawToken,
|
|
223
|
+
type: "string",
|
|
224
|
+
sensitivity: "content"
|
|
225
|
+
}),
|
|
226
|
+
defineAttribute({
|
|
227
|
+
key: AgentAttributes.ControlParameter,
|
|
228
|
+
type: "string",
|
|
229
|
+
sensitivity: "content"
|
|
230
|
+
}),
|
|
231
|
+
defineAttribute({
|
|
232
|
+
key: AgentAttributes.LLMTtftMs,
|
|
233
|
+
type: "number",
|
|
234
|
+
unit: "ms",
|
|
235
|
+
sensitivity: "none",
|
|
236
|
+
aggregatable: true
|
|
237
|
+
}),
|
|
238
|
+
defineAttribute({
|
|
239
|
+
key: ATTR_AIRI_TOPIC_ID,
|
|
240
|
+
type: "string",
|
|
241
|
+
sensitivity: "none"
|
|
242
|
+
})
|
|
243
|
+
],
|
|
244
|
+
metrics: [defineMetric({
|
|
245
|
+
key: "llm.ttft_ms",
|
|
246
|
+
label: {
|
|
247
|
+
"en": "Time to first token",
|
|
248
|
+
"zh-Hans": "首 token 延迟"
|
|
249
|
+
},
|
|
250
|
+
description: {
|
|
251
|
+
"en": "From the model request to the first content chunk.",
|
|
252
|
+
"zh-Hans": "从发出模型请求到收到第一个内容块。"
|
|
253
|
+
},
|
|
254
|
+
unit: "ms",
|
|
255
|
+
better: "lower",
|
|
256
|
+
value: {
|
|
257
|
+
kind: "attribute",
|
|
258
|
+
track: AgentTracks.LLM,
|
|
259
|
+
record: "span.end",
|
|
260
|
+
attribute: AgentAttributes.LLMTtftMs
|
|
261
|
+
}
|
|
262
|
+
}), defineMetric({
|
|
263
|
+
key: "llm.ttfat_ms",
|
|
264
|
+
label: {
|
|
265
|
+
"en": "Time to first answer",
|
|
266
|
+
"zh-Hans": "首个回答延迟"
|
|
267
|
+
},
|
|
268
|
+
description: {
|
|
269
|
+
"en": "From the model request to the first answer token or tool call, after reasoning.",
|
|
270
|
+
"zh-Hans": "从发出模型请求到推理之后的第一个回答 token 或工具调用。"
|
|
271
|
+
},
|
|
272
|
+
unit: "ms",
|
|
273
|
+
better: "lower",
|
|
274
|
+
value: {
|
|
275
|
+
kind: "attribute",
|
|
276
|
+
track: AgentTracks.LLM,
|
|
277
|
+
record: "span.end",
|
|
278
|
+
attribute: AgentAttributes.LLMTtfatMs
|
|
279
|
+
}
|
|
280
|
+
})],
|
|
281
|
+
presets: [definePreset({
|
|
282
|
+
key: "agent.memory",
|
|
283
|
+
label: {
|
|
284
|
+
"en": "Memory",
|
|
285
|
+
"zh-Hans": "记忆"
|
|
286
|
+
},
|
|
287
|
+
tracks: [
|
|
288
|
+
AgentTracks.Turn,
|
|
289
|
+
AgentTracks.Decision,
|
|
290
|
+
AgentTracks.Memory
|
|
291
|
+
]
|
|
292
|
+
})]
|
|
293
|
+
});
|
|
294
|
+
//#endregion
|
|
295
|
+
export { AgentAttributes, AgentIdKeys, AgentNames, AgentTracks, agentProfile };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { x as TraceProfileDefinition } from "../clock-CewQJzn8.mjs";
|
|
2
|
+
import { a as MetricSamples, v as TraceProjection } from "../types-Fp54Yi6b.mjs";
|
|
3
|
+
//#region src/profiles/voice.d.ts
|
|
4
|
+
/** Track path patterns of the voice profile. Fill them with `trackPath`. */
|
|
5
|
+
declare const VoiceTracks: {
|
|
6
|
+
readonly State: "participants/{actor}/state";
|
|
7
|
+
readonly Wake: "participants/{actor}/wake";
|
|
8
|
+
readonly Input: "participants/{actor}/input";
|
|
9
|
+
readonly Speech: "participants/{actor}/speech";
|
|
10
|
+
readonly ASR: "participants/{actor}/asr";
|
|
11
|
+
readonly Rephrase: "participants/{actor}/rephrase";
|
|
12
|
+
readonly Text: "participants/{actor}/text";
|
|
13
|
+
readonly Output: "participants/{actor}/output";
|
|
14
|
+
readonly TTS: "participants/{actor}/tts";
|
|
15
|
+
readonly Playback: "participants/{actor}/playback";
|
|
16
|
+
readonly Floor: "conversations/{conversation}/floor";
|
|
17
|
+
readonly Endpoint: "conversations/{conversation}/endpoint";
|
|
18
|
+
readonly Speculation: "conversations/{conversation}/speculation";
|
|
19
|
+
};
|
|
20
|
+
/** Value keys of the voice series. */
|
|
21
|
+
declare const VoiceSeries: {
|
|
22
|
+
/** Audio level from -60 dBFS (0) to full scale (1), on the input and playback tracks. */
|
|
23
|
+
readonly Level: "level";
|
|
24
|
+
/** Speech probability of the VAD, from 0 to 1, on the input track. One sample for each detector window, like the level. */
|
|
25
|
+
readonly Probability: "probability";
|
|
26
|
+
};
|
|
27
|
+
declare const VoiceIdKeys: {
|
|
28
|
+
readonly Conversation: "conversation";
|
|
29
|
+
readonly Turn: "turn";
|
|
30
|
+
readonly TurnSeq: "turnSeq";
|
|
31
|
+
readonly Input: "input";
|
|
32
|
+
readonly Response: "response";
|
|
33
|
+
readonly Segment: "segment";
|
|
34
|
+
readonly Speculation: "speculation";
|
|
35
|
+
readonly Interrupt: "interrupt";
|
|
36
|
+
readonly Actor: "actor";
|
|
37
|
+
};
|
|
38
|
+
/** Span and instant names. Instants use `<object>.<past-tense verb>`. */
|
|
39
|
+
declare const VoiceNames: {
|
|
40
|
+
readonly WakeWord: "wake-word";
|
|
41
|
+
readonly VoiceInput: "voice-input";
|
|
42
|
+
readonly SpeechSegment: "speech";
|
|
43
|
+
readonly SpeechRecognition: "asr";
|
|
44
|
+
readonly EndpointJudgement: "endpoint.judgement";
|
|
45
|
+
readonly TranscriptRephrase: "transcript.rephrase";
|
|
46
|
+
readonly SpeechOutput: "speech-output";
|
|
47
|
+
readonly TTSRequest: "tts";
|
|
48
|
+
readonly Playback: "playback";
|
|
49
|
+
readonly SpeechStarted: "speech.started";
|
|
50
|
+
readonly SpeechStopped: "speech.stopped";
|
|
51
|
+
readonly TranscriptPartial: "transcript.partial";
|
|
52
|
+
readonly TranscriptFinal: "transcript.final";
|
|
53
|
+
readonly EndpointDecided: "endpoint.decided";
|
|
54
|
+
readonly TurnEnded: "turn.ended";
|
|
55
|
+
readonly TurnHeld: "turn.held";
|
|
56
|
+
readonly FloorTaken: "floor.taken";
|
|
57
|
+
readonly FloorReleased: "floor.released";
|
|
58
|
+
readonly InterruptStarted: "interrupt.started";
|
|
59
|
+
readonly BackchannelDetected: "backchannel.detected";
|
|
60
|
+
readonly OutputTruncated: "output.truncated";
|
|
61
|
+
readonly TTSFirstByte: "tts.first_byte";
|
|
62
|
+
readonly TTSFirstAudible: "tts.first_audible";
|
|
63
|
+
};
|
|
64
|
+
/** Attributes of the voice profile. */
|
|
65
|
+
declare const VoiceAttributes: {
|
|
66
|
+
/** `control` (a voice button or Push to Talk), `speech` (VAD), or `wake-word`. */
|
|
67
|
+
readonly InputTrigger: "voice.input.trigger";
|
|
68
|
+
/** `committed`, `drafted`, `cancelled`, or `failed`. */
|
|
69
|
+
readonly InputOutcome: "voice.input.outcome";
|
|
70
|
+
readonly InputReason: "voice.input.reason";
|
|
71
|
+
readonly WakeCharacterId: "voice.wake.character_id";
|
|
72
|
+
readonly WakeText: "voice.wake.text";
|
|
73
|
+
readonly WakeTokens: "voice.wake.tokens";
|
|
74
|
+
readonly SpeechDurationMs: "voice.speech.duration_ms";
|
|
75
|
+
readonly VADAborted: "voice.vad.aborted";
|
|
76
|
+
/** The VAD probability that begins speech, on the input span. The viewer draws it as a dashed line over the probability. */
|
|
77
|
+
readonly VADThreshold: "voice.vad.threshold";
|
|
78
|
+
readonly SpeakerScore: "voice.speaker.score";
|
|
79
|
+
readonly SpeakerScores: "voice.speaker.scores";
|
|
80
|
+
readonly SpeakerVoicedMs: "voice.speaker.voiced_ms";
|
|
81
|
+
readonly SpeakerRejectedCount: "voice.speaker.rejected_count";
|
|
82
|
+
readonly ASRText: "asr.text";
|
|
83
|
+
readonly EndpointTranscriptLength: "endpoint.transcript_length";
|
|
84
|
+
readonly RephraseSegmentCount: "rephrase.segment_count";
|
|
85
|
+
readonly RephraseChangedCount: "rephrase.changed_count";
|
|
86
|
+
readonly TTSText: "tts.text";
|
|
87
|
+
readonly TTSChunkReason: "tts.chunk_reason";
|
|
88
|
+
readonly TTSAudioDurationMs: "tts.audio_duration_ms";
|
|
89
|
+
readonly TTSTtfbMs: "tts.ttfb_ms";
|
|
90
|
+
readonly TurnAddressees: "turn.addressees";
|
|
91
|
+
readonly FloorSelection: "floor.selection";
|
|
92
|
+
readonly FloorTakeReason: "floor.take.reason";
|
|
93
|
+
readonly Interrupter: "interrupter";
|
|
94
|
+
readonly Interrupted: "interrupted";
|
|
95
|
+
readonly OverlapIntent: "overlap.intent";
|
|
96
|
+
readonly OverlapResponse: "overlap.response";
|
|
97
|
+
readonly HeardFrames: "heard.frames";
|
|
98
|
+
readonly PlannedFrames: "planned.frames";
|
|
99
|
+
readonly HeardChars: "heard.chars";
|
|
100
|
+
readonly HeardText: "heard.text";
|
|
101
|
+
readonly HeardMethod: "heard.method";
|
|
102
|
+
};
|
|
103
|
+
declare const voiceProfile: TraceProfileDefinition;
|
|
104
|
+
interface FloorState {
|
|
105
|
+
/** The participant who spoke last, and the end of that speech. `end` is undefined while the speech runs. */
|
|
106
|
+
last?: {
|
|
107
|
+
actor: string;
|
|
108
|
+
end?: number;
|
|
109
|
+
};
|
|
110
|
+
/** Open speech spans by span key, so an end finds its actor. A stopped or lost epoch removes its spans. */
|
|
111
|
+
open: Map<string, {
|
|
112
|
+
actor: string;
|
|
113
|
+
source: string;
|
|
114
|
+
epoch: string;
|
|
115
|
+
}>;
|
|
116
|
+
samples: MetricSamples;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Derives floor transfers from speech and playback spans.
|
|
120
|
+
*
|
|
121
|
+
* A transfer from A to B happens when B starts to speak and the last speaker was A. Its offset is the speech start of
|
|
122
|
+
* B minus the speech end of A. For an agent, speech starts at its first played audio. A playback segment that follows
|
|
123
|
+
* another segment of the same agent is the same turn, so it is not a transfer.
|
|
124
|
+
* A start while A still speaks is an overlap. It is not a transfer, and the interruption metrics cover it.
|
|
125
|
+
*/
|
|
126
|
+
declare function createFloorTransferProjection(): TraceProjection<FloorState, MetricSamples>;
|
|
127
|
+
//#endregion
|
|
128
|
+
export { VoiceAttributes, VoiceIdKeys, VoiceNames, VoiceSeries, VoiceTracks, createFloorTransferProjection, voiceProfile };
|