@vybestack/llxprt-code-telemetry 0.10.0-nightly.260613.1adad3b34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/.last_build +0 -0
  2. package/dist/index.d.ts +11 -0
  3. package/dist/index.js +15 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/src/debug/ConfigurationManager.d.ts +33 -0
  6. package/dist/src/debug/ConfigurationManager.js +226 -0
  7. package/dist/src/debug/ConfigurationManager.js.map +1 -0
  8. package/dist/src/debug/DebugLogger.d.ts +46 -0
  9. package/dist/src/debug/DebugLogger.js +286 -0
  10. package/dist/src/debug/DebugLogger.js.map +1 -0
  11. package/dist/src/debug/FileOutput.d.ts +28 -0
  12. package/dist/src/debug/FileOutput.js +190 -0
  13. package/dist/src/debug/FileOutput.js.map +1 -0
  14. package/dist/src/debug/MockConfigurationManager.d.ts +28 -0
  15. package/dist/src/debug/MockConfigurationManager.js +45 -0
  16. package/dist/src/debug/MockConfigurationManager.js.map +1 -0
  17. package/dist/src/debug/MockFileOutput.d.ts +22 -0
  18. package/dist/src/debug/MockFileOutput.js +23 -0
  19. package/dist/src/debug/MockFileOutput.js.map +1 -0
  20. package/dist/src/debug/index.d.ts +10 -0
  21. package/dist/src/debug/index.js +11 -0
  22. package/dist/src/debug/index.js.map +1 -0
  23. package/dist/src/debug/types.d.ts +25 -0
  24. package/dist/src/debug/types.js +2 -0
  25. package/dist/src/debug/types.js.map +1 -0
  26. package/dist/src/internal/interfaces.d.ts +143 -0
  27. package/dist/src/internal/interfaces.js +37 -0
  28. package/dist/src/internal/interfaces.js.map +1 -0
  29. package/dist/src/telemetry/constants.d.ts +35 -0
  30. package/dist/src/telemetry/constants.js +36 -0
  31. package/dist/src/telemetry/constants.js.map +1 -0
  32. package/dist/src/telemetry/file-exporters.d.ts +28 -0
  33. package/dist/src/telemetry/file-exporters.js +89 -0
  34. package/dist/src/telemetry/file-exporters.js.map +1 -0
  35. package/dist/src/telemetry/index.d.ts +24 -0
  36. package/dist/src/telemetry/index.js +24 -0
  37. package/dist/src/telemetry/index.js.map +1 -0
  38. package/dist/src/telemetry/loggers.d.ts +46 -0
  39. package/dist/src/telemetry/loggers.js +543 -0
  40. package/dist/src/telemetry/loggers.js.map +1 -0
  41. package/dist/src/telemetry/metrics.d.ts +24 -0
  42. package/dist/src/telemetry/metrics.js +153 -0
  43. package/dist/src/telemetry/metrics.js.map +1 -0
  44. package/dist/src/telemetry/sdk.d.ts +10 -0
  45. package/dist/src/telemetry/sdk.js +138 -0
  46. package/dist/src/telemetry/sdk.js.map +1 -0
  47. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  48. package/dist/src/telemetry/tool-call-decision.js +30 -0
  49. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  50. package/dist/src/telemetry/types.d.ts +380 -0
  51. package/dist/src/telemetry/types.js +620 -0
  52. package/dist/src/telemetry/types.js.map +1 -0
  53. package/dist/src/telemetry/uiTelemetry.d.ts +104 -0
  54. package/dist/src/telemetry/uiTelemetry.js +183 -0
  55. package/dist/src/telemetry/uiTelemetry.js.map +1 -0
  56. package/dist/src/utils/debugLogger.d.ts +10 -0
  57. package/dist/src/utils/debugLogger.js +11 -0
  58. package/dist/src/utils/debugLogger.js.map +1 -0
  59. package/dist/src/utils/index.d.ts +9 -0
  60. package/dist/src/utils/index.js +10 -0
  61. package/dist/src/utils/index.js.map +1 -0
  62. package/dist/src/utils/paths.d.ts +10 -0
  63. package/dist/src/utils/paths.js +11 -0
  64. package/dist/src/utils/paths.js.map +1 -0
  65. package/dist/src/utils/safeJsonStringify.d.ts +13 -0
  66. package/dist/src/utils/safeJsonStringify.js +25 -0
  67. package/dist/src/utils/safeJsonStringify.js.map +1 -0
  68. package/dist/src/utils/session.d.ts +6 -0
  69. package/dist/src/utils/session.js +8 -0
  70. package/dist/src/utils/session.js.map +1 -0
  71. package/package.json +80 -0
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export const SERVICE_NAME = 'llxprt-code';
7
+ export const EVENT_USER_PROMPT = 'llxprt_code.user_prompt';
8
+ export const EVENT_TOOL_CALL = 'llxprt_code.tool_call';
9
+ export const EVENT_HOOK_CALL = 'llxprt_code.hook_call';
10
+ export const EVENT_API_REQUEST = 'llxprt_code.api_request';
11
+ export const EVENT_API_ERROR = 'llxprt_code.api_error';
12
+ export const EVENT_API_RESPONSE = 'llxprt_code.api_response';
13
+ export const EVENT_CLI_CONFIG = 'llxprt_code.config';
14
+ export const EVENT_NEXT_SPEAKER_CHECK = 'llxprt_code.next_speaker_check';
15
+ export const EVENT_SLASH_COMMAND = 'llxprt_code.slash_command';
16
+ export const EVENT_CONVERSATION_REQUEST = 'llxprt_code.conversation_request';
17
+ export const EVENT_CONVERSATION_RESPONSE = 'llxprt_code.conversation_response';
18
+ export const EVENT_ENHANCED_CONVERSATION_RESPONSE = 'llxprt_code.enhanced_conversation_response';
19
+ export const EVENT_PROVIDER_SWITCH = 'llxprt_code.provider_switch';
20
+ export const EVENT_PROVIDER_CAPABILITY = 'llxprt_code.provider_capability';
21
+ export const EVENT_TOOL_OUTPUT_TRUNCATED = 'llxprt_code.tool_output_truncated';
22
+ export const EVENT_FILE_OPERATION = 'llxprt_code.file_operation';
23
+ export const EVENT_MALFORMED_JSON_RESPONSE = 'llxprt_code.malformed_json_response';
24
+ export const EVENT_MODEL_ROUTING = 'llxprt_code.model_routing';
25
+ export const EVENT_EXTENSION_INSTALL = 'llxprt_code.extension_install';
26
+ export const EVENT_EXTENSION_UNINSTALL = 'llxprt_code.extension_uninstall';
27
+ export const EVENT_EXTENSION_ENABLE = 'llxprt_code.extension_enable';
28
+ export const EVENT_EXTENSION_DISABLE = 'llxprt_code.extension_disable';
29
+ export const METRIC_TOOL_CALL_COUNT = 'llxprt_code.tool.call.count';
30
+ export const METRIC_TOOL_CALL_LATENCY = 'llxprt_code.tool.call.latency';
31
+ export const METRIC_API_REQUEST_COUNT = 'llxprt_code.api.request.count';
32
+ export const METRIC_API_REQUEST_LATENCY = 'llxprt_code.api.request.latency';
33
+ export const METRIC_TOKEN_USAGE = 'llxprt_code.token.usage';
34
+ export const METRIC_SESSION_COUNT = 'llxprt_code.session.count';
35
+ export const METRIC_FILE_OPERATION_COUNT = 'llxprt_code.file.operation.count';
36
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/telemetry/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAC/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,kCAAkC,CAAC;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GAAG,mCAAmC,CAAC;AAC/E,MAAM,CAAC,MAAM,oCAAoC,GAC/C,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AACnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,mCAAmC,CAAC;AAC/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GACxC,qCAAqC,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,8BAA8B,CAAC;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAEvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type ExportResult } from '@opentelemetry/core';
7
+ import { type ReadableSpan, type SpanExporter } from '@opentelemetry/sdk-trace-base';
8
+ import { type ReadableLogRecord, type LogRecordExporter } from '@opentelemetry/sdk-logs';
9
+ import { type ResourceMetrics, type PushMetricExporter, AggregationTemporality } from '@opentelemetry/sdk-metrics';
10
+ declare class FileExporter {
11
+ protected filePath: string;
12
+ constructor(filePath: string);
13
+ protected serialize(data: unknown): string;
14
+ protected writeToFile(data: string): void;
15
+ shutdown(): Promise<void>;
16
+ }
17
+ export declare class FileSpanExporter extends FileExporter implements SpanExporter {
18
+ export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
19
+ }
20
+ export declare class FileLogExporter extends FileExporter implements LogRecordExporter {
21
+ export(logs: ReadableLogRecord[], resultCallback: (result: ExportResult) => void): void;
22
+ }
23
+ export declare class FileMetricExporter extends FileExporter implements PushMetricExporter {
24
+ export(metrics: ResourceMetrics, resultCallback: (result: ExportResult) => void): void;
25
+ getPreferredAggregationTemporality(): AggregationTemporality;
26
+ forceFlush(): Promise<void>;
27
+ }
28
+ export {};
@@ -0,0 +1,89 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import * as fs from 'node:fs';
7
+ import * as path from 'node:path';
8
+ import { ExportResultCode } from '@opentelemetry/core';
9
+ import { AggregationTemporality, } from '@opentelemetry/sdk-metrics';
10
+ class FileExporter {
11
+ filePath;
12
+ constructor(filePath) {
13
+ this.filePath = filePath;
14
+ // Ensure directory exists
15
+ const dir = path.dirname(filePath);
16
+ if (!fs.existsSync(dir)) {
17
+ fs.mkdirSync(dir, { recursive: true });
18
+ }
19
+ }
20
+ serialize(data) {
21
+ return JSON.stringify(data, null, 2) + '\n';
22
+ }
23
+ writeToFile(data) {
24
+ // Use synchronous append to ensure immediate write
25
+ fs.appendFileSync(this.filePath, data, 'utf-8');
26
+ }
27
+ shutdown() {
28
+ // Nothing to do for sync writes
29
+ return Promise.resolve();
30
+ }
31
+ }
32
+ export class FileSpanExporter extends FileExporter {
33
+ export(spans, resultCallback) {
34
+ try {
35
+ const data = spans.map((span) => this.serialize(span)).join('');
36
+ this.writeToFile(data);
37
+ resultCallback({
38
+ code: ExportResultCode.SUCCESS,
39
+ });
40
+ }
41
+ catch (error) {
42
+ resultCallback({
43
+ code: ExportResultCode.FAILED,
44
+ error: error,
45
+ });
46
+ }
47
+ }
48
+ }
49
+ export class FileLogExporter extends FileExporter {
50
+ export(logs, resultCallback) {
51
+ try {
52
+ const data = logs.map((log) => this.serialize(log)).join('');
53
+ this.writeToFile(data);
54
+ resultCallback({
55
+ code: ExportResultCode.SUCCESS,
56
+ });
57
+ }
58
+ catch (error) {
59
+ resultCallback({
60
+ code: ExportResultCode.FAILED,
61
+ error: error,
62
+ });
63
+ }
64
+ }
65
+ }
66
+ export class FileMetricExporter extends FileExporter {
67
+ export(metrics, resultCallback) {
68
+ try {
69
+ const data = this.serialize(metrics);
70
+ this.writeToFile(data);
71
+ resultCallback({
72
+ code: ExportResultCode.SUCCESS,
73
+ });
74
+ }
75
+ catch (error) {
76
+ resultCallback({
77
+ code: ExportResultCode.FAILED,
78
+ error: error,
79
+ });
80
+ }
81
+ }
82
+ getPreferredAggregationTemporality() {
83
+ return AggregationTemporality.CUMULATIVE;
84
+ }
85
+ async forceFlush() {
86
+ return Promise.resolve();
87
+ }
88
+ }
89
+ //# sourceMappingURL=file-exporters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-exporters.js","sourceRoot":"","sources":["../../../src/telemetry/file-exporters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAqB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAS1E,OAAO,EAGL,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,YAAY;IACN,QAAQ,CAAS;IAE3B,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,0BAA0B;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAES,SAAS,CAAC,IAAa;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9C,CAAC;IAES,WAAW,CAAC,IAAY;QAChC,mDAAmD;QACnD,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ;QACN,gCAAgC;QAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,MAAM,CACJ,KAAqB,EACrB,cAA8C;QAE9C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,cAAc,CAAC;gBACb,IAAI,EAAE,gBAAgB,CAAC,OAAO;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC;gBACb,IAAI,EAAE,gBAAgB,CAAC,MAAM;gBAC7B,KAAK,EAAE,KAAc;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,MAAM,CACJ,IAAyB,EACzB,cAA8C;QAE9C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,cAAc,CAAC;gBACb,IAAI,EAAE,gBAAgB,CAAC,OAAO;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC;gBACb,IAAI,EAAE,gBAAgB,CAAC,MAAM;gBAC7B,KAAK,EAAE,KAAc;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,kBACX,SAAQ,YAAY;IAGpB,MAAM,CACJ,OAAwB,EACxB,cAA8C;QAE9C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,cAAc,CAAC;gBACb,IAAI,EAAE,gBAAgB,CAAC,OAAO;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,CAAC;gBACb,IAAI,EAAE,gBAAgB,CAAC,MAAM;gBAC7B,KAAK,EAAE,KAAc;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kCAAkC;QAChC,OAAO,sBAAsB,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare enum TelemetryTarget {
7
+ GCP = "gcp",
8
+ LOCAL = "local"
9
+ }
10
+ declare const DEFAULT_TELEMETRY_TARGET = TelemetryTarget.LOCAL;
11
+ declare const DEFAULT_OTLP_ENDPOINT = "http://localhost:4317";
12
+ export { DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT };
13
+ export { initializeTelemetry, shutdownTelemetry, isTelemetrySdkInitialized, flushTelemetry, } from './sdk.js';
14
+ export { logCliConfiguration, logUserPrompt, logToolCall, logHookCall, logApiRequest, logApiError, logApiResponse, logSlashCommand, logKittySequenceOverflow, logLoopDetected, logNextSpeakerCheck, logToolOutputTruncated, logFileOperation, logConversationRequest, logConversationResponse, logProviderSwitch, logProviderCapability, logTokenUsage, logPerformanceMetrics, logMalformedJsonResponse, logModelRouting, logExtensionInstallEvent, logExtensionUninstall, logExtensionEnable, logExtensionDisable, } from './loggers.js';
15
+ export { StartSessionEvent, EndSessionEvent, UserPromptEvent, ToolCallEvent, HookCallEvent, ApiRequestEvent, ApiErrorEvent, ApiResponseEvent, SlashCommandEvent, KittySequenceOverflowEvent, LoopDetectedEvent, LoopType, NextSpeakerCheckEvent, MalformedJsonResponseEvent, ConversationRequestEvent, ConversationResponseEvent, EnhancedConversationResponseEvent, ProviderSwitchEvent, ProviderCapabilityEvent, TokenUsageEvent, PerformanceMetricsEvent, ToolOutputTruncatedEvent, FileOperationEvent, ModelRoutingEvent, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionEnableEvent, ExtensionDisableEvent, IdeConnectionType, IdeConnectionEvent, } from './types.js';
16
+ export type { TelemetryEvent, ProviderCapabilities, ProviderContext, ToolCall, ProviderPerformanceMetrics, } from './types.js';
17
+ export { ToolCallDecision, getDecisionFromOutcome, } from './tool-call-decision.js';
18
+ export { FileOperation as FileOperationMetric, initializeMetrics, recordToolCallMetrics, recordTokenUsageMetrics, recordApiResponseMetrics, recordApiErrorMetrics, recordFileOperationMetric, recordModelRoutingMetrics, getMeter, } from './metrics.js';
19
+ export { SpanStatusCode, ValueType } from '@opentelemetry/api';
20
+ export { SemanticAttributes } from '@opentelemetry/semantic-conventions';
21
+ export * from './uiTelemetry.js';
22
+ export { ToolConfirmationOutcome } from '../internal/interfaces.js';
23
+ export type { TelemetryConfig, SessionConfig, TelemetryPromptConfig, ToolLoggingConfig as ToolLoggingConfigInterface, DiffStat, ToolCallRequest, ToolCallError, ToolCallResponse, CompletedToolCallShape, HookInput, HookConfig, HookExecutionResult, } from '../internal/interfaces.js';
24
+ export { HookEventName } from '../internal/interfaces.js';
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export var TelemetryTarget;
7
+ (function (TelemetryTarget) {
8
+ TelemetryTarget["GCP"] = "gcp";
9
+ TelemetryTarget["LOCAL"] = "local";
10
+ })(TelemetryTarget || (TelemetryTarget = {}));
11
+ const DEFAULT_TELEMETRY_TARGET = TelemetryTarget.LOCAL;
12
+ const DEFAULT_OTLP_ENDPOINT = 'http://localhost:4317';
13
+ export { DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT };
14
+ export { initializeTelemetry, shutdownTelemetry, isTelemetrySdkInitialized, flushTelemetry, } from './sdk.js';
15
+ export { logCliConfiguration, logUserPrompt, logToolCall, logHookCall, logApiRequest, logApiError, logApiResponse, logSlashCommand, logKittySequenceOverflow, logLoopDetected, logNextSpeakerCheck, logToolOutputTruncated, logFileOperation, logConversationRequest, logConversationResponse, logProviderSwitch, logProviderCapability, logTokenUsage, logPerformanceMetrics, logMalformedJsonResponse, logModelRouting, logExtensionInstallEvent, logExtensionUninstall, logExtensionEnable, logExtensionDisable, } from './loggers.js';
16
+ export { StartSessionEvent, EndSessionEvent, UserPromptEvent, ToolCallEvent, HookCallEvent, ApiRequestEvent, ApiErrorEvent, ApiResponseEvent, SlashCommandEvent, KittySequenceOverflowEvent, LoopDetectedEvent, LoopType, NextSpeakerCheckEvent, MalformedJsonResponseEvent, ConversationRequestEvent, ConversationResponseEvent, EnhancedConversationResponseEvent, ProviderSwitchEvent, ProviderCapabilityEvent, TokenUsageEvent, PerformanceMetricsEvent, ToolOutputTruncatedEvent, FileOperationEvent, ModelRoutingEvent, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionEnableEvent, ExtensionDisableEvent, IdeConnectionType, IdeConnectionEvent, } from './types.js';
17
+ export { ToolCallDecision, getDecisionFromOutcome, } from './tool-call-decision.js';
18
+ export { FileOperation as FileOperationMetric, initializeMetrics, recordToolCallMetrics, recordTokenUsageMetrics, recordApiResponseMetrics, recordApiErrorMetrics, recordFileOperationMetric, recordModelRoutingMetrics, getMeter, } from './metrics.js';
19
+ export { SpanStatusCode, ValueType } from '@opentelemetry/api';
20
+ export { SemanticAttributes } from '@opentelemetry/semantic-conventions';
21
+ export * from './uiTelemetry.js';
22
+ export { ToolConfirmationOutcome } from '../internal/interfaces.js';
23
+ export { HookEventName } from '../internal/interfaces.js';
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,wBAAwB,GAAG,eAAe,CAAC,KAAK,CAAC;AACvD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EACf,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,iCAAiC,EACjC,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAQpB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,aAAa,IAAI,mBAAmB,EACpC,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAepE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { TelemetryConfig, TelemetryPromptConfig } from '../internal/interfaces.js';
7
+ import type { ApiErrorEvent, ApiRequestEvent, ApiResponseEvent, HookCallEvent, StartSessionEvent, ToolCallEvent, UserPromptEvent, NextSpeakerCheckEvent, LoopDetectedEvent, SlashCommandEvent, ConversationRequestEvent, ConversationResponseEvent, ProviderSwitchEvent, ProviderCapabilityEvent, KittySequenceOverflowEvent, TokenUsageEvent, PerformanceMetricsEvent, ToolOutputTruncatedEvent, FileOperationEvent, MalformedJsonResponseEvent, ModelRoutingEvent, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionEnableEvent, ExtensionDisableEvent } from './types.js';
8
+ type Config = TelemetryConfig;
9
+ type SessionConfig = Pick<TelemetryConfig, 'getSessionId'>;
10
+ type ToolLoggingConfig = SessionConfig & TelemetryPromptConfig;
11
+ export declare function logCliConfiguration(config: Config, event: StartSessionEvent): void;
12
+ export declare function logUserPrompt(config: Config, event: UserPromptEvent): void;
13
+ export declare function logToolCall(config: ToolLoggingConfig, event: ToolCallEvent): void;
14
+ export declare function logHookCall(config: Config, event: HookCallEvent): void;
15
+ export declare function logToolOutputTruncated(config: Config, event: ToolOutputTruncatedEvent): void;
16
+ export declare function logFileOperation(config: Config, event: FileOperationEvent): void;
17
+ export declare function logApiRequest(config: Config, event: ApiRequestEvent): void;
18
+ export declare function logApiError(config: Config, event: ApiErrorEvent): void;
19
+ export declare function logApiResponse(config: Config, event: ApiResponseEvent): void;
20
+ export declare function logLoopDetected(config: Config, event: LoopDetectedEvent): void;
21
+ export declare function logNextSpeakerCheck(config: Config, event: NextSpeakerCheckEvent): void;
22
+ export declare function logSlashCommand(config: Config, event: SlashCommandEvent): void;
23
+ export declare function logConversationRequest(config: Config, event: ConversationRequestEvent): void;
24
+ export declare function logConversationResponse(config: Config, event: ConversationResponseEvent): void;
25
+ export declare function logProviderSwitch(config: Config, event: ProviderSwitchEvent): void;
26
+ export declare function logProviderCapability(config: Config, event: ProviderCapabilityEvent): void;
27
+ export declare function logKittySequenceOverflow(config: Config, event: KittySequenceOverflowEvent): void;
28
+ /**
29
+ * Logs token usage per conversation turn.
30
+ * @param config The configuration object.
31
+ * @param event The TokenUsageEvent to log.
32
+ */
33
+ export declare function logTokenUsage(config: Config, event: TokenUsageEvent): void;
34
+ /**
35
+ * Logs performance metrics such as tokens per minute.
36
+ * @param config The configuration object.
37
+ * @param event The PerformanceMetricsEvent to log.
38
+ */
39
+ export declare function logPerformanceMetrics(config: Config, event: PerformanceMetricsEvent): void;
40
+ export declare function logMalformedJsonResponse(config: Config, event: MalformedJsonResponseEvent): void;
41
+ export declare function logModelRouting(config: Config, event: ModelRoutingEvent): void;
42
+ export declare function logExtensionInstallEvent(config: Config, event: ExtensionInstallEvent): void;
43
+ export declare function logExtensionUninstall(config: Config, event: ExtensionUninstallEvent): void;
44
+ export declare function logExtensionEnable(config: Config, event: ExtensionEnableEvent): void;
45
+ export declare function logExtensionDisable(config: Config, event: ExtensionDisableEvent): void;
46
+ export {};