@codemieai/code 0.0.10 → 0.0.12

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 (129) hide show
  1. package/README.md +23 -98
  2. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  3. package/dist/agents/codemie-code/agent.js +35 -4
  4. package/dist/agents/codemie-code/agent.js.map +1 -1
  5. package/dist/agents/codemie-code/tools/index.d.ts.map +1 -1
  6. package/dist/agents/codemie-code/tools/index.js +5 -3
  7. package/dist/agents/codemie-code/tools/index.js.map +1 -1
  8. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  9. package/dist/agents/core/AgentCLI.js +57 -11
  10. package/dist/agents/core/AgentCLI.js.map +1 -1
  11. package/dist/agents/core/BaseAgentAdapter.d.ts +4 -4
  12. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  13. package/dist/agents/core/BaseAgentAdapter.js +31 -23
  14. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  15. package/dist/agents/plugins/codemie-code.plugin.js +1 -1
  16. package/dist/agents/plugins/codemie-code.plugin.js.map +1 -1
  17. package/dist/agents/plugins/gemini.plugin.js +1 -1
  18. package/dist/agents/plugins/gemini.plugin.js.map +1 -1
  19. package/dist/analytics/collector.d.ts +46 -0
  20. package/dist/analytics/collector.d.ts.map +1 -0
  21. package/dist/analytics/collector.js +83 -0
  22. package/dist/analytics/collector.js.map +1 -0
  23. package/dist/analytics/config.d.ts +14 -0
  24. package/dist/analytics/config.d.ts.map +1 -0
  25. package/dist/analytics/config.js +46 -0
  26. package/dist/analytics/config.js.map +1 -0
  27. package/dist/analytics/index.d.ts +108 -0
  28. package/dist/analytics/index.d.ts.map +1 -0
  29. package/dist/analytics/index.js +322 -0
  30. package/dist/analytics/index.js.map +1 -0
  31. package/dist/analytics/plugins/api-metrics.plugin.d.ts +23 -0
  32. package/dist/analytics/plugins/api-metrics.plugin.d.ts.map +1 -0
  33. package/dist/analytics/plugins/api-metrics.plugin.js +113 -0
  34. package/dist/analytics/plugins/api-metrics.plugin.js.map +1 -0
  35. package/dist/analytics/plugins/index.d.ts +15 -0
  36. package/dist/analytics/plugins/index.d.ts.map +1 -0
  37. package/dist/analytics/plugins/index.js +15 -0
  38. package/dist/analytics/plugins/index.js.map +1 -0
  39. package/dist/analytics/plugins/model-metrics.plugin.d.ts +36 -0
  40. package/dist/analytics/plugins/model-metrics.plugin.d.ts.map +1 -0
  41. package/dist/analytics/plugins/model-metrics.plugin.js +115 -0
  42. package/dist/analytics/plugins/model-metrics.plugin.js.map +1 -0
  43. package/dist/analytics/plugins/provider-metrics.plugin.d.ts +38 -0
  44. package/dist/analytics/plugins/provider-metrics.plugin.d.ts.map +1 -0
  45. package/dist/analytics/plugins/provider-metrics.plugin.js +138 -0
  46. package/dist/analytics/plugins/provider-metrics.plugin.js.map +1 -0
  47. package/dist/analytics/plugins/types.d.ts +63 -0
  48. package/dist/analytics/plugins/types.d.ts.map +1 -0
  49. package/dist/analytics/plugins/types.js +54 -0
  50. package/dist/analytics/plugins/types.js.map +1 -0
  51. package/dist/analytics/privacy.d.ts +10 -0
  52. package/dist/analytics/privacy.d.ts.map +1 -0
  53. package/dist/analytics/privacy.js +20 -0
  54. package/dist/analytics/privacy.js.map +1 -0
  55. package/dist/analytics/session.d.ts +56 -0
  56. package/dist/analytics/session.d.ts.map +1 -0
  57. package/dist/analytics/session.js +95 -0
  58. package/dist/analytics/session.js.map +1 -0
  59. package/dist/analytics/types.d.ts +104 -0
  60. package/dist/analytics/types.d.ts.map +1 -0
  61. package/dist/analytics/types.js +15 -0
  62. package/dist/analytics/types.js.map +1 -0
  63. package/dist/analytics/writer.d.ts +18 -0
  64. package/dist/analytics/writer.d.ts.map +1 -0
  65. package/dist/analytics/writer.js +44 -0
  66. package/dist/analytics/writer.js.map +1 -0
  67. package/dist/cli/commands/analytics.d.ts +3 -0
  68. package/dist/cli/commands/analytics.d.ts.map +1 -0
  69. package/dist/cli/commands/analytics.js +319 -0
  70. package/dist/cli/commands/analytics.js.map +1 -0
  71. package/dist/cli/commands/config.d.ts.map +1 -1
  72. package/dist/cli/commands/config.js +14 -0
  73. package/dist/cli/commands/config.js.map +1 -1
  74. package/dist/cli/commands/profile.d.ts.map +1 -1
  75. package/dist/cli/commands/profile.js +41 -0
  76. package/dist/cli/commands/profile.js.map +1 -1
  77. package/dist/cli/index.js +2 -0
  78. package/dist/cli/index.js.map +1 -1
  79. package/dist/env/types.d.ts +2 -0
  80. package/dist/env/types.d.ts.map +1 -1
  81. package/dist/env/types.js.map +1 -1
  82. package/dist/utils/analytics-reader.d.ts +117 -0
  83. package/dist/utils/analytics-reader.d.ts.map +1 -0
  84. package/dist/utils/analytics-reader.js +421 -0
  85. package/dist/utils/analytics-reader.js.map +1 -0
  86. package/dist/utils/codemie-integration-validator.d.ts.map +1 -1
  87. package/dist/utils/codemie-integration-validator.js +3 -16
  88. package/dist/utils/codemie-integration-validator.js.map +1 -1
  89. package/dist/utils/codemie-proxy.d.ts +80 -0
  90. package/dist/utils/codemie-proxy.d.ts.map +1 -0
  91. package/dist/utils/codemie-proxy.js +335 -0
  92. package/dist/utils/codemie-proxy.js.map +1 -0
  93. package/dist/utils/config-loader.d.ts +7 -0
  94. package/dist/utils/config-loader.d.ts.map +1 -1
  95. package/dist/utils/config-loader.js +18 -0
  96. package/dist/utils/config-loader.js.map +1 -1
  97. package/dist/utils/date-formatter.d.ts +88 -0
  98. package/dist/utils/date-formatter.d.ts.map +1 -0
  99. package/dist/utils/date-formatter.js +133 -0
  100. package/dist/utils/date-formatter.js.map +1 -0
  101. package/dist/utils/installation-id.d.ts +10 -0
  102. package/dist/utils/installation-id.d.ts.map +1 -0
  103. package/dist/utils/installation-id.js +30 -0
  104. package/dist/utils/installation-id.js.map +1 -0
  105. package/dist/utils/logger.d.ts +1 -15
  106. package/dist/utils/logger.d.ts.map +1 -1
  107. package/dist/utils/logger.js +5 -86
  108. package/dist/utils/logger.js.map +1 -1
  109. package/dist/utils/proxy/errors.d.ts +45 -0
  110. package/dist/utils/proxy/errors.d.ts.map +1 -0
  111. package/dist/utils/proxy/errors.js +103 -0
  112. package/dist/utils/proxy/errors.js.map +1 -0
  113. package/dist/utils/proxy/http-client.d.ts +46 -0
  114. package/dist/utils/proxy/http-client.d.ts.map +1 -0
  115. package/dist/utils/proxy/http-client.js +133 -0
  116. package/dist/utils/proxy/http-client.js.map +1 -0
  117. package/dist/utils/proxy/interceptors.d.ts +69 -0
  118. package/dist/utils/proxy/interceptors.d.ts.map +1 -0
  119. package/dist/utils/proxy/interceptors.js +319 -0
  120. package/dist/utils/proxy/interceptors.js.map +1 -0
  121. package/dist/utils/proxy/types.d.ts +45 -0
  122. package/dist/utils/proxy/types.d.ts.map +1 -0
  123. package/dist/utils/proxy/types.js +7 -0
  124. package/dist/utils/proxy/types.js.map +1 -0
  125. package/package.json +46 -5
  126. package/dist/utils/sso-gateway.d.ts +0 -75
  127. package/dist/utils/sso-gateway.d.ts.map +0 -1
  128. package/dist/utils/sso-gateway.js +0 -453
  129. package/dist/utils/sso-gateway.js.map +0 -1
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Analytics types and interfaces for CodeMie CLI
3
+ * Provides unified analytics across all agents with minimal overhead
4
+ */
5
+ /**
6
+ * Analytics configuration
7
+ */
8
+ export interface AnalyticsConfig {
9
+ /** Enable/disable analytics collection */
10
+ enabled: boolean;
11
+ /** Storage target: local file, remote endpoint, or both */
12
+ target: 'local' | 'remote' | 'both';
13
+ /** Local storage path for JSONL files */
14
+ localPath: string;
15
+ /** Remote endpoint URL (optional) */
16
+ remoteEndpoint?: string;
17
+ /** Buffer flush interval in milliseconds */
18
+ flushInterval: number;
19
+ /** Maximum events to buffer before auto-flush */
20
+ maxBufferSize: number;
21
+ }
22
+ /**
23
+ * Default analytics configuration
24
+ */
25
+ export declare const DEFAULT_ANALYTICS_CONFIG: AnalyticsConfig;
26
+ /**
27
+ * Event types tracked across all agents
28
+ */
29
+ export type EventType = 'session_start' | 'session_end' | 'session_error' | 'user_prompt' | 'agent_response' | 'api_request' | 'api_response' | 'api_error' | 'proxy_error' | 'config_change' | 'profile_switch' | 'latency_measurement';
30
+ /**
31
+ * Core analytics event structure
32
+ * OpenTelemetry-inspired format for consistency
33
+ */
34
+ export interface AnalyticsEvent {
35
+ timestamp: string;
36
+ eventType: EventType;
37
+ sessionId: string;
38
+ installationId: string;
39
+ agent: string;
40
+ agentVersion: string;
41
+ cliVersion: string;
42
+ profile: string;
43
+ provider: string;
44
+ model: string;
45
+ attributes: Record<string, unknown>;
46
+ metrics?: Record<string, number>;
47
+ }
48
+ /**
49
+ * Session configuration
50
+ */
51
+ export interface SessionConfig {
52
+ agent: string;
53
+ agentVersion: string;
54
+ cliVersion: string;
55
+ profile: string;
56
+ provider: string;
57
+ model: string;
58
+ workingDir: string;
59
+ interactive: boolean;
60
+ }
61
+ /**
62
+ * Session metadata
63
+ */
64
+ export interface SessionMetadata {
65
+ id: string;
66
+ startTime: number;
67
+ agent: string;
68
+ agentVersion: string;
69
+ cliVersion: string;
70
+ profile: string;
71
+ provider: string;
72
+ model: string;
73
+ workingDir: string;
74
+ interactive: boolean;
75
+ }
76
+ /**
77
+ * Collector configuration
78
+ */
79
+ export interface CollectorConfig {
80
+ maxBufferSize: number;
81
+ flushInterval: number;
82
+ }
83
+ /**
84
+ * Analytics writer interface
85
+ */
86
+ export interface IAnalyticsWriter {
87
+ write(events: AnalyticsEvent[]): Promise<void>;
88
+ }
89
+ /**
90
+ * Remote analytics interface
91
+ */
92
+ export interface IRemoteAnalytics {
93
+ send(events: AnalyticsEvent[]): Promise<void>;
94
+ }
95
+ /**
96
+ * Comprehensive session metrics
97
+ */
98
+ export interface SessionMetrics {
99
+ apiRequestCount: number;
100
+ totalLatencyMs: number;
101
+ averageLatencyMs: number;
102
+ durationSeconds: number;
103
+ }
104
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analytics/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,eAMtC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAEjB,eAAe,GACf,aAAa,GACb,eAAe,GAEf,aAAa,GACb,gBAAgB,GAEhB,aAAa,GACb,cAAc,GACd,WAAW,GAEX,aAAa,GAEb,eAAe,GACf,gBAAgB,GAEhB,qBAAqB,CAAC;AAE1B;;;GAGG;AACH,MAAM,WAAW,cAAc;IAE7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IAGvB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IAGd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAE7B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,eAAe,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Analytics types and interfaces for CodeMie CLI
3
+ * Provides unified analytics across all agents with minimal overhead
4
+ */
5
+ /**
6
+ * Default analytics configuration
7
+ */
8
+ export const DEFAULT_ANALYTICS_CONFIG = {
9
+ enabled: false,
10
+ target: 'local',
11
+ localPath: '~/.codemie/analytics',
12
+ flushInterval: 5000, // 5 seconds
13
+ maxBufferSize: 100,
14
+ };
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/analytics/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,sBAAsB;IACjC,aAAa,EAAE,IAAI,EAAE,YAAY;IACjC,aAAa,EAAE,GAAG;CACnB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Local JSONL writer for analytics
3
+ * Writes events to daily log files in JSONL format
4
+ */
5
+ import type { AnalyticsEvent, IAnalyticsWriter } from './types.js';
6
+ /**
7
+ * Writes analytics events to local JSONL files
8
+ * One file per day: ~/.codemie/analytics/YYYY-MM-DD.jsonl
9
+ */
10
+ export declare class AnalyticsWriter implements IAnalyticsWriter {
11
+ private basePath;
12
+ constructor(basePath?: string);
13
+ /**
14
+ * Write events to daily log file
15
+ */
16
+ write(events: AnalyticsEvent[]): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/analytics/writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,CAAC,EAAE,MAAM;IAO7B;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBrD"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Local JSONL writer for analytics
3
+ * Writes events to daily log files in JSONL format
4
+ */
5
+ import { appendFile, mkdir } from 'node:fs/promises';
6
+ import { join } from 'node:path';
7
+ import { homedir } from 'node:os';
8
+ /**
9
+ * Writes analytics events to local JSONL files
10
+ * One file per day: ~/.codemie/analytics/YYYY-MM-DD.jsonl
11
+ */
12
+ export class AnalyticsWriter {
13
+ basePath;
14
+ constructor(basePath) {
15
+ // Expand ~ to home directory
16
+ this.basePath = basePath
17
+ ? basePath.replace(/^~/, homedir())
18
+ : join(homedir(), '.codemie', 'analytics');
19
+ }
20
+ /**
21
+ * Write events to daily log file
22
+ */
23
+ async write(events) {
24
+ if (events.length === 0) {
25
+ return;
26
+ }
27
+ try {
28
+ // Get current date for filename
29
+ const date = new Date().toISOString().split('T')[0];
30
+ const filePath = join(this.basePath, `${date}.jsonl`);
31
+ // Ensure directory exists
32
+ await mkdir(this.basePath, { recursive: true });
33
+ // Convert events to JSONL (one JSON per line)
34
+ const lines = events.map((event) => JSON.stringify(event)).join('\n') + '\n';
35
+ // Append to file (non-blocking)
36
+ await appendFile(filePath, lines, 'utf-8');
37
+ }
38
+ catch (error) {
39
+ // Silently fail - don't block agent execution
40
+ console.error('Analytics write error:', error);
41
+ }
42
+ }
43
+ }
44
+ //# sourceMappingURL=writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/analytics/writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC;;;GAGG;AACH,MAAM,OAAO,eAAe;IAClB,QAAQ,CAAS;IAEzB,YAAY,QAAiB;QAC3B,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ;YACtB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;YACnC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,MAAwB;QAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;YAEtD,0BAA0B;YAC1B,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhD,8CAA8C;YAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAE7E,gCAAgC;YAChC,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8CAA8C;YAC9C,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createAnalyticsCommand(): Command;
3
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,sBAAsB,IAAI,OAAO,CAWhD"}
@@ -0,0 +1,319 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import inquirer from 'inquirer';
4
+ import { loadAnalyticsConfig } from '../../analytics/config.js';
5
+ import { logger } from '../../utils/logger.js';
6
+ import { readAnalyticsForLocalDate, readAnalyticsForLocalDateRange, filterEvents, calculateStats, exportToCSV, exportToJSON, listAnalyticsFiles, clearOldAnalytics, formatFileSize } from '../../utils/analytics-reader.js';
7
+ import { getLocalToday, getDefaultLocalDateRange, getLocalDateString } from '../../utils/date-formatter.js';
8
+ import { AgentRegistry } from '../../agents/registry.js';
9
+ export function createAnalyticsCommand() {
10
+ const command = new Command('analytics');
11
+ command
12
+ .description('Analytics management and insights')
13
+ .addCommand(createStatusCommand())
14
+ .addCommand(createStatsCommand())
15
+ .addCommand(createExportCommand())
16
+ .addCommand(createClearCommand());
17
+ return command;
18
+ }
19
+ function createStatusCommand() {
20
+ const command = new Command('status');
21
+ command
22
+ .description('Show analytics configuration and today\'s statistics')
23
+ .option('--json', 'Output as JSON')
24
+ .action(async (options) => {
25
+ try {
26
+ const config = loadAnalyticsConfig();
27
+ // JSON output
28
+ if (options.json) {
29
+ const today = getLocalToday();
30
+ const todayEvents = await readAnalyticsForLocalDate(today);
31
+ const stats = todayEvents.length > 0 ? calculateStats(todayEvents) : null;
32
+ console.log(JSON.stringify({
33
+ config,
34
+ todayStats: stats
35
+ }, null, 2));
36
+ return;
37
+ }
38
+ // Human-readable output
39
+ console.log(chalk.bold.cyan('\n📊 Analytics Configuration\n'));
40
+ // Configuration
41
+ console.log(chalk.cyan('Status: ') + (config.enabled ? chalk.green('Enabled') : chalk.red('Disabled')));
42
+ console.log(chalk.cyan('Target: ') + chalk.white(config.target));
43
+ console.log(chalk.cyan('Local Path: ') + chalk.white(config.localPath));
44
+ if (config.remoteEndpoint) {
45
+ console.log(chalk.cyan('Remote Endpoint: ') + chalk.white(config.remoteEndpoint));
46
+ }
47
+ console.log(chalk.cyan('Flush Interval: ') + chalk.white(`${config.flushInterval}ms`));
48
+ console.log(chalk.cyan('Buffer Size: ') + chalk.white(`${config.maxBufferSize} events`));
49
+ // Today's statistics
50
+ console.log(chalk.bold.cyan('\n📈 Today\'s Statistics\n'));
51
+ const today = getLocalToday();
52
+ const todayEvents = await readAnalyticsForLocalDate(today);
53
+ if (todayEvents.length === 0) {
54
+ console.log(chalk.white('No analytics data for today yet.\n'));
55
+ return;
56
+ }
57
+ const stats = calculateStats(todayEvents);
58
+ console.log(chalk.cyan('Sessions: ') + chalk.white(stats.totalSessions));
59
+ console.log(chalk.cyan('API Calls: ') + chalk.white(stats.apiRequests));
60
+ console.log(chalk.cyan('Success Rate: ') + chalk.white(`${stats.successRate.toFixed(1)}%`));
61
+ console.log(chalk.cyan('Avg Latency: ') + chalk.white(`${Math.round(stats.avgLatency)}ms`));
62
+ if (Object.keys(stats.agentUsage).length > 0) {
63
+ console.log(chalk.bold.cyan('\nAgent Activity:\n'));
64
+ Object.entries(stats.agentUsage)
65
+ .sort(([, a], [, b]) => b.sessions - a.sessions)
66
+ .slice(0, 5)
67
+ .forEach(([, usage]) => {
68
+ console.log(` ${chalk.white(usage.displayName.padEnd(20))} ${chalk.white(usage.sessions)} sessions, ${chalk.white(usage.apiCalls)} API calls`);
69
+ });
70
+ }
71
+ console.log();
72
+ }
73
+ catch (error) {
74
+ logger.error('Failed to show analytics status:', error);
75
+ process.exit(1);
76
+ }
77
+ });
78
+ return command;
79
+ }
80
+ function createStatsCommand() {
81
+ const command = new Command('stats');
82
+ const defaultRange = getDefaultLocalDateRange(7);
83
+ command
84
+ .description('Show analytics statistics')
85
+ .option('--from <date>', 'Start date (YYYY-MM-DD, local timezone)', defaultRange.from)
86
+ .option('--to <date>', 'End date (YYYY-MM-DD, local timezone)', defaultRange.to)
87
+ .option('--agent <name>', 'Filter by agent name')
88
+ .action(async (options) => {
89
+ try {
90
+ // Validate agent filter against registry
91
+ if (options.agent) {
92
+ const agentNames = AgentRegistry.getAgentNames();
93
+ if (!agentNames.includes(options.agent)) {
94
+ const availableAgents = AgentRegistry.getAllAgents()
95
+ .map(a => `${a.name} (${a.displayName})`)
96
+ .join(', ');
97
+ logger.error(`Unknown agent: ${options.agent}`);
98
+ console.log(chalk.yellow(`\nAvailable agents: ${availableAgents}\n`));
99
+ process.exit(1);
100
+ }
101
+ }
102
+ console.log(chalk.bold.cyan('\n📊 Analytics Statistics\n'));
103
+ console.log(chalk.white(`Date Range: ${options.from} to ${options.to} (local timezone)`));
104
+ if (options.agent) {
105
+ const adapter = AgentRegistry.getAgent(options.agent);
106
+ const displayName = adapter?.displayName || options.agent;
107
+ console.log(chalk.white(`Agent: ${displayName}`));
108
+ }
109
+ console.log();
110
+ // Read events using local dates
111
+ const events = await readAnalyticsForLocalDateRange(options.from, options.to);
112
+ if (events.length === 0) {
113
+ console.log(chalk.yellow('No analytics data found for the specified period.\n'));
114
+ return;
115
+ }
116
+ // Apply filters
117
+ const filters = {};
118
+ if (options.agent) {
119
+ filters.agent = options.agent;
120
+ }
121
+ const filteredEvents = filterEvents(events, filters);
122
+ if (filteredEvents.length === 0) {
123
+ console.log(chalk.yellow('No events match the specified filters.\n'));
124
+ return;
125
+ }
126
+ // Calculate statistics
127
+ const stats = calculateStats(filteredEvents);
128
+ // Display overview
129
+ console.log(chalk.bold.cyan('📋 Overview\n'));
130
+ console.log(chalk.cyan('Sessions: ') + chalk.white(stats.totalSessions));
131
+ console.log(chalk.cyan('API Calls: ') + chalk.white(stats.apiRequests));
132
+ if (stats.apiErrors > 0) {
133
+ console.log(chalk.cyan('API Errors: ') + chalk.red(stats.apiErrors));
134
+ }
135
+ // Display performance
136
+ console.log(chalk.bold.cyan('\n⚡ Performance\n'));
137
+ console.log(chalk.cyan('Avg Latency: ') + chalk.white(`${Math.round(stats.avgLatency)}ms`));
138
+ console.log(chalk.cyan('Success Rate: ') + chalk.white(`${stats.successRate.toFixed(1)}%`));
139
+ // Display agent usage
140
+ if (Object.keys(stats.agentUsage).length > 0) {
141
+ console.log(chalk.bold.cyan('\n🤖 Agent Usage\n'));
142
+ const totalApiCalls = Object.values(stats.agentUsage).reduce((sum, usage) => sum + usage.apiCalls, 0);
143
+ Object.entries(stats.agentUsage)
144
+ .sort(([, a], [, b]) => b.apiCalls - a.apiCalls)
145
+ .forEach(([, usage]) => {
146
+ const percentage = totalApiCalls > 0 ? ((usage.apiCalls / totalApiCalls) * 100).toFixed(1) : '0.0';
147
+ console.log(` ${chalk.white(usage.displayName.padEnd(20))} ${chalk.white(usage.sessions.toString().padStart(3))} sessions ${chalk.white(usage.apiCalls.toString().padStart(4))} API calls (${percentage}%)`);
148
+ });
149
+ }
150
+ // Display model usage
151
+ if (Object.keys(stats.modelUsage).length > 0) {
152
+ console.log(chalk.bold.cyan('\n🎯 Model Usage\n'));
153
+ const totalApiCalls = Object.values(stats.modelUsage).reduce((sum, usage) => sum + usage.apiCalls, 0);
154
+ Object.entries(stats.modelUsage)
155
+ .sort(([, a], [, b]) => b.apiCalls - a.apiCalls)
156
+ .slice(0, 10)
157
+ .forEach(([model, usage]) => {
158
+ const percentage = ((usage.apiCalls / totalApiCalls) * 100).toFixed(1);
159
+ console.log(` ${chalk.white(model.padEnd(30))} ${chalk.white(usage.apiCalls.toString().padStart(4))} calls (${percentage}%)`);
160
+ });
161
+ }
162
+ console.log();
163
+ }
164
+ catch (error) {
165
+ logger.error('Failed to show analytics stats:', error);
166
+ process.exit(1);
167
+ }
168
+ });
169
+ return command;
170
+ }
171
+ function createExportCommand() {
172
+ const command = new Command('export');
173
+ const defaultRange = getDefaultLocalDateRange(7);
174
+ command
175
+ .description('Export analytics data')
176
+ .option('--format <format>', 'Export format (csv, json)', 'csv')
177
+ .option('--output <path>', 'Output file path', getDefaultExportPath())
178
+ .option('--from <date>', 'Start date (YYYY-MM-DD, local timezone)', defaultRange.from)
179
+ .option('--to <date>', 'End date (YYYY-MM-DD, local timezone)', defaultRange.to)
180
+ .option('--agent <name>', 'Filter by agent name')
181
+ .option('--event-type <type>', 'Filter by event type')
182
+ .action(async (options) => {
183
+ try {
184
+ // Validate format
185
+ if (!['csv', 'json'].includes(options.format)) {
186
+ logger.error('Invalid format. Use "csv" or "json".');
187
+ process.exit(1);
188
+ }
189
+ // Validate agent filter against registry
190
+ if (options.agent) {
191
+ const agentNames = AgentRegistry.getAgentNames();
192
+ if (!agentNames.includes(options.agent)) {
193
+ const availableAgents = AgentRegistry.getAllAgents()
194
+ .map(a => `${a.name} (${a.displayName})`)
195
+ .join(', ');
196
+ logger.error(`Unknown agent: ${options.agent}`);
197
+ console.log(chalk.yellow(`\nAvailable agents: ${availableAgents}\n`));
198
+ process.exit(1);
199
+ }
200
+ }
201
+ console.log(chalk.bold.cyan('\n📤 Exporting Analytics Data\n'));
202
+ console.log(chalk.white(`Date Range: ${options.from} to ${options.to} (local timezone)`));
203
+ console.log(chalk.white(`Format: ${options.format.toUpperCase()}`));
204
+ if (options.agent) {
205
+ const adapter = AgentRegistry.getAgent(options.agent);
206
+ const displayName = adapter?.displayName || options.agent;
207
+ console.log(chalk.white(`Agent Filter: ${displayName}`));
208
+ }
209
+ if (options.eventType) {
210
+ console.log(chalk.white(`Event Type Filter: ${options.eventType}`));
211
+ }
212
+ console.log();
213
+ // Read events using local dates
214
+ const events = await readAnalyticsForLocalDateRange(options.from, options.to);
215
+ if (events.length === 0) {
216
+ console.log(chalk.yellow('No analytics data found for the specified period.\n'));
217
+ return;
218
+ }
219
+ // Apply filters
220
+ const filters = {};
221
+ if (options.agent) {
222
+ filters.agent = options.agent;
223
+ }
224
+ if (options.eventType) {
225
+ filters.eventType = options.eventType;
226
+ }
227
+ const filteredEvents = filterEvents(events, filters);
228
+ if (filteredEvents.length === 0) {
229
+ console.log(chalk.yellow('No events match the specified filters.\n'));
230
+ return;
231
+ }
232
+ // Export
233
+ console.log(chalk.white(`Exporting ${filteredEvents.length} analytics records...`));
234
+ if (options.format === 'csv') {
235
+ await exportToCSV(filteredEvents, options.output);
236
+ }
237
+ else {
238
+ await exportToJSON(filteredEvents, options.output);
239
+ }
240
+ logger.success(`Exported to ${options.output}`);
241
+ console.log(chalk.white(`Total records: ${filteredEvents.length}`));
242
+ console.log();
243
+ }
244
+ catch (error) {
245
+ logger.error('Failed to export analytics:', error);
246
+ process.exit(1);
247
+ }
248
+ });
249
+ return command;
250
+ }
251
+ function createClearCommand() {
252
+ const command = new Command('clear');
253
+ command
254
+ .description('Clear old analytics files')
255
+ .option('--older-than <days>', 'Delete files older than N days', '30')
256
+ .option('-y, --yes', 'Skip confirmation')
257
+ .action(async (options) => {
258
+ try {
259
+ const days = parseInt(options.olderThan, 10);
260
+ if (isNaN(days) || days < 1) {
261
+ logger.error('Invalid number of days. Must be a positive integer.');
262
+ process.exit(1);
263
+ }
264
+ console.log(chalk.bold.cyan('\n🗑️ Clear Old Analytics\n'));
265
+ // List files that would be deleted
266
+ const files = await listAnalyticsFiles();
267
+ const threshold = new Date();
268
+ threshold.setDate(threshold.getDate() - days);
269
+ const filesToDelete = files.filter(file => new Date(file.date) < threshold);
270
+ if (filesToDelete.length === 0) {
271
+ console.log(chalk.white(`No analytics files older than ${days} days.\n`));
272
+ return;
273
+ }
274
+ const totalSize = filesToDelete.reduce((sum, file) => sum + file.size, 0);
275
+ console.log(chalk.white(`Found ${filesToDelete.length} file(s) older than ${days} days:`));
276
+ console.log();
277
+ filesToDelete.forEach(file => {
278
+ // Display file date (UTC) with local date for reference
279
+ const localDate = getLocalDateString(new Date(file.date + 'T12:00:00.000Z'));
280
+ const dateDisplay = file.date === localDate ? file.date : `${file.date} (local: ${localDate})`;
281
+ console.log(` ${chalk.white(dateDisplay.padEnd(30))} ${chalk.white(formatFileSize(file.size).padStart(10))} ${chalk.white(file.events)} events`);
282
+ });
283
+ console.log();
284
+ console.log(chalk.white(`Total space to be freed: ${formatFileSize(totalSize)}`));
285
+ console.log();
286
+ // Confirm deletion
287
+ if (!options.yes) {
288
+ const { confirm } = await inquirer.prompt([
289
+ {
290
+ type: 'confirm',
291
+ name: 'confirm',
292
+ message: 'Are you sure you want to delete these files?',
293
+ default: false
294
+ }
295
+ ]);
296
+ if (!confirm) {
297
+ console.log(chalk.yellow('\nDeletion cancelled.\n'));
298
+ return;
299
+ }
300
+ }
301
+ // Delete files
302
+ const deletedFiles = await clearOldAnalytics(days);
303
+ logger.success(`Deleted ${deletedFiles.length} file(s)`);
304
+ console.log(chalk.white(`Freed ${formatFileSize(totalSize)}`));
305
+ console.log();
306
+ }
307
+ catch (error) {
308
+ logger.error('Failed to clear analytics:', error);
309
+ process.exit(1);
310
+ }
311
+ });
312
+ return command;
313
+ }
314
+ // Helper functions
315
+ function getDefaultExportPath() {
316
+ const date = getLocalToday();
317
+ return `analytics-${date}.csv`;
318
+ }
319
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../src/cli/commands/analytics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,mBAAmB,IAAI,OAAO,CAqM7C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,mBAAmB,IAAI,OAAO,CAkN7C"}
@@ -6,6 +6,7 @@ import { ConfigLoader } from '../../utils/config-loader.js';
6
6
  import { logger } from '../../utils/logger.js';
7
7
  import { checkProviderHealth } from '../../utils/health-checker.js';
8
8
  import { fetchCodeMieModelsFromConfig } from '../../utils/codemie-model-fetcher.js';
9
+ import { getAnalytics } from '../../analytics/index.js';
9
10
  export function createConfigCommand() {
10
11
  const command = new Command('config');
11
12
  command.description('Configuration utilities and diagnostics');
@@ -173,6 +174,19 @@ export function createConfigCommand() {
173
174
  await ConfigLoader.saveProjectConfig(options.dir, projectConfig);
174
175
  logger.success(`Created .codemie/config.json`);
175
176
  console.log(chalk.white('\nProject config created. Environment variables and CLI flags will still override these settings.'));
177
+ // Track config change
178
+ try {
179
+ const analytics = getAnalytics();
180
+ await analytics.track('config_change', {
181
+ operation: 'init_project_config',
182
+ directory: options.dir,
183
+ overrides: Object.keys(projectConfig)
184
+ });
185
+ }
186
+ catch (analyticsError) {
187
+ // Silent fail
188
+ logger.debug('Analytics tracking error:', analyticsError);
189
+ }
176
190
  }
177
191
  catch (error) {
178
192
  logger.error('Failed to initialize project config:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,IAAI,OAAO,CAY9C"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,oBAAoB,IAAI,OAAO,CAY9C"}