@dexto/analytics 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,16 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var events_exports = {};
16
+ module.exports = __toCommonJS(events_exports);
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Platform source for analytics events.
3
+ * Used to distinguish which interface generated the event.
4
+ */
5
+ export type AnalyticsSource = 'cli' | 'webui';
6
+ /**
7
+ * LLM token consumption event.
8
+ * Emitted after each LLM response with token usage data.
9
+ *
10
+ */
11
+ export interface LLMTokensConsumedEvent {
12
+ source: AnalyticsSource;
13
+ sessionId: string;
14
+ provider?: string | undefined;
15
+ model?: string | undefined;
16
+ inputTokens?: number | undefined;
17
+ outputTokens?: number | undefined;
18
+ reasoningTokens?: number | undefined;
19
+ totalTokens?: number | undefined;
20
+ cacheReadTokens?: number | undefined;
21
+ cacheWriteTokens?: number | undefined;
22
+ }
23
+ /**
24
+ * Message sent event.
25
+ * Emitted when user sends a message to the agent.
26
+ */
27
+ export interface MessageSentEvent {
28
+ source: AnalyticsSource;
29
+ sessionId: string;
30
+ provider: string;
31
+ model: string;
32
+ hasImage: boolean;
33
+ hasFile: boolean;
34
+ messageLength: number;
35
+ messageCount?: number | undefined;
36
+ isQueued?: boolean | undefined;
37
+ }
38
+ /**
39
+ * Tool called event.
40
+ * Emitted when a tool is invoked by the LLM.
41
+ */
42
+ export interface ToolCalledEvent {
43
+ source: AnalyticsSource;
44
+ sessionId: string;
45
+ toolName: string;
46
+ mcpServer?: string | undefined;
47
+ }
48
+ /**
49
+ * Tool result event.
50
+ * Emitted when a tool execution completes.
51
+ */
52
+ export interface ToolResultEvent {
53
+ source: AnalyticsSource;
54
+ sessionId: string;
55
+ toolName: string;
56
+ success: boolean;
57
+ approvalStatus?: 'approved' | 'rejected' | undefined;
58
+ }
59
+ /**
60
+ * Session created event.
61
+ */
62
+ export interface SessionCreatedEvent {
63
+ source: AnalyticsSource;
64
+ sessionId: string;
65
+ trigger: 'first_message' | 'manual' | 'resume';
66
+ }
67
+ /**
68
+ * Session reset event (conversation cleared).
69
+ */
70
+ export interface SessionResetEvent {
71
+ source: AnalyticsSource;
72
+ sessionId: string;
73
+ messageCount: number;
74
+ }
75
+ /**
76
+ * LLM switched event.
77
+ */
78
+ export interface LLMSwitchedEvent {
79
+ source: AnalyticsSource;
80
+ sessionId?: string | undefined;
81
+ fromProvider: string;
82
+ fromModel: string;
83
+ toProvider: string;
84
+ toModel: string;
85
+ trigger: 'user_action' | 'config_change';
86
+ }
87
+ /**
88
+ * Session switched event.
89
+ * Emitted when user switches to a different session.
90
+ */
91
+ export interface SessionSwitchedEvent {
92
+ source: AnalyticsSource;
93
+ fromSessionId: string | null;
94
+ toSessionId: string;
95
+ }
96
+ /**
97
+ * Agent switched event.
98
+ * Emitted when user switches to a different agent.
99
+ */
100
+ export interface AgentSwitchedEvent {
101
+ source: AnalyticsSource;
102
+ fromAgentId: string | null;
103
+ toAgentId: string;
104
+ toAgentName?: string | undefined;
105
+ sessionId?: string | undefined;
106
+ }
107
+ /**
108
+ * MCP server connected event.
109
+ * Emitted when an MCP server connects successfully.
110
+ */
111
+ export interface MCPServerConnectedEvent {
112
+ source: AnalyticsSource;
113
+ serverName: string;
114
+ transportType: 'stdio' | 'http' | 'sse';
115
+ toolCount?: number | undefined;
116
+ }
117
+ /**
118
+ * File attached event.
119
+ * Emitted when user attaches a file to a message.
120
+ */
121
+ export interface FileAttachedEvent {
122
+ source: AnalyticsSource;
123
+ sessionId: string;
124
+ fileType: string;
125
+ fileSizeBytes?: number | undefined;
126
+ }
127
+ /**
128
+ * Image attached event.
129
+ * Emitted when user attaches an image to a message.
130
+ */
131
+ export interface ImageAttachedEvent {
132
+ source: AnalyticsSource;
133
+ sessionId: string;
134
+ imageType: string;
135
+ imageSizeBytes?: number | undefined;
136
+ }
137
+ /**
138
+ * Shared analytics event map containing events supported by ALL platforms.
139
+ * CLI and WebUI extend this map with platform-specific events.
140
+ *
141
+ * IMPORTANT: If an event is tracked by both CLI and WebUI, add it here.
142
+ * Platform-specific events should be added to the respective platform's event map.
143
+ */
144
+ export interface SharedAnalyticsEventMap {
145
+ dexto_llm_tokens_consumed: LLMTokensConsumedEvent;
146
+ dexto_message_sent: MessageSentEvent;
147
+ dexto_tool_called: ToolCalledEvent;
148
+ dexto_tool_result: ToolResultEvent;
149
+ dexto_session_created: SessionCreatedEvent;
150
+ dexto_session_reset: SessionResetEvent;
151
+ dexto_llm_switched: LLMSwitchedEvent;
152
+ dexto_session_switched: SessionSwitchedEvent;
153
+ dexto_agent_switched: AgentSwitchedEvent;
154
+ dexto_mcp_server_connected: MCPServerConnectedEvent;
155
+ dexto_image_attached: ImageAttachedEvent;
156
+ }
157
+ export type SharedAnalyticsEventName = keyof SharedAnalyticsEventMap;
158
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/events.js ADDED
File without changes
package/dist/index.cjs CHANGED
@@ -15,6 +15,7 @@ var __copyProps = (to, from, except, desc) => {
15
15
  }
16
16
  return to;
17
17
  };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
20
  var index_exports = {};
20
21
  __export(index_exports, {
@@ -28,6 +29,7 @@ __export(index_exports, {
28
29
  module.exports = __toCommonJS(index_exports);
29
30
  var import_constants = require("./constants.js");
30
31
  var import_state = require("./state.js");
32
+ __reExport(index_exports, require("./events.js"), module.exports);
31
33
  // Annotate the CommonJS export names for ESM import in node:
32
34
  0 && (module.exports = {
33
35
  COMMAND_TIMEOUT_MS,
@@ -35,5 +37,6 @@ var import_state = require("./state.js");
35
37
  DEFAULT_POSTHOG_KEY,
36
38
  isAnalyticsDisabled,
37
39
  loadState,
38
- saveState
40
+ saveState,
41
+ ...require("./events.js")
39
42
  });
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { DEFAULT_POSTHOG_KEY, DEFAULT_POSTHOG_HOST, COMMAND_TIMEOUT_MS, isAnalyticsDisabled, } from './constants.js';
2
2
  export { loadState, saveState } from './state.js';
3
3
  export type { AnalyticsState } from './state.js';
4
+ export * from './events.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ import {
5
5
  isAnalyticsDisabled
6
6
  } from "./constants.js";
7
7
  import { loadState, saveState } from "./state.js";
8
+ export * from "./events.js";
8
9
  export {
9
10
  COMMAND_TIMEOUT_MS,
10
11
  DEFAULT_POSTHOG_HOST,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dexto/analytics",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -14,8 +14,8 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "node-machine-id": "^1.1.12",
17
- "@dexto/agent-management": "1.4.0",
18
- "@dexto/core": "1.4.0"
17
+ "@dexto/agent-management": "1.5.0",
18
+ "@dexto/core": "1.5.0"
19
19
  },
20
20
  "files": [
21
21
  "dist",