@benchcubed/today-cli 1.0.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.
- package/README.md +296 -0
- package/dist/ai/bedrock-client.d.ts +1 -0
- package/dist/ai/bedrock-client.d.ts.map +1 -0
- package/dist/ai/bedrock-client.js +2 -0
- package/dist/ai/bedrock-client.js.map +1 -0
- package/dist/ai/knowledge-processor.d.ts +1 -0
- package/dist/ai/knowledge-processor.d.ts.map +1 -0
- package/dist/ai/knowledge-processor.js +2 -0
- package/dist/ai/knowledge-processor.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +70 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/ask.d.ts +3 -0
- package/dist/commands/ask.d.ts.map +1 -0
- package/dist/commands/ask.js +217 -0
- package/dist/commands/ask.js.map +1 -0
- package/dist/commands/audit.d.ts +3 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +153 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +114 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +72 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/embeddings.d.ts +3 -0
- package/dist/commands/embeddings.d.ts.map +1 -0
- package/dist/commands/embeddings.js +118 -0
- package/dist/commands/embeddings.js.map +1 -0
- package/dist/commands/experts.d.ts +3 -0
- package/dist/commands/experts.d.ts.map +1 -0
- package/dist/commands/experts.js +129 -0
- package/dist/commands/experts.js.map +1 -0
- package/dist/commands/export-import.d.ts +4 -0
- package/dist/commands/export-import.d.ts.map +1 -0
- package/dist/commands/export-import.js +285 -0
- package/dist/commands/export-import.js.map +1 -0
- package/dist/commands/git.d.ts +4 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +274 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/impact.d.ts +3 -0
- package/dist/commands/impact.d.ts.map +1 -0
- package/dist/commands/impact.js +121 -0
- package/dist/commands/impact.js.map +1 -0
- package/dist/commands/insights.d.ts +3 -0
- package/dist/commands/insights.d.ts.map +1 -0
- package/dist/commands/insights.js +113 -0
- package/dist/commands/insights.js.map +1 -0
- package/dist/commands/learned.d.ts +3 -0
- package/dist/commands/learned.d.ts.map +1 -0
- package/dist/commands/learned.js +355 -0
- package/dist/commands/learned.js.map +1 -0
- package/dist/commands/onboard.d.ts +3 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +141 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/recent.d.ts +3 -0
- package/dist/commands/recent.d.ts.map +1 -0
- package/dist/commands/recent.js +83 -0
- package/dist/commands/recent.js.map +1 -0
- package/dist/commands/secrets.d.ts +3 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +203 -0
- package/dist/commands/secrets.js.map +1 -0
- package/dist/commands/stats.d.ts +3 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +120 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/config/index.d.ts +12 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +46 -0
- package/dist/config/index.js.map +1 -0
- package/dist/database/migrations.d.ts +13 -0
- package/dist/database/migrations.d.ts.map +1 -0
- package/dist/database/migrations.js +190 -0
- package/dist/database/migrations.js.map +1 -0
- package/dist/database/postgresql.d.ts +92 -0
- package/dist/database/postgresql.d.ts.map +1 -0
- package/dist/database/postgresql.js +382 -0
- package/dist/database/postgresql.js.map +1 -0
- package/dist/database/sqlite.d.ts +54 -0
- package/dist/database/sqlite.d.ts.map +1 -0
- package/dist/database/sqlite.js +337 -0
- package/dist/database/sqlite.js.map +1 -0
- package/dist/lambda/admin.d.ts +3 -0
- package/dist/lambda/admin.d.ts.map +1 -0
- package/dist/lambda/admin.js +818 -0
- package/dist/lambda/admin.js.map +1 -0
- package/dist/lambda/ai-services.d.ts +6 -0
- package/dist/lambda/ai-services.d.ts.map +1 -0
- package/dist/lambda/ai-services.js +472 -0
- package/dist/lambda/ai-services.js.map +1 -0
- package/dist/lambda/analytics.d.ts +3 -0
- package/dist/lambda/analytics.d.ts.map +1 -0
- package/dist/lambda/analytics.js +481 -0
- package/dist/lambda/analytics.js.map +1 -0
- package/dist/lambda/api-router.d.ts +3 -0
- package/dist/lambda/api-router.d.ts.map +1 -0
- package/dist/lambda/api-router.js +162 -0
- package/dist/lambda/api-router.js.map +1 -0
- package/dist/lambda/custom-topics.d.ts +3 -0
- package/dist/lambda/custom-topics.d.ts.map +1 -0
- package/dist/lambda/custom-topics.js +425 -0
- package/dist/lambda/custom-topics.js.map +1 -0
- package/dist/lambda/graph-builder.d.ts +3 -0
- package/dist/lambda/graph-builder.d.ts.map +1 -0
- package/dist/lambda/graph-builder.js +442 -0
- package/dist/lambda/graph-builder.js.map +1 -0
- package/dist/lambda/knowledge-ai.d.ts +3 -0
- package/dist/lambda/knowledge-ai.d.ts.map +1 -0
- package/dist/lambda/knowledge-ai.js +849 -0
- package/dist/lambda/knowledge-ai.js.map +1 -0
- package/dist/lambda/post-confirmation.d.ts +8 -0
- package/dist/lambda/post-confirmation.d.ts.map +1 -0
- package/dist/lambda/post-confirmation.js +92 -0
- package/dist/lambda/post-confirmation.js.map +1 -0
- package/dist/lambda/teams.d.ts +3 -0
- package/dist/lambda/teams.d.ts.map +1 -0
- package/dist/lambda/teams.js +568 -0
- package/dist/lambda/teams.js.map +1 -0
- package/dist/lib/export-helpers.d.ts +5 -0
- package/dist/lib/export-helpers.d.ts.map +1 -0
- package/dist/lib/export-helpers.js +137 -0
- package/dist/lib/export-helpers.js.map +1 -0
- package/dist/lib/import-helpers.d.ts +5 -0
- package/dist/lib/import-helpers.d.ts.map +1 -0
- package/dist/lib/import-helpers.js +185 -0
- package/dist/lib/import-helpers.js.map +1 -0
- package/dist/lib/insights-helpers.d.ts +123 -0
- package/dist/lib/insights-helpers.d.ts.map +1 -0
- package/dist/lib/insights-helpers.js +374 -0
- package/dist/lib/insights-helpers.js.map +1 -0
- package/dist/lib/search-helpers.d.ts +4 -0
- package/dist/lib/search-helpers.d.ts.map +1 -0
- package/dist/lib/search-helpers.js +124 -0
- package/dist/lib/search-helpers.js.map +1 -0
- package/dist/lib/secret-helpers.d.ts +2 -0
- package/dist/lib/secret-helpers.d.ts.map +1 -0
- package/dist/lib/secret-helpers.js +85 -0
- package/dist/lib/secret-helpers.js.map +1 -0
- package/dist/lib/stats-helpers.d.ts +41 -0
- package/dist/lib/stats-helpers.d.ts.map +1 -0
- package/dist/lib/stats-helpers.js +263 -0
- package/dist/lib/stats-helpers.js.map +1 -0
- package/dist/services/aws-api.d.ts +81 -0
- package/dist/services/aws-api.d.ts.map +1 -0
- package/dist/services/aws-api.js +388 -0
- package/dist/services/aws-api.js.map +1 -0
- package/dist/services/bedrock.d.ts +83 -0
- package/dist/services/bedrock.d.ts.map +1 -0
- package/dist/services/bedrock.js +434 -0
- package/dist/services/bedrock.js.map +1 -0
- package/dist/services/commit-learnings.d.ts +25 -0
- package/dist/services/commit-learnings.d.ts.map +1 -0
- package/dist/services/commit-learnings.js +180 -0
- package/dist/services/commit-learnings.js.map +1 -0
- package/dist/services/embedding-storage.d.ts +42 -0
- package/dist/services/embedding-storage.d.ts.map +1 -0
- package/dist/services/embedding-storage.js +124 -0
- package/dist/services/embedding-storage.js.map +1 -0
- package/dist/services/expert-engine.d.ts +21 -0
- package/dist/services/expert-engine.d.ts.map +1 -0
- package/dist/services/expert-engine.js +58 -0
- package/dist/services/expert-engine.js.map +1 -0
- package/dist/services/onboarding-accelerator.d.ts +118 -0
- package/dist/services/onboarding-accelerator.d.ts.map +1 -0
- package/dist/services/onboarding-accelerator.js +403 -0
- package/dist/services/onboarding-accelerator.js.map +1 -0
- package/dist/services/secret-detection.d.ts +46 -0
- package/dist/services/secret-detection.d.ts.map +1 -0
- package/dist/services/secret-detection.js +75 -0
- package/dist/services/secret-detection.js.map +1 -0
- package/dist/services/secret-manager-simple.d.ts +51 -0
- package/dist/services/secret-manager-simple.d.ts.map +1 -0
- package/dist/services/secret-manager-simple.js +119 -0
- package/dist/services/secret-manager-simple.js.map +1 -0
- package/dist/services/secret-manager.d.ts +150 -0
- package/dist/services/secret-manager.d.ts.map +1 -0
- package/dist/services/secret-manager.js +287 -0
- package/dist/services/secret-manager.js.map +1 -0
- package/dist/services/vector-embeddings.d.ts +70 -0
- package/dist/services/vector-embeddings.d.ts.map +1 -0
- package/dist/services/vector-embeddings.js +167 -0
- package/dist/services/vector-embeddings.js.map +1 -0
- package/dist/services/vector-search.d.ts +28 -0
- package/dist/services/vector-search.d.ts.map +1 -0
- package/dist/services/vector-search.js +192 -0
- package/dist/services/vector-search.js.map +1 -0
- package/dist/types/index.d.ts +86 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/formatting.d.ts +10 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +82 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/git.d.ts +52 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +182 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/validation.d.ts +17 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +187 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-learnings.js","sourceRoot":"","sources":["../../src/services/commit-learnings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare class EmbeddingStorageService {
|
|
2
|
+
private bucketName;
|
|
3
|
+
constructor();
|
|
4
|
+
/**
|
|
5
|
+
* Store embedding vector in S3
|
|
6
|
+
* Routes through authenticated backend API
|
|
7
|
+
* @param entryId - Unique entry identifier
|
|
8
|
+
* @param teamId - Team identifier for partitioning
|
|
9
|
+
* @param embedding - Vector embedding (1024 dimensions)
|
|
10
|
+
* @returns S3 key where embedding is stored
|
|
11
|
+
*/
|
|
12
|
+
storeEmbedding(entryId: string, teamId: string, embedding: number[]): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Retrieve embedding vector from S3
|
|
15
|
+
* Routes through authenticated backend API
|
|
16
|
+
* @param entryId - Unique entry identifier
|
|
17
|
+
* @param teamId - Team identifier
|
|
18
|
+
* @returns Vector embedding or null if not found
|
|
19
|
+
*/
|
|
20
|
+
getEmbedding(entryId: string, teamId: string): Promise<number[] | null>;
|
|
21
|
+
/**
|
|
22
|
+
* Batch retrieve embeddings for multiple entries
|
|
23
|
+
* @param entries - Array of {entryId, teamId} objects
|
|
24
|
+
* @returns Map of entryId to embedding vector
|
|
25
|
+
*/
|
|
26
|
+
batchGetEmbeddings(entries: Array<{
|
|
27
|
+
entryId: string;
|
|
28
|
+
teamId: string;
|
|
29
|
+
}>): Promise<Map<string, number[]>>;
|
|
30
|
+
/**
|
|
31
|
+
* Generate S3 key for embedding storage
|
|
32
|
+
* Uses team-based partitioning for better organization
|
|
33
|
+
*/
|
|
34
|
+
private _getEmbeddingKey;
|
|
35
|
+
/**
|
|
36
|
+
* Delete embedding from S3
|
|
37
|
+
* Routes through authenticated backend API
|
|
38
|
+
*/
|
|
39
|
+
deleteEmbedding(entryId: string, teamId: string): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
export declare const embeddingStorageService: EmbeddingStorageService;
|
|
42
|
+
//# sourceMappingURL=embedding-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-storage.d.ts","sourceRoot":"","sources":["../../src/services/embedding-storage.ts"],"names":[],"mappings":"AAMA,qBAAa,uBAAuB;IAClC,OAAO,CAAC,UAAU,CAAS;;IAM3B;;;;;;;OAOG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB3F;;;;;;OAMG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAsB7E;;;;OAIG;IACG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAyB3G;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;OAGG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBtE;AAGD,eAAO,MAAM,uBAAuB,yBAAgC,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// S3-based embedding storage service
|
|
3
|
+
// Routes through authenticated backend API
|
|
4
|
+
// Stores vector embeddings in S3 to reduce DynamoDB item size
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.embeddingStorageService = exports.EmbeddingStorageService = void 0;
|
|
7
|
+
const aws_api_1 = require("./aws-api");
|
|
8
|
+
class EmbeddingStorageService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.bucketName = process.env.EMBEDDINGS_BUCKET || `${process.env.PROJECT_NAME || 'today'}-embeddings`;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Store embedding vector in S3
|
|
14
|
+
* Routes through authenticated backend API
|
|
15
|
+
* @param entryId - Unique entry identifier
|
|
16
|
+
* @param teamId - Team identifier for partitioning
|
|
17
|
+
* @param embedding - Vector embedding (1024 dimensions)
|
|
18
|
+
* @returns S3 key where embedding is stored
|
|
19
|
+
*/
|
|
20
|
+
async storeEmbedding(entryId, teamId, embedding) {
|
|
21
|
+
try {
|
|
22
|
+
if (!aws_api_1.awsApiService.isAuthenticated()) {
|
|
23
|
+
throw new Error('Authentication required to store embeddings');
|
|
24
|
+
}
|
|
25
|
+
const response = await aws_api_1.awsApiService.callAPI('/storage/embeddings', 'POST', {
|
|
26
|
+
entryId,
|
|
27
|
+
teamId,
|
|
28
|
+
embedding
|
|
29
|
+
});
|
|
30
|
+
if (response.success && response.data && response.data.key) {
|
|
31
|
+
console.log(`Stored embedding for entry ${entryId} at s3://${this.bucketName}/${response.data.key}`);
|
|
32
|
+
return response.data.key;
|
|
33
|
+
}
|
|
34
|
+
throw new Error(response.error || 'Failed to store embedding');
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.error('Failed to store embedding in S3:', error);
|
|
38
|
+
throw new Error(`Failed to store embedding: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Retrieve embedding vector from S3
|
|
43
|
+
* Routes through authenticated backend API
|
|
44
|
+
* @param entryId - Unique entry identifier
|
|
45
|
+
* @param teamId - Team identifier
|
|
46
|
+
* @returns Vector embedding or null if not found
|
|
47
|
+
*/
|
|
48
|
+
async getEmbedding(entryId, teamId) {
|
|
49
|
+
try {
|
|
50
|
+
if (!aws_api_1.awsApiService.isAuthenticated()) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const response = await aws_api_1.awsApiService.callAPI(`/storage/embeddings?entryId=${entryId}&teamId=${teamId}`, 'GET');
|
|
54
|
+
if (response.success && response.data && response.data.embedding) {
|
|
55
|
+
return Array.isArray(response.data.embedding) ? response.data.embedding : null;
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.warn(`Failed to retrieve embedding for entry ${entryId}:`, error);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Batch retrieve embeddings for multiple entries
|
|
66
|
+
* @param entries - Array of {entryId, teamId} objects
|
|
67
|
+
* @returns Map of entryId to embedding vector
|
|
68
|
+
*/
|
|
69
|
+
async batchGetEmbeddings(entries) {
|
|
70
|
+
const results = new Map();
|
|
71
|
+
// Process in parallel with concurrency limit
|
|
72
|
+
const batchSize = 10;
|
|
73
|
+
for (let i = 0; i < entries.length; i += batchSize) {
|
|
74
|
+
const batch = entries.slice(i, i + batchSize);
|
|
75
|
+
const promises = batch.map(async ({ entryId, teamId }) => {
|
|
76
|
+
try {
|
|
77
|
+
const embedding = await this.getEmbedding(entryId, teamId);
|
|
78
|
+
if (embedding) {
|
|
79
|
+
results.set(entryId, embedding);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.warn(`Failed to fetch embedding for ${entryId}:`, error);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
await Promise.all(promises);
|
|
87
|
+
}
|
|
88
|
+
return results;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Generate S3 key for embedding storage
|
|
92
|
+
* Uses team-based partitioning for better organization
|
|
93
|
+
*/
|
|
94
|
+
_getEmbeddingKey(entryId, teamId) {
|
|
95
|
+
// Format: embeddings/{teamId}/{entryId}.json
|
|
96
|
+
// This provides good partitioning and makes it easy to list/delete by team
|
|
97
|
+
return `embeddings/${teamId}/${entryId}.json`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Delete embedding from S3
|
|
101
|
+
* Routes through authenticated backend API
|
|
102
|
+
*/
|
|
103
|
+
async deleteEmbedding(entryId, teamId) {
|
|
104
|
+
try {
|
|
105
|
+
if (!aws_api_1.awsApiService.isAuthenticated()) {
|
|
106
|
+
console.warn('Not authenticated for deleting embedding');
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
await aws_api_1.awsApiService.callAPI('/storage/embeddings', 'DELETE', {
|
|
110
|
+
entryId,
|
|
111
|
+
teamId
|
|
112
|
+
});
|
|
113
|
+
console.log(`Deleted embedding for entry ${entryId}`);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.error('Failed to delete embedding from S3:', error);
|
|
117
|
+
// Don't throw - deletion failures shouldn't break the flow
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.EmbeddingStorageService = EmbeddingStorageService;
|
|
122
|
+
// Singleton instance
|
|
123
|
+
exports.embeddingStorageService = new EmbeddingStorageService();
|
|
124
|
+
//# sourceMappingURL=embedding-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-storage.js","sourceRoot":"","sources":["../../src/services/embedding-storage.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,2CAA2C;AAC3C,8DAA8D;;;AAE9D,uCAA0C;AAE1C,MAAa,uBAAuB;IAGlC;QACE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,aAAa,CAAC;IACzG,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,MAAc,EAAE,SAAmB;QACvE,IAAI,CAAC;YACH,IAAI,CAAC,uBAAa,CAAC,eAAe,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,uBAAa,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,EAAE;gBAC1E,OAAO;gBACP,MAAM;gBACN,SAAS;aACV,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,YAAY,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACrG,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3B,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,2BAA2B,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,MAAc;QAChD,IAAI,CAAC;YACH,IAAI,CAAC,uBAAa,CAAC,eAAe,EAAE,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,uBAAa,CAAC,OAAO,CAC1C,+BAA+B,OAAO,WAAW,MAAM,EAAE,EACzD,KAAK,CACN,CAAC;YAEF,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YACjF,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,0CAA0C,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAiD;QACxE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE5C,6CAA6C;QAC7C,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;gBACvD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC3D,IAAI,SAAS,EAAE,CAAC;wBACd,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,iCAAiC,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,OAAe,EAAE,MAAc;QACtD,6CAA6C;QAC7C,2EAA2E;QAC3E,OAAO,cAAc,MAAM,IAAI,OAAO,OAAO,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,MAAc;QACnD,IAAI,CAAC;YACH,IAAI,CAAC,uBAAa,CAAC,eAAe,EAAE,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YAED,MAAM,uBAAa,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,EAAE;gBAC3D,OAAO;gBACP,MAAM;aACP,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;YAC5D,2DAA2D;QAC7D,CAAC;IACH,CAAC;CACF;AAlID,0DAkIC;AAED,qBAAqB;AACR,QAAA,uBAAuB,GAAG,IAAI,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ExpertSuggestion } from '../types';
|
|
2
|
+
export declare class ExpertIdentificationEngine {
|
|
3
|
+
/**
|
|
4
|
+
* Find experts for a given topic using cloud-based analysis
|
|
5
|
+
*/
|
|
6
|
+
findExperts(topic: string, options?: {
|
|
7
|
+
useCloud?: boolean;
|
|
8
|
+
limit?: number;
|
|
9
|
+
includeAvailability?: boolean;
|
|
10
|
+
}): Promise<ExpertSuggestion[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Convert cloud expert results to local format
|
|
13
|
+
*/
|
|
14
|
+
private convertCloudExpertsToSuggestions;
|
|
15
|
+
/**
|
|
16
|
+
* Generate a display name from user ID
|
|
17
|
+
*/
|
|
18
|
+
private generateDisplayName;
|
|
19
|
+
}
|
|
20
|
+
export declare const expertEngine: ExpertIdentificationEngine;
|
|
21
|
+
//# sourceMappingURL=expert-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expert-engine.d.ts","sourceRoot":"","sources":["../../src/services/expert-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,qBAAa,0BAA0B;IACrC;;OAEG;IACU,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;QAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC1B,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsBpC;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAUxC;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAa5B;AAED,eAAO,MAAM,YAAY,4BAAmC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expertEngine = exports.ExpertIdentificationEngine = void 0;
|
|
4
|
+
const aws_api_1 = require("./aws-api");
|
|
5
|
+
class ExpertIdentificationEngine {
|
|
6
|
+
/**
|
|
7
|
+
* Find experts for a given topic using cloud-based analysis
|
|
8
|
+
*/
|
|
9
|
+
async findExperts(topic, options = {}) {
|
|
10
|
+
const { limit = 5 } = options;
|
|
11
|
+
// Always use cloud-based expert finding - no local fallback
|
|
12
|
+
try {
|
|
13
|
+
const cloudAvailable = await aws_api_1.awsApiService.isAvailable();
|
|
14
|
+
if (!cloudAvailable) {
|
|
15
|
+
throw new Error('Cloud services are not available. Please check your internet connection and AWS configuration.');
|
|
16
|
+
}
|
|
17
|
+
const cloudExperts = await aws_api_1.awsApiService.findExperts(topic);
|
|
18
|
+
if (cloudExperts.length === 0) {
|
|
19
|
+
throw new Error(`No experts found for "${topic}". This could mean no team members have shared knowledge on this topic yet.`);
|
|
20
|
+
}
|
|
21
|
+
return this.convertCloudExpertsToSuggestions(cloudExperts).slice(0, limit);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.error('Cloud expert finding failed:', error);
|
|
25
|
+
throw error; // Don't fall back to local - fail fast
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Convert cloud expert results to local format
|
|
30
|
+
*/
|
|
31
|
+
convertCloudExpertsToSuggestions(cloudExperts) {
|
|
32
|
+
return cloudExperts.map(expert => ({
|
|
33
|
+
userId: expert.userId,
|
|
34
|
+
name: expert.name || this.generateDisplayName(expert.userId),
|
|
35
|
+
relevantEntries: [], // Would need to fetch these separately
|
|
36
|
+
expertiseScore: expert.expertiseScore || 0,
|
|
37
|
+
lastActive: new Date(expert.lastActive || Date.now())
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Generate a display name from user ID
|
|
42
|
+
*/
|
|
43
|
+
generateDisplayName(userId) {
|
|
44
|
+
// In a real app, this would fetch from a user service
|
|
45
|
+
// For demo, generate friendly names
|
|
46
|
+
const names = [
|
|
47
|
+
'Alex Chen', 'Sarah Rodriguez', 'Mike Johnson', 'Emily Davis',
|
|
48
|
+
'David Kim', 'Lisa Wang', 'James Wilson', 'Maria Garcia',
|
|
49
|
+
'Robert Taylor', 'Jennifer Lee', 'Michael Brown', 'Jessica Miller'
|
|
50
|
+
];
|
|
51
|
+
// Use a simple hash to consistently map user IDs to names
|
|
52
|
+
const hash = userId.split('').reduce((acc, char) => acc + char.charCodeAt(0), 0);
|
|
53
|
+
return names[hash % names.length];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.ExpertIdentificationEngine = ExpertIdentificationEngine;
|
|
57
|
+
exports.expertEngine = new ExpertIdentificationEngine();
|
|
58
|
+
//# sourceMappingURL=expert-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expert-engine.js","sourceRoot":"","sources":["../../src/services/expert-engine.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAE1C,MAAa,0BAA0B;IACrC;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAIpC,EAAE;QACJ,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;QAE9B,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,uBAAa,CAAC,WAAW,EAAE,CAAC;YACzD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;YACpH,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,uBAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,6EAA6E,CAAC,CAAC;YAC/H,CAAC;YAED,OAAO,IAAI,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,KAAK,CAAC,CAAC,uCAAuC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gCAAgC,CAAC,YAAmB;QAC1D,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5D,eAAe,EAAE,EAAE,EAAE,uCAAuC;YAC5D,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC;YAC1C,UAAU,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;SACtD,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,MAAc;QACxC,sDAAsD;QACtD,oCAAoC;QACpC,MAAM,KAAK,GAAG;YACZ,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa;YAC7D,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc;YACxD,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB;SACnE,CAAC;QAEF,0DAA0D;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,OAAO,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF;AA3DD,gEA2DC;AAEY,QAAA,YAAY,GAAG,IAAI,0BAA0B,EAAE,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { CompetitionLearningEntry } from '../types';
|
|
2
|
+
export interface OnboardingPath {
|
|
3
|
+
id: string;
|
|
4
|
+
userId: string;
|
|
5
|
+
teamId: string;
|
|
6
|
+
createdAt: Date;
|
|
7
|
+
learningSteps: LearningStep[];
|
|
8
|
+
estimatedTimeToProductivity: number;
|
|
9
|
+
completionPercentage: number;
|
|
10
|
+
knowledgeGaps: KnowledgeGap[];
|
|
11
|
+
suggestedExperts: ExpertSuggestion[];
|
|
12
|
+
}
|
|
13
|
+
export interface LearningStep {
|
|
14
|
+
id: string;
|
|
15
|
+
title: string;
|
|
16
|
+
description: string;
|
|
17
|
+
priority: 'high' | 'medium' | 'low';
|
|
18
|
+
estimatedTime: number;
|
|
19
|
+
relatedEntries: string[];
|
|
20
|
+
suggestedExperts: string[];
|
|
21
|
+
completed: boolean;
|
|
22
|
+
completedAt?: Date;
|
|
23
|
+
category: 'technical' | 'process' | 'tools' | 'culture';
|
|
24
|
+
}
|
|
25
|
+
export interface KnowledgeGap {
|
|
26
|
+
topic: string;
|
|
27
|
+
importance: number;
|
|
28
|
+
suggestedLearning: string[];
|
|
29
|
+
expertContacts: string[];
|
|
30
|
+
estimatedLearningTime: number;
|
|
31
|
+
}
|
|
32
|
+
export interface ExpertSuggestion {
|
|
33
|
+
userId: string;
|
|
34
|
+
name: string;
|
|
35
|
+
expertise: string[];
|
|
36
|
+
relevantKnowledge: string[];
|
|
37
|
+
availability: 'high' | 'medium' | 'low';
|
|
38
|
+
connectionReason: string;
|
|
39
|
+
}
|
|
40
|
+
export interface OnboardingProgress {
|
|
41
|
+
userId: string;
|
|
42
|
+
teamId: string;
|
|
43
|
+
startDate: Date;
|
|
44
|
+
currentDay: number;
|
|
45
|
+
completedSteps: number;
|
|
46
|
+
totalSteps: number;
|
|
47
|
+
timeToProductivity: number;
|
|
48
|
+
productivityScore: number;
|
|
49
|
+
knowledgeAcquired: number;
|
|
50
|
+
expertConnections: number;
|
|
51
|
+
questionsAsked: number;
|
|
52
|
+
questionsAnswered: number;
|
|
53
|
+
}
|
|
54
|
+
export interface OnboardingMetrics {
|
|
55
|
+
averageTimeToProductivity: number;
|
|
56
|
+
completionRate: number;
|
|
57
|
+
knowledgeRetention: number;
|
|
58
|
+
expertEngagement: number;
|
|
59
|
+
accelerationPercentage: number;
|
|
60
|
+
}
|
|
61
|
+
export declare class OnboardingAcceleratorService {
|
|
62
|
+
/**
|
|
63
|
+
* Check if the onboarding accelerator service is available
|
|
64
|
+
*/
|
|
65
|
+
isAvailable(): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* Generate a personalized learning path for a new team member
|
|
68
|
+
*/
|
|
69
|
+
generateLearningPath(userId: string, teamId: string, userProfile?: {
|
|
70
|
+
experience: 'junior' | 'mid' | 'senior';
|
|
71
|
+
technologies: string[];
|
|
72
|
+
role: string;
|
|
73
|
+
goals: string[];
|
|
74
|
+
}): Promise<OnboardingPath>;
|
|
75
|
+
/**
|
|
76
|
+
* Track progress for an onboarding user
|
|
77
|
+
*/
|
|
78
|
+
trackProgress(userId: string, _completedStepId: string, _learningEntry?: CompetitionLearningEntry): Promise<OnboardingProgress>;
|
|
79
|
+
/**
|
|
80
|
+
* Generate onboarding completion report
|
|
81
|
+
*/
|
|
82
|
+
generateCompletionReport(userId: string): Promise<{
|
|
83
|
+
progress: OnboardingProgress;
|
|
84
|
+
metrics: OnboardingMetrics;
|
|
85
|
+
recommendations: string[];
|
|
86
|
+
accelerationAchieved: number;
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Analyze team knowledge to identify key learning areas
|
|
90
|
+
*/
|
|
91
|
+
private analyzeTeamKnowledge;
|
|
92
|
+
/**
|
|
93
|
+
* Generate learning steps based on team knowledge analysis
|
|
94
|
+
*/
|
|
95
|
+
private generateLearningSteps;
|
|
96
|
+
/**
|
|
97
|
+
* Identify knowledge gaps for new team member
|
|
98
|
+
*/
|
|
99
|
+
private identifyKnowledgeGaps;
|
|
100
|
+
/**
|
|
101
|
+
* Find relevant experts for onboarding
|
|
102
|
+
*/
|
|
103
|
+
private findRelevantExperts;
|
|
104
|
+
/**
|
|
105
|
+
* Calculate estimated time to productivity
|
|
106
|
+
*/
|
|
107
|
+
private calculateTimeToProductivity;
|
|
108
|
+
/**
|
|
109
|
+
* Calculate team-wide onboarding metrics
|
|
110
|
+
*/
|
|
111
|
+
private calculateTeamOnboardingMetrics;
|
|
112
|
+
/**
|
|
113
|
+
* Generate AI-powered onboarding recommendations
|
|
114
|
+
*/
|
|
115
|
+
private generateOnboardingRecommendations;
|
|
116
|
+
}
|
|
117
|
+
export declare const onboardingAcceleratorService: OnboardingAcceleratorService;
|
|
118
|
+
//# sourceMappingURL=onboarding-accelerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding-accelerator.d.ts","sourceRoot":"","sources":["../../src/services/onboarding-accelerator.ts"],"names":[],"mappings":"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"}
|