@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,355 @@
|
|
|
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.createLearnedCommand = createLearnedCommand;
|
|
40
|
+
const commander_1 = require("commander");
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
43
|
+
const ora_1 = __importDefault(require("ora"));
|
|
44
|
+
const validation_1 = require("../utils/validation");
|
|
45
|
+
const formatting_1 = require("../utils/formatting");
|
|
46
|
+
const config_1 = require("../config");
|
|
47
|
+
const bedrock_1 = require("../services/bedrock");
|
|
48
|
+
const vector_embeddings_1 = require("../services/vector-embeddings");
|
|
49
|
+
function createLearnedCommand() {
|
|
50
|
+
const cmd = new commander_1.Command('learned');
|
|
51
|
+
cmd
|
|
52
|
+
.argument('[content]', 'What you learned')
|
|
53
|
+
.description('Capture what you learned today')
|
|
54
|
+
.option('-t, --tags <tags>', 'Comma-separated tags')
|
|
55
|
+
.option('-i, --interactive', 'Interactive mode with prompts')
|
|
56
|
+
.action(async (content, options) => {
|
|
57
|
+
const spinner = (0, ora_1.default)();
|
|
58
|
+
try {
|
|
59
|
+
let learningContent = content;
|
|
60
|
+
let tags = [];
|
|
61
|
+
// Interactive mode if no content provided or explicitly requested
|
|
62
|
+
if (!learningContent || options.interactive) {
|
|
63
|
+
const answers = await inquirer_1.default.prompt([
|
|
64
|
+
{
|
|
65
|
+
type: 'editor',
|
|
66
|
+
name: 'content',
|
|
67
|
+
message: 'What did you learn today?',
|
|
68
|
+
default: learningContent || '',
|
|
69
|
+
validate: (input) => {
|
|
70
|
+
try {
|
|
71
|
+
(0, validation_1.validateLearningContent)(input);
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
return error instanceof validation_1.ValidationError ? error.message : 'Invalid input';
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'input',
|
|
81
|
+
name: 'tags',
|
|
82
|
+
message: 'Add tags (comma-separated, optional):',
|
|
83
|
+
default: options.tags || '',
|
|
84
|
+
}
|
|
85
|
+
]);
|
|
86
|
+
learningContent = answers.content;
|
|
87
|
+
options.tags = answers.tags;
|
|
88
|
+
}
|
|
89
|
+
// Validate and sanitize input
|
|
90
|
+
(0, validation_1.validateLearningContent)(learningContent);
|
|
91
|
+
learningContent = (0, validation_1.sanitizeInput)(learningContent);
|
|
92
|
+
if (options.tags) {
|
|
93
|
+
tags = (0, validation_1.validateTags)(options.tags);
|
|
94
|
+
}
|
|
95
|
+
// š SECURITY: Enhanced secret detection using AWS Comprehend + Bedrock
|
|
96
|
+
const { enhancedSecretDetectionService } = await Promise.resolve().then(() => __importStar(require('../services/secret-detection')));
|
|
97
|
+
const { enterpriseSecretManagerService } = await Promise.resolve().then(() => __importStar(require('../services/secret-manager-simple')));
|
|
98
|
+
let secretAnalysis;
|
|
99
|
+
const enhancedServiceAvailable = await enhancedSecretDetectionService.isAvailable();
|
|
100
|
+
if (enhancedServiceAvailable) {
|
|
101
|
+
spinner.text = 'Analyzing content for secrets with AWS AI services...';
|
|
102
|
+
secretAnalysis = await enhancedSecretDetectionService.analyzeContent(learningContent);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Fallback to basic pattern detection
|
|
106
|
+
const { detectSecrets } = await Promise.resolve().then(() => __importStar(require('../utils/validation')));
|
|
107
|
+
const basicDetections = detectSecrets(learningContent);
|
|
108
|
+
secretAnalysis = {
|
|
109
|
+
detections: basicDetections.map(d => ({
|
|
110
|
+
...d,
|
|
111
|
+
source: 'pattern',
|
|
112
|
+
riskLevel: 'medium',
|
|
113
|
+
recommendations: ['Review for sensitive information'],
|
|
114
|
+
context: 'Pattern-based detection'
|
|
115
|
+
})),
|
|
116
|
+
overallRiskScore: basicDetections.length > 0 ? 0.6 : 0,
|
|
117
|
+
summary: basicDetections.length > 0 ? `${basicDetections.length} potential secrets detected` : 'No secrets detected',
|
|
118
|
+
shouldBlock: false
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
let secretDiscoveries = [];
|
|
122
|
+
if (secretAnalysis.detections.length > 0) {
|
|
123
|
+
spinner.stop();
|
|
124
|
+
// Display enhanced security analysis
|
|
125
|
+
console.log(chalk_1.default.yellow('š Security Analysis Results:'));
|
|
126
|
+
console.log(chalk_1.default.white(` Risk Score: ${Math.round(secretAnalysis.overallRiskScore * 100)}%`));
|
|
127
|
+
console.log(chalk_1.default.gray(` ${secretAnalysis.summary}\n`));
|
|
128
|
+
// Group detections by risk level
|
|
129
|
+
const criticalSecrets = secretAnalysis.detections.filter(d => d.riskLevel === 'critical');
|
|
130
|
+
const highSecrets = secretAnalysis.detections.filter(d => d.riskLevel === 'high');
|
|
131
|
+
const mediumSecrets = secretAnalysis.detections.filter(d => d.riskLevel === 'medium');
|
|
132
|
+
const lowSecrets = secretAnalysis.detections.filter(d => d.riskLevel === 'low');
|
|
133
|
+
// Display critical secrets first
|
|
134
|
+
if (criticalSecrets.length > 0) {
|
|
135
|
+
console.log(chalk_1.default.red('šØ CRITICAL SECRETS:'));
|
|
136
|
+
criticalSecrets.forEach((secret, index) => {
|
|
137
|
+
console.log(chalk_1.default.red(` ${index + 1}. ${secret.type.toUpperCase()}: "${secret.value.substring(0, 20)}..." (${secret.source})`));
|
|
138
|
+
if ('context' in secret && secret.context)
|
|
139
|
+
console.log(chalk_1.default.gray(` Context: ${secret.context}`));
|
|
140
|
+
console.log(chalk_1.default.gray(` Recommendations: ${secret.recommendations.slice(0, 2).join(', ')}`));
|
|
141
|
+
});
|
|
142
|
+
console.log('');
|
|
143
|
+
}
|
|
144
|
+
// Display high-risk secrets
|
|
145
|
+
if (highSecrets.length > 0) {
|
|
146
|
+
console.log(chalk_1.default.yellow('ā ļø HIGH RISK SECRETS:'));
|
|
147
|
+
highSecrets.forEach((secret, index) => {
|
|
148
|
+
console.log(chalk_1.default.yellow(` ${index + 1}. ${secret.type.toUpperCase()}: "${secret.value.substring(0, 15)}..." (${secret.source})`));
|
|
149
|
+
if ('context' in secret && secret.context)
|
|
150
|
+
console.log(chalk_1.default.gray(` Context: ${secret.context}`));
|
|
151
|
+
});
|
|
152
|
+
console.log('');
|
|
153
|
+
}
|
|
154
|
+
// Show summary for medium/low risk
|
|
155
|
+
if (mediumSecrets.length > 0 || lowSecrets.length > 0) {
|
|
156
|
+
console.log(chalk_1.default.blue(`ā¹ļø Additional detections: ${mediumSecrets.length} medium risk, ${lowSecrets.length} low risk`));
|
|
157
|
+
}
|
|
158
|
+
// š ENTERPRISE SECRET MANAGEMENT WORKFLOW
|
|
159
|
+
const secretManagerAvailable = await enterpriseSecretManagerService.isAvailable();
|
|
160
|
+
if (secretManagerAvailable && secretAnalysis.detections.some(d => d.riskLevel !== 'low')) {
|
|
161
|
+
console.log(chalk_1.default.cyan('\nš¢ Enterprise Secret Management:'));
|
|
162
|
+
console.log(chalk_1.default.gray(' ⢠Catalog secrets for approval workflow (metadata only)'));
|
|
163
|
+
console.log(chalk_1.default.gray(' ⢠Generate deployment templates for YOUR AWS account'));
|
|
164
|
+
console.log(chalk_1.default.gray(' ⢠Create team secret registry and access instructions'));
|
|
165
|
+
console.log(chalk_1.default.gray(' ⢠No actual secret values stored externally'));
|
|
166
|
+
const { enableSecretManagement } = await inquirer_1.default.prompt([
|
|
167
|
+
{
|
|
168
|
+
type: 'confirm',
|
|
169
|
+
name: 'enableSecretManagement',
|
|
170
|
+
message: 'Enable enterprise secret discovery and management workflow?',
|
|
171
|
+
default: true
|
|
172
|
+
}
|
|
173
|
+
]);
|
|
174
|
+
if (enableSecretManagement) {
|
|
175
|
+
spinner.start('Processing secrets for enterprise workflow...');
|
|
176
|
+
try {
|
|
177
|
+
secretDiscoveries = await enterpriseSecretManagerService.processDetectedSecrets(secretAnalysis.detections, learningContent, {
|
|
178
|
+
authorId: config_1.configManager.getConfig().userId || 'demo_user',
|
|
179
|
+
teamId: config_1.configManager.getConfig().teamId || 'demo_team'
|
|
180
|
+
});
|
|
181
|
+
spinner.succeed('Secret discovery workflow completed!');
|
|
182
|
+
console.log(chalk_1.default.green('\nšÆ Enterprise Secret Management Summary:'));
|
|
183
|
+
secretDiscoveries.forEach((discovery, index) => {
|
|
184
|
+
console.log(chalk_1.default.cyan(` ${index + 1}. ${discovery.secretName}`));
|
|
185
|
+
console.log(chalk_1.default.gray(` Type: ${discovery.secretType} | Environment: ${discovery.environment}`));
|
|
186
|
+
console.log(chalk_1.default.gray(` Status: ${discovery.status === 'discovered' ? 'š Discovered' : 'ā
Approved'}`));
|
|
187
|
+
console.log(chalk_1.default.gray(` Preview: ${discovery.valuePreview}`));
|
|
188
|
+
});
|
|
189
|
+
console.log(chalk_1.default.blue('\nš” Next Steps:'));
|
|
190
|
+
console.log(chalk_1.default.gray(' ⢠Secrets cataloged with metadata only (no actual values stored)'));
|
|
191
|
+
console.log(chalk_1.default.gray(' ⢠Deploy to your own AWS Secrets Manager when approved'));
|
|
192
|
+
console.log(chalk_1.default.gray(' ⢠Use generated templates for compliance and security'));
|
|
193
|
+
console.log(chalk_1.default.green('\nš Security Benefits:'));
|
|
194
|
+
console.log(chalk_1.default.gray(' ⢠No actual secret values stored outside your infrastructure'));
|
|
195
|
+
console.log(chalk_1.default.gray(' ⢠Deployment templates for your own AWS Secrets Manager'));
|
|
196
|
+
console.log(chalk_1.default.gray(' ⢠Compliance with enterprise security policies'));
|
|
197
|
+
console.log(chalk_1.default.gray(' ⢠Audit trail and approval workflows'));
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
spinner.fail('Failed to process secrets for enterprise workflow');
|
|
201
|
+
console.warn('Enterprise secret management error:', error);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// Enhanced recommendations
|
|
206
|
+
console.log(chalk_1.default.blue('\nš”ļø Security Recommendations:'));
|
|
207
|
+
if (enhancedServiceAvailable) {
|
|
208
|
+
console.log(chalk_1.default.gray(' ⢠AWS Comprehend detected PII and sensitive entities'));
|
|
209
|
+
console.log(chalk_1.default.gray(' ⢠Amazon Bedrock provided contextual analysis'));
|
|
210
|
+
}
|
|
211
|
+
if (secretManagerAvailable) {
|
|
212
|
+
console.log(chalk_1.default.gray(' ⢠Enterprise secret management available (deploys to YOUR AWS account)'));
|
|
213
|
+
console.log(chalk_1.default.gray(' ⢠Approval workflow configured for high-risk secrets'));
|
|
214
|
+
console.log(chalk_1.default.gray(' ⢠Terraform/CloudFormation templates generated for compliance'));
|
|
215
|
+
}
|
|
216
|
+
console.log(chalk_1.default.gray(' ⢠Replace secrets with environment variables or placeholders'));
|
|
217
|
+
console.log(chalk_1.default.gray(' ⢠Use AWS Secrets Manager in your own account'));
|
|
218
|
+
console.log(chalk_1.default.gray(' ⢠Consider using IAM roles instead of access keys'));
|
|
219
|
+
// Show redacted version if available
|
|
220
|
+
if (secretAnalysis.redactedContent) {
|
|
221
|
+
console.log(chalk_1.default.blue('\nš Redacted version:'));
|
|
222
|
+
console.log(chalk_1.default.gray(secretAnalysis.redactedContent.substring(0, 200) + '...'));
|
|
223
|
+
}
|
|
224
|
+
// Decision prompt based on risk level
|
|
225
|
+
const defaultChoice = secretAnalysis.shouldBlock ? false : true;
|
|
226
|
+
const promptMessage = secretAnalysis.shouldBlock
|
|
227
|
+
? 'This content contains critical secrets. Store as redacted knowledge entry for team reference?'
|
|
228
|
+
: 'Do you want to continue capturing this knowledge entry?';
|
|
229
|
+
const { shouldContinue } = await inquirer_1.default.prompt([
|
|
230
|
+
{
|
|
231
|
+
type: 'confirm',
|
|
232
|
+
name: 'shouldContinue',
|
|
233
|
+
message: promptMessage,
|
|
234
|
+
default: defaultChoice
|
|
235
|
+
}
|
|
236
|
+
]);
|
|
237
|
+
if (!shouldContinue) {
|
|
238
|
+
console.log(chalk_1.default.blue('š Knowledge capture cancelled for security.'));
|
|
239
|
+
console.log(chalk_1.default.gray('š” Consider using the redacted version or removing sensitive information.'));
|
|
240
|
+
if (secretDiscoveries.length > 0) {
|
|
241
|
+
console.log(chalk_1.default.cyan('š Secret discoveries have been cataloged and can be managed separately.'));
|
|
242
|
+
}
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
// If user chooses to continue with critical secrets, use redacted version
|
|
246
|
+
if (secretAnalysis.shouldBlock && secretAnalysis.redactedContent) {
|
|
247
|
+
learningContent = secretAnalysis.redactedContent;
|
|
248
|
+
console.log(chalk_1.default.yellow('š Using redacted version for knowledge entry'));
|
|
249
|
+
}
|
|
250
|
+
// Add enhanced security warning and secret reference
|
|
251
|
+
const riskLevel = secretAnalysis.overallRiskScore >= 0.8 ? 'CRITICAL' :
|
|
252
|
+
secretAnalysis.overallRiskScore >= 0.6 ? 'HIGH' : 'MEDIUM';
|
|
253
|
+
learningContent += `\n\nā ļø [SECURITY WARNING - ${riskLevel} RISK: This entry contained sensitive information detected by AWS AI services]`;
|
|
254
|
+
if (secretDiscoveries.length > 0) {
|
|
255
|
+
learningContent += `\nš¢ [ENTERPRISE SECRET MANAGEMENT: ${secretDiscoveries.length} secret(s) cataloged for approval workflow]`;
|
|
256
|
+
learningContent += `\nš [SECRET REFERENCES: ${secretDiscoveries.map(d => d.secretName).join(', ')}]`;
|
|
257
|
+
}
|
|
258
|
+
spinner.start(`Capturing knowledge with ${riskLevel.toLowerCase()} security warning...`);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
spinner.start('Capturing your learning...');
|
|
262
|
+
}
|
|
263
|
+
// Check if Bedrock is available for enhancement
|
|
264
|
+
const bedrockAvailable = await bedrock_1.bedrockService.isAvailable();
|
|
265
|
+
let enhancedMetadata = null;
|
|
266
|
+
if (bedrockAvailable) {
|
|
267
|
+
try {
|
|
268
|
+
spinner.text = 'Enhancing with Amazon Bedrock AI...';
|
|
269
|
+
enhancedMetadata = await bedrock_1.bedrockService.enhanceKnowledgeEntry(learningContent, config_1.configManager.getConfig().userId || 'demo_user');
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
console.warn('Bedrock enhancement failed, continuing with basic capture');
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Create entry for cloud submission
|
|
276
|
+
const entry = {
|
|
277
|
+
content: learningContent,
|
|
278
|
+
authorId: config_1.configManager.getConfig().userId || 'demo_user',
|
|
279
|
+
teamId: config_1.configManager.getConfig().teamId || 'demo_team',
|
|
280
|
+
aiTopics: enhancedMetadata?.topics || tags, // Use Bedrock topics or manual tags
|
|
281
|
+
expertiseLevel: enhancedMetadata?.expertiseLevel || 'beginner',
|
|
282
|
+
impactScore: enhancedMetadata?.impactScore || Math.random() * 3 + 1, // Bedrock or demo scoring
|
|
283
|
+
helpfulnessRating: 0,
|
|
284
|
+
timeSavedMinutes: Math.floor(Math.random() * 30) + 5, // Demo time savings
|
|
285
|
+
viewCount: 0,
|
|
286
|
+
shareCount: 0,
|
|
287
|
+
questionsAnswered: 0,
|
|
288
|
+
onboardingRelevance: learningContent.toLowerCase().includes('onboard') ||
|
|
289
|
+
learningContent.toLowerCase().includes('new') ||
|
|
290
|
+
learningContent.toLowerCase().includes('learn'),
|
|
291
|
+
};
|
|
292
|
+
// Submit to cloud (required for production)
|
|
293
|
+
spinner.text = 'Syncing to cloud...';
|
|
294
|
+
const { awsApiService } = await Promise.resolve().then(() => __importStar(require('../services/aws-api')));
|
|
295
|
+
if (!awsApiService.isAuthenticated()) {
|
|
296
|
+
spinner.fail('Authentication required');
|
|
297
|
+
console.log(chalk_1.default.red('ā You must authenticate first to capture knowledge'));
|
|
298
|
+
console.log(chalk_1.default.gray('š” Run: today auth --username demo-user --password DemoPass123!'));
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
const cloudEntryId = await awsApiService.submitKnowledgeEntry(entry);
|
|
302
|
+
if (!cloudEntryId) {
|
|
303
|
+
spinner.fail('Failed to save knowledge to cloud');
|
|
304
|
+
console.log(chalk_1.default.red('ā Knowledge capture failed - cloud storage required'));
|
|
305
|
+
console.log(chalk_1.default.gray('š” Check your internet connection and try again'));
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
// Automatically generate vector embedding for semantic search
|
|
309
|
+
let embeddingGenerated = false;
|
|
310
|
+
try {
|
|
311
|
+
spinner.text = 'Generating vector embedding for semantic search...';
|
|
312
|
+
const embeddingAvailable = await vector_embeddings_1.vectorEmbeddingService.isAvailable();
|
|
313
|
+
if (embeddingAvailable) {
|
|
314
|
+
const embedding = await vector_embeddings_1.vectorEmbeddingService.generateEmbedding(learningContent);
|
|
315
|
+
if (embedding && embedding.length > 0) {
|
|
316
|
+
embeddingGenerated = true;
|
|
317
|
+
// Note: In production, this would be stored in the cloud database
|
|
318
|
+
// For now, we've generated it to enable immediate semantic search
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
console.warn('Vector embedding generation failed, semantic search may be limited:', error);
|
|
324
|
+
}
|
|
325
|
+
spinner.succeed('Knowledge captured and stored in cloud!');
|
|
326
|
+
console.log((0, formatting_1.formatSuccessMessage)('Knowledge captured successfully!', `Cloud Entry ID: ${cloudEntryId}`));
|
|
327
|
+
if (embeddingGenerated) {
|
|
328
|
+
console.log(chalk_1.default.blue('š Vector embedding generated - semantic search enabled'));
|
|
329
|
+
}
|
|
330
|
+
if (enhancedMetadata) {
|
|
331
|
+
console.log(chalk_1.default.green('š¤ Enhanced with Amazon Bedrock:'));
|
|
332
|
+
console.log(chalk_1.default.gray(` Topics: ${enhancedMetadata.topics.join(', ')}`));
|
|
333
|
+
console.log(chalk_1.default.gray(` Tags: ${enhancedMetadata.tags.join(', ')}`));
|
|
334
|
+
console.log(chalk_1.default.gray(` Impact Score: ${enhancedMetadata.impactScore.toFixed(1)}/10`));
|
|
335
|
+
console.log(chalk_1.default.gray(` Expertise Level: ${enhancedMetadata.expertiseLevel}`));
|
|
336
|
+
if (enhancedMetadata.summary) {
|
|
337
|
+
console.log(chalk_1.default.gray(` Summary: ${enhancedMetadata.summary}`));
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
spinner.fail('Failed to capture learning');
|
|
343
|
+
if (error instanceof validation_1.ValidationError) {
|
|
344
|
+
console.error((0, formatting_1.formatErrorMessage)(error));
|
|
345
|
+
console.log(chalk_1.default.gray('\nTip: Use --interactive flag for guided input'));
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
console.error((0, formatting_1.formatErrorMessage)(error));
|
|
349
|
+
}
|
|
350
|
+
process.exit(1);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
return cmd;
|
|
354
|
+
}
|
|
355
|
+
//# sourceMappingURL=learned.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learned.js","sourceRoot":"","sources":["../../src/commands/learned.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,IAAI,OAAO,CAoH9C"}
|
|
@@ -0,0 +1,141 @@
|
|
|
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.createOnboardCommand = createOnboardCommand;
|
|
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
|
+
function createOnboardCommand() {
|
|
46
|
+
const cmd = new commander_1.Command('onboard');
|
|
47
|
+
cmd.description('Onboarding acceleration system for new team members');
|
|
48
|
+
// Start subcommand
|
|
49
|
+
const startCmd = new commander_1.Command('start')
|
|
50
|
+
.description('Start personalized onboarding for a new team member')
|
|
51
|
+
.option('--user <userId>', 'User ID for the new team member')
|
|
52
|
+
.option('--experience <level>', 'Experience level (junior, mid, senior)', 'mid')
|
|
53
|
+
.option('--role <role>', 'Role/position of the new team member')
|
|
54
|
+
.option('--technologies <tech>', 'Comma-separated list of known technologies')
|
|
55
|
+
.action(async (options) => {
|
|
56
|
+
const spinner = (0, ora_1.default)('Initializing personalized onboarding...').start();
|
|
57
|
+
try {
|
|
58
|
+
// Validate required parameters first
|
|
59
|
+
if (!options.user) {
|
|
60
|
+
spinner.fail('Missing required parameter');
|
|
61
|
+
console.log(chalk_1.default.red('ā User ID is required'));
|
|
62
|
+
console.log(chalk_1.default.gray('š” Usage: today onboard start --user <userId> [options]'));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// Validate experience level
|
|
66
|
+
const validExperience = ['junior', 'mid', 'senior'];
|
|
67
|
+
if (options.experience && !validExperience.includes(options.experience)) {
|
|
68
|
+
spinner.fail('Invalid experience level');
|
|
69
|
+
console.log(chalk_1.default.red(`ā Experience level must be one of: ${validExperience.join(', ')}`));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const { onboardingAcceleratorService } = await Promise.resolve().then(() => __importStar(require('../services/onboarding-accelerator')));
|
|
73
|
+
// Get user details
|
|
74
|
+
const userId = options.user;
|
|
75
|
+
const userProfile = {
|
|
76
|
+
experience: options.experience,
|
|
77
|
+
role: options.role || 'Developer',
|
|
78
|
+
technologies: options.technologies ? options.technologies.split(',').map((t) => t.trim()).filter(Boolean) : [],
|
|
79
|
+
goals: ['Become productive quickly', 'Learn team practices', 'Build connections']
|
|
80
|
+
};
|
|
81
|
+
spinner.text = 'Analyzing team knowledge and generating learning path...';
|
|
82
|
+
const teamId = config_1.configManager.getConfig().teamId || 'demo_team';
|
|
83
|
+
const learningPath = await onboardingAcceleratorService.generateLearningPath(userId, teamId, userProfile);
|
|
84
|
+
spinner.succeed('Personalized onboarding path generated!');
|
|
85
|
+
console.log(chalk_1.default.green(`\nš Onboarding Path for ${userId}`));
|
|
86
|
+
console.log(chalk_1.default.gray(` Experience Level: ${userProfile.experience}`));
|
|
87
|
+
console.log(chalk_1.default.gray(` Role: ${userProfile.role}`));
|
|
88
|
+
console.log(chalk_1.default.gray(` Estimated Time to Productivity: ${learningPath.estimatedTimeToProductivity} days`));
|
|
89
|
+
console.log('');
|
|
90
|
+
// Display learning steps
|
|
91
|
+
console.log(chalk_1.default.cyan('š Learning Steps:'));
|
|
92
|
+
learningPath.learningSteps.slice(0, 8).forEach((step, index) => {
|
|
93
|
+
const priorityColor = step.priority === 'high' ? chalk_1.default.red :
|
|
94
|
+
step.priority === 'medium' ? chalk_1.default.yellow : chalk_1.default.gray;
|
|
95
|
+
const categoryIcon = step.category === 'technical' ? 'āļø' :
|
|
96
|
+
step.category === 'process' ? 'š' :
|
|
97
|
+
step.category === 'culture' ? 'š„' : 'š ļø';
|
|
98
|
+
console.log(chalk_1.default.white(` ${index + 1}. ${step.title} ${categoryIcon}`));
|
|
99
|
+
console.log(chalk_1.default.gray(` ${step.description}`));
|
|
100
|
+
console.log(priorityColor(` Priority: ${step.priority.toUpperCase()}`));
|
|
101
|
+
console.log(chalk_1.default.gray(` Estimated time: ${step.estimatedTime} minutes`));
|
|
102
|
+
if (step.suggestedExperts.length > 0) {
|
|
103
|
+
console.log(chalk_1.default.blue(` Experts: ${step.suggestedExperts.slice(0, 2).join(', ')}`));
|
|
104
|
+
}
|
|
105
|
+
console.log('');
|
|
106
|
+
});
|
|
107
|
+
// Display knowledge gaps
|
|
108
|
+
if (learningPath.knowledgeGaps.length > 0) {
|
|
109
|
+
console.log(chalk_1.default.yellow('š Identified Knowledge Gaps:'));
|
|
110
|
+
learningPath.knowledgeGaps.slice(0, 5).forEach((gap, index) => {
|
|
111
|
+
console.log(chalk_1.default.white(` ${index + 1}. ${gap.topic}`));
|
|
112
|
+
console.log(chalk_1.default.gray(` Importance: ${gap.importance}/10`));
|
|
113
|
+
console.log(chalk_1.default.gray(` Learning time: ${gap.estimatedLearningTime} hours`));
|
|
114
|
+
if (gap.expertContacts.length > 0) {
|
|
115
|
+
console.log(chalk_1.default.blue(` Contact: ${gap.expertContacts.slice(0, 2).join(', ')}`));
|
|
116
|
+
}
|
|
117
|
+
console.log('');
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
// Display suggested experts
|
|
121
|
+
if (learningPath.suggestedExperts.length > 0) {
|
|
122
|
+
console.log(chalk_1.default.cyan('š„ Recommended Expert Connections:'));
|
|
123
|
+
learningPath.suggestedExperts.slice(0, 5).forEach((expert, index) => {
|
|
124
|
+
console.log(chalk_1.default.white(` ${index + 1}. ${expert.name} (${expert.userId})`));
|
|
125
|
+
console.log(chalk_1.default.gray(` Expertise: ${expert.expertise.slice(0, 3).join(', ')}`));
|
|
126
|
+
console.log(chalk_1.default.gray(` ${expert.connectionReason}`));
|
|
127
|
+
console.log('');
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
console.log(chalk_1.default.green('š Onboarding system powered by AWS cloud AI'));
|
|
131
|
+
console.log(chalk_1.default.gray('š” Track progress with: today onboard progress --user <userId>'));
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
spinner.fail('Failed to start onboarding');
|
|
135
|
+
console.error((0, formatting_1.formatErrorMessage)(error));
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
cmd.addCommand(startCmd);
|
|
139
|
+
return cmd;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=onboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recent.d.ts","sourceRoot":"","sources":["../../src/commands/recent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,mBAAmB,IAAI,OAAO,CA+C7C"}
|
|
@@ -0,0 +1,83 @@
|
|
|
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.createRecentCommand = createRecentCommand;
|
|
40
|
+
const commander_1 = require("commander");
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const ora_1 = __importDefault(require("ora"));
|
|
43
|
+
const formatting_1 = require("../utils/formatting");
|
|
44
|
+
function createRecentCommand() {
|
|
45
|
+
const cmd = new commander_1.Command('recent');
|
|
46
|
+
cmd
|
|
47
|
+
.description('Show recent learning entries from cloud')
|
|
48
|
+
.option('-n, --number <count>', 'Number of entries to show', '5')
|
|
49
|
+
.action(async (options) => {
|
|
50
|
+
const spinner = (0, ora_1.default)('Fetching recent cloud entries...').start();
|
|
51
|
+
try {
|
|
52
|
+
// Check authentication first
|
|
53
|
+
const { awsApiService } = await Promise.resolve().then(() => __importStar(require('../services/aws-api')));
|
|
54
|
+
if (!awsApiService.isAuthenticated()) {
|
|
55
|
+
spinner.fail('Authentication required');
|
|
56
|
+
console.log(chalk_1.default.red('ā You must authenticate first to view recent entries'));
|
|
57
|
+
console.log(chalk_1.default.gray('š” Run: today auth --username demo-user --password DemoPass123!'));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const limit = parseInt(options.number);
|
|
61
|
+
const entries = await awsApiService.getKnowledgeEntries(limit);
|
|
62
|
+
spinner.succeed(`Fetched ${entries.length} recent entries from cloud`);
|
|
63
|
+
if (entries.length === 0) {
|
|
64
|
+
console.log(chalk_1.default.yellow('No learning entries found in cloud database. Start capturing your knowledge with:'));
|
|
65
|
+
console.log(chalk_1.default.gray(' today learned "Your learning here"'));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
console.log((0, formatting_1.formatSearchResults)(entries, 'recent cloud entries'));
|
|
69
|
+
console.log(chalk_1.default.green('āļø Data from AWS cloud knowledge base'));
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
spinner.fail('Failed to fetch recent cloud entries');
|
|
73
|
+
console.error((0, formatting_1.formatErrorMessage)(error));
|
|
74
|
+
if (error instanceof Error && error.message.includes('Authentication')) {
|
|
75
|
+
console.log(chalk_1.default.yellow('\nš” Make sure you are authenticated:'));
|
|
76
|
+
console.log(chalk_1.default.gray(' today auth --username demo-user --password DemoPass123!'));
|
|
77
|
+
}
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return cmd;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=recent.js.map
|