@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,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.createCaptureFromPushCommand = createCaptureFromPushCommand;
|
|
40
|
+
exports.createGitHookCommand = createGitHookCommand;
|
|
41
|
+
const commander_1 = require("commander");
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
+
const ora_1 = __importDefault(require("ora"));
|
|
44
|
+
const config_1 = require("../config");
|
|
45
|
+
const formatting_1 = require("../utils/formatting");
|
|
46
|
+
function createCaptureFromPushCommand() {
|
|
47
|
+
const cmd = new commander_1.Command('capture-from-push');
|
|
48
|
+
cmd
|
|
49
|
+
.description('Capture learning entries from git commits (used by git hook)')
|
|
50
|
+
.option('--old <ref>', 'Old git reference (before push)')
|
|
51
|
+
.option('--new <ref>', 'New git reference (after push)')
|
|
52
|
+
.option('--recent <count>', 'Number of recent commits to analyze', '1')
|
|
53
|
+
.action(async (options) => {
|
|
54
|
+
const spinner = (0, ora_1.default)();
|
|
55
|
+
try {
|
|
56
|
+
const { isGitRepository, getCommitsFromPush, getRecentCommits } = await Promise.resolve().then(() => __importStar(require('../utils/git')));
|
|
57
|
+
const { generateLearningsFromCommits } = await Promise.resolve().then(() => __importStar(require('../services/commit-learnings')));
|
|
58
|
+
const { awsApiService } = await Promise.resolve().then(() => __importStar(require('../services/aws-api')));
|
|
59
|
+
// Check if we're in a git repository
|
|
60
|
+
if (!await isGitRepository()) {
|
|
61
|
+
console.log(chalk_1.default.yellow('ā ļø Not in a git repository. Skipping learning capture.'));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
spinner.start('Analyzing commits for learning opportunities...');
|
|
65
|
+
let commits;
|
|
66
|
+
if (options.old && options.new) {
|
|
67
|
+
// Analyze commits from a push
|
|
68
|
+
commits = await getCommitsFromPush(options.old, options.new);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// Analyze recent commits
|
|
72
|
+
const count = parseInt(options.recent, 10);
|
|
73
|
+
commits = await getRecentCommits(count);
|
|
74
|
+
}
|
|
75
|
+
if (commits.length === 0) {
|
|
76
|
+
spinner.info('No commits to analyze');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
spinner.text = `Analyzing ${commits.length} commit(s)...`;
|
|
80
|
+
// Generate learning entries from commits
|
|
81
|
+
const learnings = await generateLearningsFromCommits(commits);
|
|
82
|
+
if (learnings.length === 0) {
|
|
83
|
+
spinner.info('No well-structured commits found to capture as learning entries');
|
|
84
|
+
console.log(chalk_1.default.gray('š” Tip: Use conventional commits (e.g., "feat: add feature", "fix: resolve bug") for automatic learning capture'));
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
spinner.succeed(`Found ${learnings.length} learning opportunity/opportunities from commits`);
|
|
88
|
+
// Display and submit each learning
|
|
89
|
+
for (const learning of learnings) {
|
|
90
|
+
console.log('');
|
|
91
|
+
console.log(chalk_1.default.cyan(`š Learning from commit: ${learning.commitMessage.substring(0, 60)}...`));
|
|
92
|
+
console.log(chalk_1.default.gray(` Hash: ${learning.commitHash.substring(0, 8)}`));
|
|
93
|
+
console.log(chalk_1.default.gray(` Topics: ${learning.topics.join(', ') || 'None'}`));
|
|
94
|
+
// Create entry for cloud submission
|
|
95
|
+
const entry = {
|
|
96
|
+
content: learning.content,
|
|
97
|
+
authorId: config_1.configManager.getConfig().userId || 'demo_user',
|
|
98
|
+
teamId: config_1.configManager.getConfig().teamId || 'demo_team',
|
|
99
|
+
aiTopics: learning.topics,
|
|
100
|
+
expertiseLevel: 'intermediate',
|
|
101
|
+
impactScore: 2.5,
|
|
102
|
+
helpfulnessRating: 0,
|
|
103
|
+
timeSavedMinutes: 15,
|
|
104
|
+
viewCount: 0,
|
|
105
|
+
shareCount: 0,
|
|
106
|
+
questionsAnswered: 0,
|
|
107
|
+
onboardingRelevance: false,
|
|
108
|
+
metadata: {
|
|
109
|
+
source: 'git-push-hook',
|
|
110
|
+
commitHash: learning.commitHash,
|
|
111
|
+
commitMessage: learning.commitMessage
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
// Submit to cloud
|
|
115
|
+
try {
|
|
116
|
+
const apiAvailable = await awsApiService.isAvailable();
|
|
117
|
+
if (apiAvailable) {
|
|
118
|
+
spinner.start('Syncing learning to cloud...');
|
|
119
|
+
const result = await awsApiService.submitKnowledgeEntry(entry);
|
|
120
|
+
if (result) {
|
|
121
|
+
spinner.succeed(`Learning entry created: ${result}`);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
spinner.warn('Failed to create learning entry');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
spinner.info('Cloud services not available - learning saved locally');
|
|
129
|
+
console.log(chalk_1.default.gray('š” Learning will sync when cloud services are available'));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
spinner.warn('Failed to sync to cloud, but learning captured locally');
|
|
134
|
+
console.log(chalk_1.default.gray(` ${error}`));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
console.log('');
|
|
138
|
+
console.log(chalk_1.default.green(`⨠Successfully captured ${learnings.length} learning entries from your commits!`));
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
spinner.fail('Failed to capture learnings from commits');
|
|
142
|
+
console.error((0, formatting_1.formatErrorMessage)(error));
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
return cmd;
|
|
147
|
+
}
|
|
148
|
+
function createGitHookCommand() {
|
|
149
|
+
const cmd = new commander_1.Command('git-hook');
|
|
150
|
+
cmd
|
|
151
|
+
.description('Manage git push hook for automatic learning capture')
|
|
152
|
+
.option('--enable', 'Enable git push hook')
|
|
153
|
+
.option('--disable', 'Disable git push hook')
|
|
154
|
+
.option('--status', 'Check git hook status')
|
|
155
|
+
.action(async (options) => {
|
|
156
|
+
const spinner = (0, ora_1.default)();
|
|
157
|
+
try {
|
|
158
|
+
const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
|
|
159
|
+
const path = await Promise.resolve().then(() => __importStar(require('path')));
|
|
160
|
+
const { isGitRepository, getGitRoot } = await Promise.resolve().then(() => __importStar(require('../utils/git')));
|
|
161
|
+
// Check if we're in a git repository
|
|
162
|
+
if (!await isGitRepository()) {
|
|
163
|
+
console.log(chalk_1.default.red('ā Not in a git repository'));
|
|
164
|
+
console.log(chalk_1.default.gray(' Please run this command from within a git repository'));
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const gitRoot = await getGitRoot();
|
|
168
|
+
const hookPath = path.join(gitRoot, '.git', 'hooks', 'pre-push');
|
|
169
|
+
const hookSourcePath = path.join(gitRoot, 'scripts', 'pre-push-hook.sh');
|
|
170
|
+
// Check status
|
|
171
|
+
if (options.status || (!options.enable && !options.disable)) {
|
|
172
|
+
try {
|
|
173
|
+
const hookContent = await fs.readFile(hookPath, 'utf-8');
|
|
174
|
+
if (hookContent.includes('Today CLI')) {
|
|
175
|
+
console.log(chalk_1.default.green('ā
Git push hook is ENABLED'));
|
|
176
|
+
console.log(chalk_1.default.gray(` Hook location: ${hookPath}`));
|
|
177
|
+
console.log(chalk_1.default.gray(' Commits will be automatically analyzed on git push'));
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
console.log(chalk_1.default.yellow('ā ļø Git push hook exists but is not from Today CLI'));
|
|
181
|
+
console.log(chalk_1.default.gray(` Hook location: ${hookPath}`));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
if (error.code === 'ENOENT') {
|
|
186
|
+
console.log(chalk_1.default.gray('ā Git push hook is DISABLED'));
|
|
187
|
+
console.log(chalk_1.default.gray(' Use --enable to enable automatic learning capture'));
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
throw error;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
// Enable hook
|
|
196
|
+
if (options.enable) {
|
|
197
|
+
spinner.start('Enabling git push hook...');
|
|
198
|
+
// Check if hook source exists
|
|
199
|
+
try {
|
|
200
|
+
await fs.access(hookSourcePath);
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
spinner.fail('Hook source file not found');
|
|
204
|
+
console.log(chalk_1.default.red(` Expected: ${hookSourcePath}`));
|
|
205
|
+
console.log(chalk_1.default.gray(' Please ensure you are in the Today CLI directory'));
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
// Check if hook already exists
|
|
209
|
+
try {
|
|
210
|
+
const existingHook = await fs.readFile(hookPath, 'utf-8');
|
|
211
|
+
if (existingHook.includes('Today CLI')) {
|
|
212
|
+
spinner.info('Git push hook is already enabled');
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
// Backup existing hook
|
|
216
|
+
const backupPath = `${hookPath}.backup`;
|
|
217
|
+
await fs.writeFile(backupPath, existingHook);
|
|
218
|
+
spinner.text = 'Existing hook backed up, installing Today CLI hook...';
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
if (error.code !== 'ENOENT') {
|
|
222
|
+
throw error;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// Copy and make executable
|
|
226
|
+
const hookContent = await fs.readFile(hookSourcePath, 'utf-8');
|
|
227
|
+
await fs.writeFile(hookPath, hookContent, { mode: 0o755 });
|
|
228
|
+
spinner.succeed('Git push hook enabled successfully!');
|
|
229
|
+
console.log(chalk_1.default.green('⨠Your commits will now be automatically analyzed on git push'));
|
|
230
|
+
console.log(chalk_1.default.gray(' Well-structured commits will be captured as learning entries'));
|
|
231
|
+
console.log(chalk_1.default.gray(' Use conventional commits for best results (e.g., "feat:", "fix:")'));
|
|
232
|
+
}
|
|
233
|
+
// Disable hook
|
|
234
|
+
if (options.disable) {
|
|
235
|
+
spinner.start('Disabling git push hook...');
|
|
236
|
+
try {
|
|
237
|
+
const hookContent = await fs.readFile(hookPath, 'utf-8');
|
|
238
|
+
if (!hookContent.includes('Today CLI')) {
|
|
239
|
+
spinner.warn('Git push hook is not from Today CLI');
|
|
240
|
+
console.log(chalk_1.default.gray(' Not removing the existing hook'));
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
// Remove the hook
|
|
244
|
+
await fs.unlink(hookPath);
|
|
245
|
+
// Restore backup if it exists
|
|
246
|
+
const backupPath = `${hookPath}.backup`;
|
|
247
|
+
try {
|
|
248
|
+
await fs.access(backupPath);
|
|
249
|
+
await fs.rename(backupPath, hookPath);
|
|
250
|
+
spinner.succeed('Git push hook disabled and previous hook restored');
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
spinner.succeed('Git push hook disabled');
|
|
254
|
+
}
|
|
255
|
+
console.log(chalk_1.default.gray(' Commits will no longer be automatically analyzed'));
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
if (error.code === 'ENOENT') {
|
|
259
|
+
spinner.info('Git push hook is already disabled');
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
throw error;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
spinner.fail('Failed to manage git hook');
|
|
269
|
+
console.error((0, formatting_1.formatErrorMessage)(error));
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
return cmd;
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/commands/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../../src/commands/impact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,mBAAmB,IAAI,OAAO,CAyF7C"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.createImpactCommand = createImpactCommand;
|
|
40
|
+
const commander_1 = require("commander");
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const ora_1 = __importDefault(require("ora"));
|
|
43
|
+
const config_1 = require("../config");
|
|
44
|
+
const formatting_1 = require("../utils/formatting");
|
|
45
|
+
const stats_helpers_1 = require("../lib/stats-helpers");
|
|
46
|
+
const export_helpers_1 = require("../lib/export-helpers");
|
|
47
|
+
function createImpactCommand() {
|
|
48
|
+
const cmd = new commander_1.Command('impact');
|
|
49
|
+
cmd
|
|
50
|
+
.description('Show detailed ROI analysis and workplace efficiency improvements from cloud data')
|
|
51
|
+
.option('--team', 'Show team-wide impact analysis')
|
|
52
|
+
.option('--export <format>', 'Export results (json, csv)', 'json')
|
|
53
|
+
.action(async (options) => {
|
|
54
|
+
const spinner = (0, ora_1.default)('Calculating cloud-based workplace efficiency impact...').start();
|
|
55
|
+
try {
|
|
56
|
+
// Check authentication first
|
|
57
|
+
const { awsApiService } = await Promise.resolve().then(() => __importStar(require('../services/aws-api')));
|
|
58
|
+
if (!awsApiService.isAuthenticated()) {
|
|
59
|
+
spinner.fail('Authentication required');
|
|
60
|
+
console.log(chalk_1.default.red('ā You must authenticate first to view impact analysis'));
|
|
61
|
+
console.log(chalk_1.default.gray('š” Run: today auth --username demo-user --password DemoPass123!'));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
spinner.text = 'Fetching knowledge entries from cloud...';
|
|
65
|
+
// Get entries from cloud backend
|
|
66
|
+
const entries = await awsApiService.getKnowledgeEntries(1000);
|
|
67
|
+
if (entries.length === 0) {
|
|
68
|
+
spinner.succeed('Analysis complete');
|
|
69
|
+
console.log(chalk_1.default.yellow('\nš No knowledge entries found in cloud database'));
|
|
70
|
+
console.log(chalk_1.default.gray('š” Start capturing knowledge to see impact analysis'));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const userId = config_1.configManager.getConfig().userId || 'demo_user';
|
|
74
|
+
const teamId = config_1.configManager.getConfig().teamId || 'demo_team';
|
|
75
|
+
// Filter entries based on scope
|
|
76
|
+
let filteredEntries = options.team
|
|
77
|
+
? entries.filter(entry => entry.teamId === teamId)
|
|
78
|
+
: entries.filter(entry => entry.authorId === userId);
|
|
79
|
+
// If no entries match the config, use all entries (for demo purposes)
|
|
80
|
+
if (filteredEntries.length === 0 && entries.length > 0) {
|
|
81
|
+
filteredEntries = entries;
|
|
82
|
+
}
|
|
83
|
+
spinner.text = 'Analyzing cloud-based ROI and efficiency gains...';
|
|
84
|
+
// Calculate detailed impact metrics from cloud data
|
|
85
|
+
const impact = (0, stats_helpers_1.calculateDetailedImpact)(filteredEntries, options.team);
|
|
86
|
+
// Try to get enhanced cloud analytics
|
|
87
|
+
try {
|
|
88
|
+
spinner.text = 'Fetching enhanced cloud impact analytics...';
|
|
89
|
+
const cloudAnalytics = await awsApiService.getAnalytics('all', options.team);
|
|
90
|
+
if (cloudAnalytics) {
|
|
91
|
+
impact.cloudEnhanced = true;
|
|
92
|
+
impact.cloudMetrics = cloudAnalytics;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
// Continue with calculated impact only
|
|
97
|
+
impact.cloudEnhanced = false;
|
|
98
|
+
}
|
|
99
|
+
spinner.succeed('Cloud impact analysis complete');
|
|
100
|
+
// Display detailed impact report
|
|
101
|
+
(0, stats_helpers_1.displayImpactReport)(impact, options.team);
|
|
102
|
+
// Export if requested
|
|
103
|
+
if (options.export) {
|
|
104
|
+
const filename = `today-cloud-impact-${Date.now()}.${options.export}`;
|
|
105
|
+
(0, export_helpers_1.exportImpactData)(impact, filename, options.export);
|
|
106
|
+
console.log(chalk_1.default.green(`\nš Cloud impact data exported to: ${filename}`));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
spinner.fail('Failed to analyze cloud impact');
|
|
111
|
+
console.error((0, formatting_1.formatErrorMessage)(error));
|
|
112
|
+
if (error instanceof Error && error.message.includes('Authentication')) {
|
|
113
|
+
console.log(chalk_1.default.yellow('\nš” Make sure you are authenticated:'));
|
|
114
|
+
console.log(chalk_1.default.gray(' today auth --username demo-user --password DemoPass123!'));
|
|
115
|
+
}
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
return cmd;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=impact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/commands/impact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../src/commands/insights.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,qBAAqB,IAAI,OAAO,CA+E/C"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.createInsightsCommand = createInsightsCommand;
|
|
40
|
+
const commander_1 = require("commander");
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const ora_1 = __importDefault(require("ora"));
|
|
43
|
+
const config_1 = require("../config");
|
|
44
|
+
const formatting_1 = require("../utils/formatting");
|
|
45
|
+
const bedrock_1 = require("../services/bedrock");
|
|
46
|
+
const insights_helpers_1 = require("../lib/insights-helpers");
|
|
47
|
+
function createInsightsCommand() {
|
|
48
|
+
const cmd = new commander_1.Command('insights');
|
|
49
|
+
cmd
|
|
50
|
+
.description('Get comprehensive AI-powered knowledge insights and recommendations from cloud data')
|
|
51
|
+
.option('--team', 'Show team-wide insights')
|
|
52
|
+
.option('--detailed', 'Show detailed analysis with specific recommendations')
|
|
53
|
+
.action(async (options) => {
|
|
54
|
+
const spinner = (0, ora_1.default)('Analyzing cloud knowledge patterns with AI...').start();
|
|
55
|
+
try {
|
|
56
|
+
// Check authentication first
|
|
57
|
+
const { awsApiService } = await Promise.resolve().then(() => __importStar(require('../services/aws-api')));
|
|
58
|
+
if (!awsApiService.isAuthenticated()) {
|
|
59
|
+
spinner.fail('Authentication required');
|
|
60
|
+
console.log(chalk_1.default.red('ā You must authenticate first to view insights'));
|
|
61
|
+
console.log(chalk_1.default.gray('š” Run: today auth --username demo-user --password DemoPass123!'));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Get comprehensive learning data from cloud
|
|
65
|
+
spinner.text = 'Fetching knowledge entries from cloud...';
|
|
66
|
+
const entries = await awsApiService.getKnowledgeEntries(1000);
|
|
67
|
+
if (entries.length === 0) {
|
|
68
|
+
spinner.succeed('Analysis complete');
|
|
69
|
+
console.log(chalk_1.default.yellow('\nš No knowledge entries found for analysis'));
|
|
70
|
+
console.log(chalk_1.default.gray('š” Start capturing knowledge to get AI-powered insights'));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
// Apply team/user filtering with fallback
|
|
74
|
+
const userId = config_1.configManager.getConfig().userId || 'demo_user';
|
|
75
|
+
const teamId = config_1.configManager.getConfig().teamId || 'demo_team';
|
|
76
|
+
let filteredEntries = options.team
|
|
77
|
+
? entries.filter(entry => entry.teamId === teamId)
|
|
78
|
+
: entries.filter(entry => entry.authorId === userId);
|
|
79
|
+
// If no entries match config, use all entries for demo
|
|
80
|
+
if (filteredEntries.length === 0 && entries.length > 0) {
|
|
81
|
+
filteredEntries = entries;
|
|
82
|
+
}
|
|
83
|
+
spinner.text = 'Analyzing learning patterns and knowledge gaps...';
|
|
84
|
+
// Generate comprehensive insights
|
|
85
|
+
const insights = await (0, insights_helpers_1.generateComprehensiveInsights)(filteredEntries, options.team, options.detailed);
|
|
86
|
+
// Try to enhance with Bedrock AI if available
|
|
87
|
+
const bedrockAvailable = await bedrock_1.bedrockService.isAvailable();
|
|
88
|
+
let aiEnhancedInsights = null;
|
|
89
|
+
if (bedrockAvailable) {
|
|
90
|
+
try {
|
|
91
|
+
spinner.text = 'Enhancing insights with Amazon Bedrock AI...';
|
|
92
|
+
aiEnhancedInsights = await bedrock_1.bedrockService.generateInsights(filteredEntries, teamId);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
console.warn('Bedrock enhancement failed, using comprehensive analysis');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
spinner.succeed('AI knowledge analysis complete');
|
|
99
|
+
// Display comprehensive insights
|
|
100
|
+
(0, insights_helpers_1.displayComprehensiveInsights)(insights, aiEnhancedInsights, options.team, options.detailed, bedrockAvailable);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
spinner.fail('AI insights generation failed');
|
|
104
|
+
console.error((0, formatting_1.formatErrorMessage)(error));
|
|
105
|
+
if (error instanceof Error && error.message.includes('Authentication')) {
|
|
106
|
+
console.log(chalk_1.default.yellow('\nš” Make sure you are authenticated:'));
|
|
107
|
+
console.log(chalk_1.default.gray(' today auth --username demo-user --password DemoPass123!'));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
return cmd;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=insights.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/commands/insights.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learned.d.ts","sourceRoot":"","sources":["../../src/commands/learned.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,oBAAoB,IAAI,OAAO,CAiW9C"}
|