voyageai-cli
Version:
CLI for Voyage AI embeddings, reranking, and MongoDB Atlas Vector Search
294 lines (288 loc) • 7.84 kB
JavaScript
;
const BASE_FIELDS = [
{
name: 'event',
type: 'string',
description: 'Telemetry event identifier.',
},
{
name: 'version',
type: 'string',
description: 'Current vai version.',
},
{
name: 'context',
type: 'string',
description: 'Runtime surface, such as `cli` or `desktop`.',
},
{
name: 'platform',
type: 'string',
description: 'Platform and architecture, for example `darwin-arm64`.',
},
{
name: 'locale',
type: 'string',
description: 'Resolved runtime locale.',
},
];
const TELEMETRY_EVENTS = [
{
name: 'cli_benchmark',
fields: ['subcommand', 'durationMs'],
source: 'src/commands/benchmark.js',
description: 'Benchmark subcommand run timing.',
},
{
name: 'cli_chat',
fields: ['model', 'modelRole', 'models', 'provider', 'llmModel', 'embeddingModel', 'rerankModel', 'local', 'turnCount', 'durationMs'],
source: 'src/commands/chat.js',
description: 'Interactive chat session summary.',
},
{
name: 'cli_chunk',
fields: ['strategy', 'chunkSize', 'overlap', 'chunkCount', 'durationMs'],
source: 'src/commands/chunk.js',
description: 'Chunking configuration and output size.',
},
{
name: 'cli_code_search_init',
fields: [],
source: 'src/commands/code-search.js',
description: 'Code-search workspace initialization.',
},
{
name: 'cli_code_search_query',
fields: ['model', 'rerank', 'resultCount', 'durationMs'],
source: 'src/commands/code-search.js',
description: 'Code-search query execution summary.',
},
{
name: 'cli_code_search_refresh',
fields: [],
source: 'src/commands/code-search.js',
description: 'Code-search refresh operation.',
},
{
name: 'cli_command',
fields: ['command'],
source: 'src/cli.js',
description: 'Top-level CLI command invocation.',
},
{
name: 'cli_content',
fields: ['type', 'platform'],
source: 'src/commands/content.js',
description: 'Content generation request summary.',
},
{
name: 'cli_embed',
fields: [
'model',
'multimodal',
'hasText',
'hasImage',
'hasVideo',
'local',
'inputType',
'textCount',
'outputDtype',
'dimensions',
'durationMs',
],
source: 'src/commands/embed.js',
description: 'Embedding request summary.',
},
{
name: 'cli_error',
fields: ['command', 'errorType'],
source: 'src/commands/*',
description: 'High-level command failure type.',
},
{
name: 'cli_estimate',
fields: ['model', 'tokenCount'],
source: 'src/commands/estimate.js',
description: 'Estimator usage summary.',
},
{
name: 'cli_eval',
fields: ['durationMs'],
source: 'src/commands/eval.js',
description: 'Evaluation command timing.',
},
{
name: 'cli_explain',
fields: ['topic'],
source: 'src/commands/explain.js',
description: 'Explain topic selection.',
},
{
name: 'cli_explain_code_run',
fields: [],
source: 'src/commands/index-workspace.js',
description: 'Explain-code operation.',
},
{
name: 'cli_generate',
fields: ['provider', 'model'],
source: 'src/commands/generate.js',
description: 'Code generation request summary.',
},
{
name: 'cli_index_workspace_run',
fields: ['contentType'],
source: 'src/commands/index-workspace.js',
description: 'Workspace indexing operation.',
},
{
name: 'cli_ingest',
fields: ['model', 'modelRole', 'models', 'local', 'inputType', 'batchSize', 'format', 'docCount', 'durationMs'],
source: 'src/commands/ingest.js',
description: 'Ingest command timing.',
},
{
name: 'cli_init',
fields: [],
source: 'src/commands/init.js',
description: 'Project initialization command.',
},
{
name: 'cli_mcp_start',
fields: ['transport'],
source: 'src/commands/mcp-server.js',
description: 'MCP server startup mode.',
},
{
name: 'cli_models',
fields: ['category'],
source: 'src/commands/models.js',
description: 'Model catalog filter usage.',
},
{
name: 'cli_ping',
fields: ['voyageOk', 'mongoOk'],
source: 'src/commands/ping.js',
description: 'Connectivity check summary.',
},
{
name: 'cli_pipeline',
fields: ['model', 'modelRole', 'models', 'local', 'chunkStrategy', 'chunkSize', 'createIndex', 'durationMs'],
source: 'src/commands/pipeline.js',
description: 'End-to-end pipeline execution summary.',
},
{
name: 'cli_query',
fields: ['model', 'rerankModel', 'rerank', 'limit', 'topK', 'resultCount', 'durationMs'],
source: 'src/commands/query.js',
description: 'Vector query execution summary.',
},
{
name: 'cli_rerank',
fields: ['model', 'docCount', 'topK', 'durationMs'],
source: 'src/commands/rerank.js',
description: 'Rerank request summary.',
},
{
name: 'cli_scaffold',
fields: ['template'],
source: 'src/commands/scaffold.js',
description: 'Project scaffold template selection.',
},
{
name: 'cli_search',
fields: ['model', 'limit', 'durationMs'],
source: 'src/commands/search.js',
description: 'Search command summary.',
},
{
name: 'cli_search_code_run',
fields: ['language'],
source: 'src/commands/index-workspace.js',
description: 'Workspace code-search operation.',
},
{
name: 'cli_similarity',
fields: ['model', 'durationMs'],
source: 'src/commands/similarity.js',
description: 'Similarity comparison timing.',
},
{
name: 'cli_store',
fields: ['model', 'durationMs'],
source: 'src/commands/store.js',
description: 'Store command timing.',
},
{
name: 'cli_welcome_complete',
fields: ['hasApiKey', 'hasMongo', 'keyType'],
source: 'src/lib/welcome.js',
description: 'Welcome wizard completion summary.',
},
{
name: 'cli_workflow_install',
fields: ['packageName'],
source: 'src/commands/workflow.js',
description: 'Workflow package install request.',
},
{
name: 'cli_workflow_run',
fields: ['workflowName', 'stepCount', 'isBuiltin', 'durationMs'],
source: 'src/commands/workflow.js',
description: 'Workflow run summary.',
},
{
name: 'cli_workflow_search',
fields: ['query', 'resultCount'],
source: 'src/commands/workflow.js',
description: 'Workflow catalog search summary.',
},
{
name: 'demo_chat_completed',
fields: ['duration', 'fileCount', 'chunkCount', 'queries', 'llmProvider', 'llmModel'],
source: 'src/commands/demo.js',
description: 'Chat demo completion summary.',
},
{
name: 'demo_cleanup',
fields: ['collectionsDropped'],
source: 'src/commands/demo.js',
description: 'Demo cleanup summary.',
},
{
name: 'demo_code_search_completed',
fields: ['duration', 'files', 'chunks', 'tokens'],
source: 'src/commands/demo.js',
description: 'Code-search demo completion summary.',
},
{
name: 'demo_cost_optimizer_completed',
fields: ['duration', 'docCount', 'queries'],
source: 'src/commands/demo.js',
description: 'Cost-optimizer demo completion summary.',
},
{
name: 'desktop_launch',
fields: ['electronVersion', 'appVersion'],
source: 'electron/main.js',
description: 'Desktop application launch summary.',
},
{
name: 'optimize_completed',
fields: ['queryCount', 'docsScale', 'queriesPerMonth'],
source: 'src/commands/optimize.js',
description: 'Optimizer scenario summary.',
},
];
function getTelemetryEvents() {
return TELEMETRY_EVENTS.slice();
}
function getTelemetryEvent(name) {
return TELEMETRY_EVENTS.find((event) => event.name === name) || null;
}
module.exports = {
BASE_FIELDS,
TELEMETRY_EVENTS,
getTelemetryEvents,
getTelemetryEvent,
};