@codemieai/code 0.0.12 → 0.0.13
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/README.md +65 -778
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +31 -3
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/types.d.ts +18 -0
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude.plugin.d.ts +0 -3
- package/dist/agents/plugins/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude.plugin.js +12 -1
- package/dist/agents/plugins/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/codex.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/codex.plugin.js +40 -4
- package/dist/agents/plugins/codex.plugin.js.map +1 -1
- package/dist/agents/plugins/gemini.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/gemini.plugin.js +50 -5
- package/dist/agents/plugins/gemini.plugin.js.map +1 -1
- package/dist/agents/registry.d.ts +15 -2
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +30 -6
- package/dist/agents/registry.js.map +1 -1
- package/dist/analytics/aggregation/adapters/claude.adapter.d.ts +37 -0
- package/dist/analytics/aggregation/adapters/claude.adapter.d.ts.map +1 -0
- package/dist/analytics/aggregation/adapters/claude.adapter.js +471 -0
- package/dist/analytics/aggregation/adapters/claude.adapter.js.map +1 -0
- package/dist/analytics/aggregation/adapters/codex.adapter.d.ts +25 -0
- package/dist/analytics/aggregation/adapters/codex.adapter.d.ts.map +1 -0
- package/dist/analytics/aggregation/adapters/codex.adapter.js +376 -0
- package/dist/analytics/aggregation/adapters/codex.adapter.js.map +1 -0
- package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts +28 -0
- package/dist/analytics/aggregation/adapters/gemini.adapter.d.ts.map +1 -0
- package/dist/analytics/aggregation/adapters/gemini.adapter.js +320 -0
- package/dist/analytics/aggregation/adapters/gemini.adapter.js.map +1 -0
- package/dist/analytics/aggregation/adapters/index.d.ts +7 -0
- package/dist/analytics/aggregation/adapters/index.d.ts.map +1 -0
- package/dist/analytics/aggregation/adapters/index.js +7 -0
- package/dist/analytics/aggregation/adapters/index.js.map +1 -0
- package/dist/analytics/aggregation/aggregator.d.ts +49 -0
- package/dist/analytics/aggregation/aggregator.d.ts.map +1 -0
- package/dist/analytics/aggregation/aggregator.js +239 -0
- package/dist/analytics/aggregation/aggregator.js.map +1 -0
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts +63 -0
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js +58 -0
- package/dist/analytics/aggregation/core/BaseAnalyticsAdapter.js.map +1 -0
- package/dist/analytics/aggregation/core/adapter.interface.d.ts +65 -0
- package/dist/analytics/aggregation/core/adapter.interface.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/adapter.interface.js +9 -0
- package/dist/analytics/aggregation/core/adapter.interface.js.map +1 -0
- package/dist/analytics/aggregation/core/aggregation-utils.d.ts +66 -0
- package/dist/analytics/aggregation/core/aggregation-utils.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/aggregation-utils.js +83 -0
- package/dist/analytics/aggregation/core/aggregation-utils.js.map +1 -0
- package/dist/analytics/aggregation/core/discovery.d.ts +40 -0
- package/dist/analytics/aggregation/core/discovery.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/discovery.js +132 -0
- package/dist/analytics/aggregation/core/discovery.js.map +1 -0
- package/dist/analytics/aggregation/core/file-utils.d.ts +23 -0
- package/dist/analytics/aggregation/core/file-utils.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/file-utils.js +208 -0
- package/dist/analytics/aggregation/core/file-utils.js.map +1 -0
- package/dist/analytics/aggregation/core/index.d.ts +11 -0
- package/dist/analytics/aggregation/core/index.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/index.js +11 -0
- package/dist/analytics/aggregation/core/index.js.map +1 -0
- package/dist/analytics/aggregation/core/project-mapping.d.ts +50 -0
- package/dist/analytics/aggregation/core/project-mapping.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/project-mapping.js +102 -0
- package/dist/analytics/aggregation/core/project-mapping.js.map +1 -0
- package/dist/analytics/aggregation/core/streaming.d.ts +26 -0
- package/dist/analytics/aggregation/core/streaming.d.ts.map +1 -0
- package/dist/analytics/aggregation/core/streaming.js +58 -0
- package/dist/analytics/aggregation/core/streaming.js.map +1 -0
- package/dist/analytics/aggregation/index.d.ts +8 -0
- package/dist/analytics/aggregation/index.d.ts.map +1 -0
- package/dist/analytics/aggregation/index.js +8 -0
- package/dist/analytics/aggregation/index.js.map +1 -0
- package/dist/analytics/aggregation/types.d.ts +258 -0
- package/dist/analytics/aggregation/types.d.ts.map +1 -0
- package/dist/analytics/aggregation/types.js +8 -0
- package/dist/analytics/aggregation/types.js.map +1 -0
- package/dist/analytics/config.d.ts +1 -0
- package/dist/analytics/config.d.ts.map +1 -1
- package/dist/analytics/config.js +20 -1
- package/dist/analytics/config.js.map +1 -1
- package/dist/analytics/index.d.ts +0 -9
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +14 -48
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/plugins/api-metrics.plugin.d.ts +4 -1
- package/dist/analytics/plugins/api-metrics.plugin.d.ts.map +1 -1
- package/dist/analytics/plugins/api-metrics.plugin.js +6 -22
- package/dist/analytics/plugins/api-metrics.plugin.js.map +1 -1
- package/dist/analytics/plugins/model-metrics.plugin.d.ts +4 -1
- package/dist/analytics/plugins/model-metrics.plugin.d.ts.map +1 -1
- package/dist/analytics/plugins/model-metrics.plugin.js +7 -17
- package/dist/analytics/plugins/model-metrics.plugin.js.map +1 -1
- package/dist/analytics/plugins/provider-metrics.plugin.d.ts +4 -1
- package/dist/analytics/plugins/provider-metrics.plugin.d.ts.map +1 -1
- package/dist/analytics/plugins/provider-metrics.plugin.js +7 -22
- package/dist/analytics/plugins/provider-metrics.plugin.js.map +1 -1
- package/dist/analytics/plugins/types.d.ts +0 -2
- package/dist/analytics/plugins/types.d.ts.map +1 -1
- package/dist/analytics/plugins/types.js.map +1 -1
- package/dist/analytics/session.d.ts +2 -2
- package/dist/analytics/session.d.ts.map +1 -1
- package/dist/analytics/session.js +3 -3
- package/dist/analytics/session.js.map +1 -1
- package/dist/analytics/types.d.ts +1 -1
- package/dist/analytics/types.d.ts.map +1 -1
- package/dist/cli/commands/analytics.d.ts.map +1 -1
- package/dist/cli/commands/analytics.js +512 -252
- package/dist/cli/commands/analytics.js.map +1 -1
- package/dist/cli/commands/setup.js +70 -1
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/utils/codemie-proxy.d.ts.map +1 -1
- package/dist/utils/codemie-proxy.js +16 -3
- package/dist/utils/codemie-proxy.js.map +1 -1
- package/dist/utils/proxy/http-client.d.ts.map +1 -1
- package/dist/utils/proxy/http-client.js +8 -2
- package/dist/utils/proxy/http-client.js.map +1 -1
- package/dist/utils/proxy/interceptors.d.ts.map +1 -1
- package/dist/utils/proxy/interceptors.js +4 -15
- package/dist/utils/proxy/interceptors.js.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../../src/analytics/aggregation/aggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Analytics Adapter
|
|
3
|
+
*
|
|
4
|
+
* Provides common functionality for all agent analytics adapters.
|
|
5
|
+
* Implements the AgentAnalyticsAdapter interface with shared logic.
|
|
6
|
+
* Subclasses provide agent-specific session discovery and extraction.
|
|
7
|
+
*/
|
|
8
|
+
import { AgentAnalyticsAdapter, AdapterMetadata } from './adapter.interface.js';
|
|
9
|
+
import { SessionQueryOptions, SessionDescriptor, CodemieSession, CodemieMessage, CodemieToolCall, CodemieFileModification } from '../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Base Analytics Adapter
|
|
12
|
+
*
|
|
13
|
+
* Provides common functionality for all agent analytics adapters.
|
|
14
|
+
* Implements the AgentAnalyticsAdapter interface with shared logic.
|
|
15
|
+
* Subclasses provide agent-specific session discovery and extraction.
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class BaseAnalyticsAdapter implements AgentAnalyticsAdapter {
|
|
18
|
+
agentName: string;
|
|
19
|
+
displayName: string;
|
|
20
|
+
version: string;
|
|
21
|
+
protected homePath: string;
|
|
22
|
+
protected sessionsPath: string;
|
|
23
|
+
/**
|
|
24
|
+
* Constructor - Extracts metadata for all adapters
|
|
25
|
+
*/
|
|
26
|
+
constructor(metadata: AdapterMetadata);
|
|
27
|
+
/**
|
|
28
|
+
* Validate that the adapter's data source exists
|
|
29
|
+
* Implementation provided - works for all adapters
|
|
30
|
+
*/
|
|
31
|
+
validateSource(): Promise<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* Apply pagination to session descriptors
|
|
34
|
+
* Shared helper for subclasses to use in findSessions()
|
|
35
|
+
*/
|
|
36
|
+
protected applyPagination(descriptors: SessionDescriptor[], options?: SessionQueryOptions): SessionDescriptor[];
|
|
37
|
+
/**
|
|
38
|
+
* Find all sessions - MUST be implemented by subclass
|
|
39
|
+
* Each agent stores sessions differently
|
|
40
|
+
*/
|
|
41
|
+
abstract findSessions(options?: SessionQueryOptions): Promise<SessionDescriptor[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Extract full session - MUST be implemented by subclass
|
|
44
|
+
* Each agent has different session format
|
|
45
|
+
*/
|
|
46
|
+
abstract extractSession(descriptor: SessionDescriptor): Promise<CodemieSession>;
|
|
47
|
+
/**
|
|
48
|
+
* Extract messages - MUST be implemented by subclass
|
|
49
|
+
* Each agent has different message format
|
|
50
|
+
*/
|
|
51
|
+
abstract extractMessages(descriptor: SessionDescriptor): Promise<CodemieMessage[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Extract tool calls - MUST be implemented by subclass
|
|
54
|
+
* Each agent has different tool call format
|
|
55
|
+
*/
|
|
56
|
+
abstract extractToolCalls(descriptor: SessionDescriptor): Promise<CodemieToolCall[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Extract file modifications - MUST be implemented by subclass
|
|
59
|
+
* Each agent has different tool naming
|
|
60
|
+
*/
|
|
61
|
+
abstract extractFileModifications(descriptor: SessionDescriptor): Promise<CodemieFileModification[]>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=BaseAnalyticsAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseAnalyticsAdapter.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/BaseAnalyticsAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,qBAAqB,EACrB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB;;;;;;GAMG;AACH,8BAAsB,oBAAqB,YAAW,qBAAqB;IAEzE,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,SAAW;IAGlB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAE/B;;OAEG;gBACS,QAAQ,EAAE,eAAe;IASrC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAKxC;;;OAGG;IACH,SAAS,CAAC,eAAe,CACvB,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,iBAAiB,EAAE;IAgBtB;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAElF;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAE/E;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAElF;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAEpF;;;OAGG;IACH,QAAQ,CAAC,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CACrG"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Analytics Adapter
|
|
3
|
+
*
|
|
4
|
+
* Provides common functionality for all agent analytics adapters.
|
|
5
|
+
* Implements the AgentAnalyticsAdapter interface with shared logic.
|
|
6
|
+
* Subclasses provide agent-specific session discovery and extraction.
|
|
7
|
+
*/
|
|
8
|
+
import { existsSync } from 'node:fs';
|
|
9
|
+
import { resolvePath } from './discovery.js';
|
|
10
|
+
/**
|
|
11
|
+
* Base Analytics Adapter
|
|
12
|
+
*
|
|
13
|
+
* Provides common functionality for all agent analytics adapters.
|
|
14
|
+
* Implements the AgentAnalyticsAdapter interface with shared logic.
|
|
15
|
+
* Subclasses provide agent-specific session discovery and extraction.
|
|
16
|
+
*/
|
|
17
|
+
export class BaseAnalyticsAdapter {
|
|
18
|
+
// === Interface Properties ===
|
|
19
|
+
agentName;
|
|
20
|
+
displayName;
|
|
21
|
+
version = '1.0.0';
|
|
22
|
+
// === Protected Properties ===
|
|
23
|
+
homePath;
|
|
24
|
+
sessionsPath;
|
|
25
|
+
/**
|
|
26
|
+
* Constructor - Extracts metadata for all adapters
|
|
27
|
+
*/
|
|
28
|
+
constructor(metadata) {
|
|
29
|
+
this.agentName = metadata.name;
|
|
30
|
+
this.displayName = metadata.displayName;
|
|
31
|
+
// Extract paths from metadata
|
|
32
|
+
this.homePath = metadata.dataPaths?.home || `~/.${metadata.name}`;
|
|
33
|
+
this.sessionsPath = metadata.dataPaths?.sessions || 'sessions';
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Validate that the adapter's data source exists
|
|
37
|
+
* Implementation provided - works for all adapters
|
|
38
|
+
*/
|
|
39
|
+
async validateSource() {
|
|
40
|
+
const baseDir = resolvePath(this.homePath);
|
|
41
|
+
return existsSync(baseDir);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Apply pagination to session descriptors
|
|
45
|
+
* Shared helper for subclasses to use in findSessions()
|
|
46
|
+
*/
|
|
47
|
+
applyPagination(descriptors, options) {
|
|
48
|
+
let results = descriptors;
|
|
49
|
+
if (options?.offset) {
|
|
50
|
+
results = results.slice(options.offset);
|
|
51
|
+
}
|
|
52
|
+
if (options?.limit) {
|
|
53
|
+
results = results.slice(0, options.limit);
|
|
54
|
+
}
|
|
55
|
+
return results;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=BaseAnalyticsAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseAnalyticsAdapter.js","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/BaseAnalyticsAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAU7C;;;;;;GAMG;AACH,MAAM,OAAgB,oBAAoB;IACxC,+BAA+B;IAC/B,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,OAAO,GAAG,OAAO,CAAC;IAElB,+BAA+B;IACrB,QAAQ,CAAS;IACjB,YAAY,CAAS;IAE/B;;OAEG;IACH,YAAY,QAAyB;QACnC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QAExC,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,IAAI,UAAU,CAAC;IACjE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACO,eAAe,CACvB,WAAgC,EAChC,OAA6B;QAE7B,IAAI,OAAO,GAAG,WAAW,CAAC;QAE1B,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CAiCF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Analytics Adapter Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract that all agent-specific analytics adapters must implement.
|
|
5
|
+
* This interface enables standardized extraction of analytics data from different
|
|
6
|
+
* agent log formats (JSON, JSONL, etc.).
|
|
7
|
+
*/
|
|
8
|
+
import { SessionQueryOptions, SessionDescriptor, CodemieSession, CodemieMessage, CodemieToolCall, CodemieFileModification } from '../types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Base interface for agent analytics adapters
|
|
11
|
+
*/
|
|
12
|
+
export interface AgentAnalyticsAdapter {
|
|
13
|
+
agentName: string;
|
|
14
|
+
displayName: string;
|
|
15
|
+
version: string;
|
|
16
|
+
/**
|
|
17
|
+
* Find all sessions matching the query criteria
|
|
18
|
+
* @param options Query options for filtering sessions
|
|
19
|
+
* @returns Array of session descriptors (lightweight metadata)
|
|
20
|
+
*/
|
|
21
|
+
findSessions(options?: SessionQueryOptions): Promise<SessionDescriptor[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Extract full session details from a session descriptor
|
|
24
|
+
* @param descriptor Session descriptor from findSessions()
|
|
25
|
+
* @returns Complete session with aggregated statistics
|
|
26
|
+
*/
|
|
27
|
+
extractSession(descriptor: SessionDescriptor): Promise<CodemieSession>;
|
|
28
|
+
/**
|
|
29
|
+
* Extract all messages from a session
|
|
30
|
+
* @param descriptor Session descriptor
|
|
31
|
+
* @returns Array of messages
|
|
32
|
+
*/
|
|
33
|
+
extractMessages(descriptor: SessionDescriptor): Promise<CodemieMessage[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Extract all tool calls from a session
|
|
36
|
+
* @param descriptor Session descriptor
|
|
37
|
+
* @returns Array of tool calls
|
|
38
|
+
*/
|
|
39
|
+
extractToolCalls(descriptor: SessionDescriptor): Promise<CodemieToolCall[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Extract all file modifications from a session
|
|
42
|
+
* @param descriptor Session descriptor
|
|
43
|
+
* @returns Array of file modifications
|
|
44
|
+
*/
|
|
45
|
+
extractFileModifications(descriptor: SessionDescriptor): Promise<CodemieFileModification[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Validate that the adapter's data source is accessible
|
|
48
|
+
* @returns true if data source exists and is readable
|
|
49
|
+
*/
|
|
50
|
+
validateSource(): Promise<boolean>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Metadata passed from plugin to adapter constructor
|
|
54
|
+
*/
|
|
55
|
+
export interface AdapterMetadata {
|
|
56
|
+
name: string;
|
|
57
|
+
displayName: string;
|
|
58
|
+
dataPaths?: {
|
|
59
|
+
home: string;
|
|
60
|
+
sessions?: string;
|
|
61
|
+
settings?: string;
|
|
62
|
+
cache?: string;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=adapter.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.interface.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/adapter.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAEpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAGhB;;;;OAIG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAG1E;;;;OAIG;IACH,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEvE;;;;OAIG;IACH,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAE1E;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE5E;;;;OAIG;IACH,wBAAwB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAG5F;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Analytics Adapter Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract that all agent-specific analytics adapters must implement.
|
|
5
|
+
* This interface enables standardized extraction of analytics data from different
|
|
6
|
+
* agent log formats (JSON, JSONL, etc.).
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=adapter.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.interface.js","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/adapter.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aggregation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared utility functions for aggregating file modification statistics.
|
|
5
|
+
* Used by all analytics adapters to calculate consistent statistics.
|
|
6
|
+
*/
|
|
7
|
+
import { CodemieFileModification } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Aggregate file modifications by language
|
|
10
|
+
*/
|
|
11
|
+
export declare function aggregateByLanguage(modifications: CodemieFileModification[]): Record<string, {
|
|
12
|
+
filesCreated: number;
|
|
13
|
+
filesModified: number;
|
|
14
|
+
linesAdded: number;
|
|
15
|
+
linesRemoved: number;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Aggregate file modifications by format
|
|
19
|
+
*/
|
|
20
|
+
export declare function aggregateByFormat(modifications: CodemieFileModification[]): Record<string, {
|
|
21
|
+
filesCreated: number;
|
|
22
|
+
filesModified: number;
|
|
23
|
+
linesAdded: number;
|
|
24
|
+
linesRemoved: number;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Aggregate file modifications by tool
|
|
28
|
+
*/
|
|
29
|
+
export declare function aggregateByTool(modifications: CodemieFileModification[]): Record<string, {
|
|
30
|
+
count: number;
|
|
31
|
+
linesAdded: number;
|
|
32
|
+
linesRemoved: number;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Calculate file statistics from modifications
|
|
36
|
+
*/
|
|
37
|
+
export declare function calculateFileStats(modifications: CodemieFileModification[]): {
|
|
38
|
+
filesCreated: number;
|
|
39
|
+
filesModified: number;
|
|
40
|
+
filesDeleted: number;
|
|
41
|
+
totalLinesAdded: number;
|
|
42
|
+
totalLinesRemoved: number;
|
|
43
|
+
totalLinesModified: number;
|
|
44
|
+
byLanguage: Record<string, {
|
|
45
|
+
filesCreated: number;
|
|
46
|
+
filesModified: number;
|
|
47
|
+
linesAdded: number;
|
|
48
|
+
linesRemoved: number;
|
|
49
|
+
}>;
|
|
50
|
+
byFormat: Record<string, {
|
|
51
|
+
filesCreated: number;
|
|
52
|
+
filesModified: number;
|
|
53
|
+
linesAdded: number;
|
|
54
|
+
linesRemoved: number;
|
|
55
|
+
}>;
|
|
56
|
+
byTool: Record<string, {
|
|
57
|
+
count: number;
|
|
58
|
+
linesAdded: number;
|
|
59
|
+
linesRemoved: number;
|
|
60
|
+
}>;
|
|
61
|
+
} | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Calculate duration between two dates
|
|
64
|
+
*/
|
|
65
|
+
export declare function calculateDuration(startTime: Date | string, endTime: Date | string): number;
|
|
66
|
+
//# sourceMappingURL=aggregation-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregation-utils.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/aggregation-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAwCtD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;IAC5F,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAED;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;IAC1F,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAED;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;IACxF,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAmBD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,uBAAuB,EAAE;;;;;;;;sBAnD3D,MAAM;uBACL,MAAM;oBACT,MAAM;sBACJ,MAAM;;;sBASN,MAAM;uBACL,MAAM;oBACT,MAAM;sBACJ,MAAM;;;eASb,MAAM;oBACD,MAAM;sBACJ,MAAM;;cAyCrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAI1F"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aggregation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared utility functions for aggregating file modification statistics.
|
|
5
|
+
* Used by all analytics adapters to calculate consistent statistics.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Aggregate file modifications by a specific key
|
|
9
|
+
*/
|
|
10
|
+
function aggregateByKey(modifications, keyExtractor) {
|
|
11
|
+
const result = {};
|
|
12
|
+
for (const mod of modifications) {
|
|
13
|
+
const key = keyExtractor(mod) || 'other';
|
|
14
|
+
if (!result[key]) {
|
|
15
|
+
result[key] = { filesCreated: 0, filesModified: 0, linesAdded: 0, linesRemoved: 0 };
|
|
16
|
+
}
|
|
17
|
+
if (mod.wasNewFile) {
|
|
18
|
+
result[key].filesCreated++;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
result[key].filesModified++;
|
|
22
|
+
}
|
|
23
|
+
result[key].linesAdded += mod.linesAdded;
|
|
24
|
+
result[key].linesRemoved += mod.linesRemoved;
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Aggregate file modifications by language
|
|
30
|
+
*/
|
|
31
|
+
export function aggregateByLanguage(modifications) {
|
|
32
|
+
return aggregateByKey(modifications, mod => mod.language);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Aggregate file modifications by format
|
|
36
|
+
*/
|
|
37
|
+
export function aggregateByFormat(modifications) {
|
|
38
|
+
return aggregateByKey(modifications, mod => mod.format);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Aggregate file modifications by tool
|
|
42
|
+
*/
|
|
43
|
+
export function aggregateByTool(modifications) {
|
|
44
|
+
const result = {};
|
|
45
|
+
for (const mod of modifications) {
|
|
46
|
+
const key = mod.toolName;
|
|
47
|
+
if (!result[key]) {
|
|
48
|
+
result[key] = { count: 0, linesAdded: 0, linesRemoved: 0 };
|
|
49
|
+
}
|
|
50
|
+
result[key].count++;
|
|
51
|
+
result[key].linesAdded += mod.linesAdded;
|
|
52
|
+
result[key].linesRemoved += mod.linesRemoved;
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Calculate file statistics from modifications
|
|
58
|
+
*/
|
|
59
|
+
export function calculateFileStats(modifications) {
|
|
60
|
+
if (modifications.length === 0) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
filesCreated: modifications.filter(fm => fm.wasNewFile).length,
|
|
65
|
+
filesModified: modifications.filter(fm => !fm.wasNewFile && fm.operation !== 'delete').length,
|
|
66
|
+
filesDeleted: modifications.filter(fm => fm.operation === 'delete').length,
|
|
67
|
+
totalLinesAdded: modifications.reduce((sum, fm) => sum + fm.linesAdded, 0),
|
|
68
|
+
totalLinesRemoved: modifications.reduce((sum, fm) => sum + fm.linesRemoved, 0),
|
|
69
|
+
totalLinesModified: modifications.reduce((sum, fm) => sum + (fm.linesModified || 0), 0),
|
|
70
|
+
byLanguage: aggregateByLanguage(modifications),
|
|
71
|
+
byFormat: aggregateByFormat(modifications),
|
|
72
|
+
byTool: aggregateByTool(modifications)
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Calculate duration between two dates
|
|
77
|
+
*/
|
|
78
|
+
export function calculateDuration(startTime, endTime) {
|
|
79
|
+
const start = typeof startTime === 'string' ? new Date(startTime) : startTime;
|
|
80
|
+
const end = typeof endTime === 'string' ? new Date(endTime) : endTime;
|
|
81
|
+
return end.getTime() - start.getTime();
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=aggregation-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregation-utils.js","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/aggregation-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Discovery Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for discovering session files across different agent formats
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Resolve path with home directory expansion
|
|
8
|
+
* @param path Path to resolve (supports ~ expansion)
|
|
9
|
+
* @returns Absolute resolved path
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolvePath(path: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Find all files matching a glob pattern (simplified)
|
|
14
|
+
* @param dir Directory to search
|
|
15
|
+
* @param pattern File pattern (e.g., "*.json", "session-*.jsonl")
|
|
16
|
+
* @returns Array of absolute file paths
|
|
17
|
+
*/
|
|
18
|
+
export declare function findFiles(dir: string, pattern: string | RegExp): Promise<string[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Find directories matching a pattern
|
|
21
|
+
* @param baseDir Base directory to search
|
|
22
|
+
* @param pattern Directory name pattern
|
|
23
|
+
* @returns Array of absolute directory paths
|
|
24
|
+
*/
|
|
25
|
+
export declare function findDirectories(baseDir: string, pattern?: string | RegExp): Promise<string[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Get file modification time
|
|
28
|
+
* @param filePath Path to file
|
|
29
|
+
* @returns Date of last modification or null if file doesn't exist
|
|
30
|
+
*/
|
|
31
|
+
export declare function getFileModTime(filePath: string): Promise<Date | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Filter files by date range
|
|
34
|
+
* @param filePaths Array of file paths
|
|
35
|
+
* @param dateFrom Start date (inclusive)
|
|
36
|
+
* @param dateTo End date (inclusive)
|
|
37
|
+
* @returns Filtered array of file paths
|
|
38
|
+
*/
|
|
39
|
+
export declare function filterFilesByDate(filePaths: string[], dateFrom?: Date, dateTo?: Date): Promise<string[]>;
|
|
40
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmCxF;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA+BnG;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAO3E;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,CAAC,EAAE,IAAI,EACf,MAAM,CAAC,EAAE,IAAI,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Discovery Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for discovering session files across different agent formats
|
|
5
|
+
*/
|
|
6
|
+
import { readdir, stat } from 'node:fs/promises';
|
|
7
|
+
import { join, resolve } from 'node:path';
|
|
8
|
+
import { homedir } from 'node:os';
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
/**
|
|
11
|
+
* Resolve path with home directory expansion
|
|
12
|
+
* @param path Path to resolve (supports ~ expansion)
|
|
13
|
+
* @returns Absolute resolved path
|
|
14
|
+
*/
|
|
15
|
+
export function resolvePath(path) {
|
|
16
|
+
if (path.startsWith('~/')) {
|
|
17
|
+
return join(homedir(), path.slice(2));
|
|
18
|
+
}
|
|
19
|
+
return resolve(path);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Find all files matching a glob pattern (simplified)
|
|
23
|
+
* @param dir Directory to search
|
|
24
|
+
* @param pattern File pattern (e.g., "*.json", "session-*.jsonl")
|
|
25
|
+
* @returns Array of absolute file paths
|
|
26
|
+
*/
|
|
27
|
+
export async function findFiles(dir, pattern) {
|
|
28
|
+
const results = [];
|
|
29
|
+
if (!existsSync(dir)) {
|
|
30
|
+
return results;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
34
|
+
for (const entry of entries) {
|
|
35
|
+
const fullPath = join(dir, entry.name);
|
|
36
|
+
if (entry.isDirectory()) {
|
|
37
|
+
// Recursively search subdirectories
|
|
38
|
+
const subResults = await findFiles(fullPath, pattern);
|
|
39
|
+
results.push(...subResults);
|
|
40
|
+
}
|
|
41
|
+
else if (entry.isFile()) {
|
|
42
|
+
// Check if file matches pattern
|
|
43
|
+
if (typeof pattern === 'string') {
|
|
44
|
+
// Simple glob pattern support
|
|
45
|
+
const regex = new RegExp('^' + pattern.replace(/\*/g, '.*').replace(/\?/g, '.') + '$');
|
|
46
|
+
if (regex.test(entry.name)) {
|
|
47
|
+
results.push(fullPath);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (pattern.test(entry.name)) {
|
|
51
|
+
results.push(fullPath);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
console.error(`Error scanning directory ${dir}: ${error}`);
|
|
58
|
+
}
|
|
59
|
+
return results;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Find directories matching a pattern
|
|
63
|
+
* @param baseDir Base directory to search
|
|
64
|
+
* @param pattern Directory name pattern
|
|
65
|
+
* @returns Array of absolute directory paths
|
|
66
|
+
*/
|
|
67
|
+
export async function findDirectories(baseDir, pattern) {
|
|
68
|
+
const results = [];
|
|
69
|
+
if (!existsSync(baseDir)) {
|
|
70
|
+
return results;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const entries = await readdir(baseDir, { withFileTypes: true });
|
|
74
|
+
for (const entry of entries) {
|
|
75
|
+
if (entry.isDirectory()) {
|
|
76
|
+
const fullPath = join(baseDir, entry.name);
|
|
77
|
+
if (!pattern) {
|
|
78
|
+
results.push(fullPath);
|
|
79
|
+
}
|
|
80
|
+
else if (typeof pattern === 'string') {
|
|
81
|
+
const regex = new RegExp('^' + pattern.replace(/\*/g, '.*') + '$');
|
|
82
|
+
if (regex.test(entry.name)) {
|
|
83
|
+
results.push(fullPath);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else if (pattern.test(entry.name)) {
|
|
87
|
+
results.push(fullPath);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
console.error(`Error scanning directory ${baseDir}: ${error}`);
|
|
94
|
+
}
|
|
95
|
+
return results;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get file modification time
|
|
99
|
+
* @param filePath Path to file
|
|
100
|
+
* @returns Date of last modification or null if file doesn't exist
|
|
101
|
+
*/
|
|
102
|
+
export async function getFileModTime(filePath) {
|
|
103
|
+
try {
|
|
104
|
+
const stats = await stat(filePath);
|
|
105
|
+
return stats.mtime;
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Filter files by date range
|
|
113
|
+
* @param filePaths Array of file paths
|
|
114
|
+
* @param dateFrom Start date (inclusive)
|
|
115
|
+
* @param dateTo End date (inclusive)
|
|
116
|
+
* @returns Filtered array of file paths
|
|
117
|
+
*/
|
|
118
|
+
export async function filterFilesByDate(filePaths, dateFrom, dateTo) {
|
|
119
|
+
const results = [];
|
|
120
|
+
for (const filePath of filePaths) {
|
|
121
|
+
const modTime = await getFileModTime(filePath);
|
|
122
|
+
if (!modTime)
|
|
123
|
+
continue;
|
|
124
|
+
if (dateFrom && modTime < dateFrom)
|
|
125
|
+
continue;
|
|
126
|
+
if (dateTo && modTime > dateTo)
|
|
127
|
+
continue;
|
|
128
|
+
results.push(filePath);
|
|
129
|
+
}
|
|
130
|
+
return results;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Utilities for Analytics
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for detecting file language and format categories.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Detect programming language from file extension
|
|
8
|
+
*/
|
|
9
|
+
export declare function detectLanguage(filePath: string): string | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Detect file format category
|
|
12
|
+
*/
|
|
13
|
+
export declare function detectFormat(filePath: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Count lines in a string
|
|
16
|
+
* Uses split('\n').length for consistency
|
|
17
|
+
*/
|
|
18
|
+
export declare function countLines(content: string): number;
|
|
19
|
+
/**
|
|
20
|
+
* Calculate byte size of string content
|
|
21
|
+
*/
|
|
22
|
+
export declare function calculateByteSize(content: string): number;
|
|
23
|
+
//# sourceMappingURL=file-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../../../src/analytics/aggregation/core/file-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4GnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyGrD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD"}
|