mycontext-cli 1.0.26 → 1.0.27
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 +199 -66
- package/dist/agents/implementations/InteractiveAgent.js +1 -1
- package/dist/agents/implementations/InteractiveAgent.js.map +1 -1
- package/dist/cli.js +18 -66
- package/dist/cli.js.map +1 -1
- package/dist/commands/agent-flow.d.ts.map +1 -1
- package/dist/commands/agent-flow.js +1 -1
- package/dist/commands/agent-flow.js.map +1 -1
- package/dist/commands/generate-components.d.ts +0 -1
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +3 -106
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/generate.d.ts +0 -2
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +48 -493
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts +0 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +0 -102
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +0 -4
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/update.d.ts +0 -3
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +11 -83
- package/dist/commands/update.js.map +1 -1
- package/dist/config/ai-providers.json +7 -7
- package/dist/config/dependencies.json +2 -2
- package/dist/utils/fileSystem.d.ts +0 -8
- package/dist/utils/fileSystem.d.ts.map +1 -1
- package/dist/utils/fileSystem.js +0 -50
- package/dist/utils/fileSystem.js.map +1 -1
- package/dist/utils/hybridAIClient.js +1 -1
- package/dist/utils/hybridAIClient.js.map +1 -1
- package/package.json +2 -3
- package/dist/commands/clear.d.ts +0 -25
- package/dist/commands/clear.d.ts.map +0 -1
- package/dist/commands/clear.js +0 -73
- package/dist/commands/clear.js.map +0 -1
- package/dist/commands/history.d.ts +0 -98
- package/dist/commands/history.d.ts.map +0 -1
- package/dist/commands/history.js +0 -308
- package/dist/commands/history.js.map +0 -1
- package/dist/commands/now.d.ts +0 -34
- package/dist/commands/now.d.ts.map +0 -1
- package/dist/commands/now.js +0 -168
- package/dist/commands/now.js.map +0 -1
- package/dist/commands/timestamp.d.ts +0 -28
- package/dist/commands/timestamp.d.ts.map +0 -1
- package/dist/commands/timestamp.js +0 -105
- package/dist/commands/timestamp.js.map +0 -1
- package/dist/commands/track.d.ts +0 -29
- package/dist/commands/track.d.ts.map +0 -1
- package/dist/commands/track.js +0 -333
- package/dist/commands/track.js.map +0 -1
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
export interface HistoryOptions {
|
|
3
|
-
limit?: number;
|
|
4
|
-
search?: string;
|
|
5
|
-
clear?: boolean;
|
|
6
|
-
format?: string;
|
|
7
|
-
ranked?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare class HistoryCommand {
|
|
10
|
-
private static readonly HISTORY_FILE;
|
|
11
|
-
/**
|
|
12
|
-
* Get command history file path
|
|
13
|
-
*/
|
|
14
|
-
static getHistoryPath(): string;
|
|
15
|
-
/**
|
|
16
|
-
* Ensure history directory exists
|
|
17
|
-
*/
|
|
18
|
-
static ensureHistoryDir(): Promise<void>;
|
|
19
|
-
/**
|
|
20
|
-
* Load command history
|
|
21
|
-
*/
|
|
22
|
-
static loadHistory(): Promise<Array<{
|
|
23
|
-
command: string;
|
|
24
|
-
timestamp: string;
|
|
25
|
-
cwd: string;
|
|
26
|
-
}>>;
|
|
27
|
-
/**
|
|
28
|
-
* Save command to history
|
|
29
|
-
*/
|
|
30
|
-
static saveCommand(command: string, cwd?: string): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* Clear command history
|
|
33
|
-
*/
|
|
34
|
-
static clearHistory(): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Search command history
|
|
37
|
-
*/
|
|
38
|
-
static searchHistory(query: string, limit?: number): Promise<Array<{
|
|
39
|
-
command: string;
|
|
40
|
-
timestamp: string;
|
|
41
|
-
cwd: string;
|
|
42
|
-
}>>;
|
|
43
|
-
/**
|
|
44
|
-
* Calculate command complexity score
|
|
45
|
-
*/
|
|
46
|
-
static calculateComplexityScore(command: string): number;
|
|
47
|
-
/**
|
|
48
|
-
* Calculate command frequency score
|
|
49
|
-
*/
|
|
50
|
-
static calculateFrequencyScore(command: string, history: Array<{
|
|
51
|
-
command: string;
|
|
52
|
-
timestamp: string;
|
|
53
|
-
cwd: string;
|
|
54
|
-
}>): number;
|
|
55
|
-
/**
|
|
56
|
-
* Calculate recency score (more recent = higher score)
|
|
57
|
-
*/
|
|
58
|
-
static calculateRecencyScore(timestamp: string): number;
|
|
59
|
-
/**
|
|
60
|
-
* Calculate overall importance score
|
|
61
|
-
*/
|
|
62
|
-
static calculateImportanceScore(entry: {
|
|
63
|
-
command: string;
|
|
64
|
-
timestamp: string;
|
|
65
|
-
cwd: string;
|
|
66
|
-
}, history: Array<{
|
|
67
|
-
command: string;
|
|
68
|
-
timestamp: string;
|
|
69
|
-
cwd: string;
|
|
70
|
-
}>): number;
|
|
71
|
-
/**
|
|
72
|
-
* Get ranked command history
|
|
73
|
-
*/
|
|
74
|
-
static getRankedHistory(limit?: number, search?: string): Promise<Array<{
|
|
75
|
-
command: string;
|
|
76
|
-
timestamp: string;
|
|
77
|
-
cwd: string;
|
|
78
|
-
score: number;
|
|
79
|
-
}>>;
|
|
80
|
-
/**
|
|
81
|
-
* Format history entry
|
|
82
|
-
*/
|
|
83
|
-
static formatHistoryEntry(entry: {
|
|
84
|
-
command: string;
|
|
85
|
-
timestamp: string;
|
|
86
|
-
cwd: string;
|
|
87
|
-
score?: number;
|
|
88
|
-
}, index: number, format: string, showScore?: boolean): string;
|
|
89
|
-
/**
|
|
90
|
-
* Execute history command
|
|
91
|
-
*/
|
|
92
|
-
static execute(options: HistoryOptions): Promise<void>;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Register history command with Commander
|
|
96
|
-
*/
|
|
97
|
-
export declare function registerHistoryCommand(program: Command): void;
|
|
98
|
-
//# sourceMappingURL=history.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAIlC;IAEF;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,MAAM;IAI/B;;OAEG;WACU,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9C;;OAEG;WACU,WAAW,IAAI,OAAO,CACjC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAC3D;IAaD;;OAEG;WACU,WAAW,CACtB,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAsBhB;;OAEG;WACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;OAEG;WACU,aAAa,CACxB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAQtE;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAmCxD;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,GAClE,MAAM;IAUT;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASvD;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAC1D,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,GAClE,MAAM;IAST;;OAEG;WACU,gBAAgB,CAC3B,KAAK,GAAE,MAAW,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CACR,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAC1E;IAsBD;;OAEG;IACH,MAAM,CAAC,kBAAkB,CACvB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1E,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,OAAe,GACzB,MAAM;IAuBT;;OAEG;WACU,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA0G7D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkC7D"}
|
package/dist/commands/history.js
DELETED
|
@@ -1,308 +0,0 @@
|
|
|
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.HistoryCommand = void 0;
|
|
40
|
-
exports.registerHistoryCommand = registerHistoryCommand;
|
|
41
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
-
const fs = __importStar(require("fs-extra"));
|
|
43
|
-
const path = __importStar(require("path"));
|
|
44
|
-
const os = __importStar(require("os"));
|
|
45
|
-
class HistoryCommand {
|
|
46
|
-
/**
|
|
47
|
-
* Get command history file path
|
|
48
|
-
*/
|
|
49
|
-
static getHistoryPath() {
|
|
50
|
-
return this.HISTORY_FILE;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Ensure history directory exists
|
|
54
|
-
*/
|
|
55
|
-
static async ensureHistoryDir() {
|
|
56
|
-
const historyDir = path.dirname(this.HISTORY_FILE);
|
|
57
|
-
await fs.ensureDir(historyDir);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Load command history
|
|
61
|
-
*/
|
|
62
|
-
static async loadHistory() {
|
|
63
|
-
try {
|
|
64
|
-
await this.ensureHistoryDir();
|
|
65
|
-
if (await fs.pathExists(this.HISTORY_FILE)) {
|
|
66
|
-
const data = await fs.readJson(this.HISTORY_FILE);
|
|
67
|
-
return Array.isArray(data) ? data : [];
|
|
68
|
-
}
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Save command to history
|
|
77
|
-
*/
|
|
78
|
-
static async saveCommand(command, cwd = process.cwd()) {
|
|
79
|
-
try {
|
|
80
|
-
const history = await this.loadHistory();
|
|
81
|
-
const newEntry = {
|
|
82
|
-
command,
|
|
83
|
-
timestamp: new Date().toISOString(),
|
|
84
|
-
cwd,
|
|
85
|
-
};
|
|
86
|
-
// Add to beginning of array
|
|
87
|
-
history.unshift(newEntry);
|
|
88
|
-
// Keep only last 1000 commands
|
|
89
|
-
const limitedHistory = history.slice(0, 1000);
|
|
90
|
-
await this.ensureHistoryDir();
|
|
91
|
-
await fs.writeJson(this.HISTORY_FILE, limitedHistory, { spaces: 2 });
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
// Silently fail - history is not critical
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Clear command history
|
|
99
|
-
*/
|
|
100
|
-
static async clearHistory() {
|
|
101
|
-
try {
|
|
102
|
-
await this.ensureHistoryDir();
|
|
103
|
-
await fs.writeJson(this.HISTORY_FILE, []);
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
throw new Error(`Failed to clear history: ${error}`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Search command history
|
|
111
|
-
*/
|
|
112
|
-
static async searchHistory(query, limit = 20) {
|
|
113
|
-
const history = await this.loadHistory();
|
|
114
|
-
const filtered = history.filter((entry) => entry.command.toLowerCase().includes(query.toLowerCase()));
|
|
115
|
-
return filtered.slice(0, limit);
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Calculate command complexity score
|
|
119
|
-
*/
|
|
120
|
-
static calculateComplexityScore(command) {
|
|
121
|
-
let score = 0;
|
|
122
|
-
// Length factor (longer commands are more complex)
|
|
123
|
-
score += command.length * 0.1;
|
|
124
|
-
// Special characters that are hard to type
|
|
125
|
-
const specialChars = /[!@#$%^&*()_+={}[\]|\\:";'<>?,./~`]/g;
|
|
126
|
-
const specialCharMatches = command.match(specialChars);
|
|
127
|
-
if (specialCharMatches) {
|
|
128
|
-
score += specialCharMatches.length * 2;
|
|
129
|
-
}
|
|
130
|
-
// Long flags and options
|
|
131
|
-
const longFlags = /--[a-zA-Z-]+/g;
|
|
132
|
-
const longFlagMatches = command.match(longFlags);
|
|
133
|
-
if (longFlagMatches) {
|
|
134
|
-
score += longFlagMatches.length * 1.5;
|
|
135
|
-
}
|
|
136
|
-
// Complex paths or URLs
|
|
137
|
-
if (command.includes("/") || command.includes("\\")) {
|
|
138
|
-
score += 1;
|
|
139
|
-
}
|
|
140
|
-
// Quoted strings (often complex)
|
|
141
|
-
const quotedStrings = /"[^"]*"/g;
|
|
142
|
-
const quotedMatches = command.match(quotedStrings);
|
|
143
|
-
if (quotedMatches) {
|
|
144
|
-
score += quotedMatches.length * 1.2;
|
|
145
|
-
}
|
|
146
|
-
return Math.round(score * 10) / 10;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Calculate command frequency score
|
|
150
|
-
*/
|
|
151
|
-
static calculateFrequencyScore(command, history) {
|
|
152
|
-
const normalizedCommand = command.toLowerCase().trim();
|
|
153
|
-
const frequency = history.filter((entry) => entry.command.toLowerCase().trim() === normalizedCommand).length;
|
|
154
|
-
// More frequent commands get higher score
|
|
155
|
-
return Math.log(frequency + 1) * 2;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Calculate recency score (more recent = higher score)
|
|
159
|
-
*/
|
|
160
|
-
static calculateRecencyScore(timestamp) {
|
|
161
|
-
const now = new Date();
|
|
162
|
-
const commandTime = new Date(timestamp);
|
|
163
|
-
const hoursAgo = (now.getTime() - commandTime.getTime()) / (1000 * 60 * 60);
|
|
164
|
-
// Recent commands get higher score, but not too much
|
|
165
|
-
return Math.max(0, 10 - hoursAgo * 0.1);
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Calculate overall importance score
|
|
169
|
-
*/
|
|
170
|
-
static calculateImportanceScore(entry, history) {
|
|
171
|
-
const complexityScore = this.calculateComplexityScore(entry.command);
|
|
172
|
-
const frequencyScore = this.calculateFrequencyScore(entry.command, history);
|
|
173
|
-
const recencyScore = this.calculateRecencyScore(entry.timestamp);
|
|
174
|
-
// Weighted combination
|
|
175
|
-
return complexityScore * 0.4 + frequencyScore * 0.4 + recencyScore * 0.2;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Get ranked command history
|
|
179
|
-
*/
|
|
180
|
-
static async getRankedHistory(limit = 20, search) {
|
|
181
|
-
const history = await this.loadHistory();
|
|
182
|
-
let filteredHistory = history;
|
|
183
|
-
if (search) {
|
|
184
|
-
filteredHistory = history.filter((entry) => entry.command.toLowerCase().includes(search.toLowerCase()));
|
|
185
|
-
}
|
|
186
|
-
// Calculate scores and add to entries
|
|
187
|
-
const scoredHistory = filteredHistory.map((entry) => ({
|
|
188
|
-
...entry,
|
|
189
|
-
score: this.calculateImportanceScore(entry, history),
|
|
190
|
-
}));
|
|
191
|
-
// Sort by score (highest first)
|
|
192
|
-
scoredHistory.sort((a, b) => b.score - a.score);
|
|
193
|
-
return scoredHistory.slice(0, limit);
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Format history entry
|
|
197
|
-
*/
|
|
198
|
-
static formatHistoryEntry(entry, index, format, showScore = false) {
|
|
199
|
-
const date = new Date(entry.timestamp);
|
|
200
|
-
const timeStr = date.toLocaleString();
|
|
201
|
-
switch (format.toLowerCase()) {
|
|
202
|
-
case "json":
|
|
203
|
-
return JSON.stringify(entry);
|
|
204
|
-
case "simple":
|
|
205
|
-
const scoreText = showScore && entry.score ? ` (${entry.score.toFixed(1)})` : "";
|
|
206
|
-
return `${index + 1}. ${entry.command}${scoreText}`;
|
|
207
|
-
case "detailed":
|
|
208
|
-
default:
|
|
209
|
-
const scoreDisplay = showScore && entry.score
|
|
210
|
-
? ` ${chalk_1.default.yellow(`⭐ ${entry.score.toFixed(1)}`)}`
|
|
211
|
-
: "";
|
|
212
|
-
return `${chalk_1.default.gray(`${index + 1}.`)} ${chalk_1.default.cyan(entry.command)}${scoreDisplay}\n ${chalk_1.default.gray(`📅 ${timeStr}`)} ${chalk_1.default.gray(`📁 ${entry.cwd}`)}`;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Execute history command
|
|
217
|
-
*/
|
|
218
|
-
static async execute(options) {
|
|
219
|
-
try {
|
|
220
|
-
if (options.clear) {
|
|
221
|
-
await this.clearHistory();
|
|
222
|
-
console.log(chalk_1.default.green("✅ Command history cleared"));
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
let history;
|
|
226
|
-
let useRanking = options.ranked !== false; // Default to true unless explicitly disabled
|
|
227
|
-
if (options.search) {
|
|
228
|
-
if (useRanking) {
|
|
229
|
-
history = await this.getRankedHistory(options.limit || 20, options.search);
|
|
230
|
-
console.log(chalk_1.default.blue(`🔍 Found ${history.length} commands matching "${options.search}" (ranked by importance)`));
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
history = await this.searchHistory(options.search, options.limit || 20);
|
|
234
|
-
console.log(chalk_1.default.blue(`🔍 Found ${history.length} commands matching "${options.search}"`));
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
if (useRanking) {
|
|
239
|
-
history = await this.getRankedHistory(options.limit || 20);
|
|
240
|
-
console.log(chalk_1.default.blue(`📜 Command History (${history.length} commands, ranked by importance)`));
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
history = await this.loadHistory();
|
|
244
|
-
if (options.limit) {
|
|
245
|
-
history = history.slice(0, options.limit);
|
|
246
|
-
}
|
|
247
|
-
console.log(chalk_1.default.blue(`📜 Command History (${history.length} commands)`));
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
if (history.length === 0) {
|
|
251
|
-
console.log(chalk_1.default.gray("No commands found"));
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
|
-
console.log(chalk_1.default.gray("─".repeat(60)));
|
|
255
|
-
history.forEach((entry, index) => {
|
|
256
|
-
console.log(this.formatHistoryEntry(entry, index, options.format || "detailed", useRanking));
|
|
257
|
-
if (options.format !== "simple") {
|
|
258
|
-
console.log();
|
|
259
|
-
}
|
|
260
|
-
});
|
|
261
|
-
if (options.format !== "simple") {
|
|
262
|
-
console.log(chalk_1.default.gray("─".repeat(60)));
|
|
263
|
-
if (useRanking) {
|
|
264
|
-
console.log(chalk_1.default.yellow("💡 Commands are ranked by importance (length, frequency, recency)"));
|
|
265
|
-
}
|
|
266
|
-
console.log(chalk_1.default.yellow("💡 Tip: Use arrow keys to navigate command history"));
|
|
267
|
-
console.log(chalk_1.default.yellow("💡 Tip: Use 'mycontext history --search <term>' to find specific commands"));
|
|
268
|
-
console.log(chalk_1.default.yellow("💡 Tip: Use 'mycontext his' as a shortcut for 'mycontext history'"));
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
catch (error) {
|
|
272
|
-
console.error(chalk_1.default.red("❌ Error accessing command history:"), error);
|
|
273
|
-
process.exit(1);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
exports.HistoryCommand = HistoryCommand;
|
|
278
|
-
HistoryCommand.HISTORY_FILE = path.join(os.homedir(), ".mycontext", "command_history.json");
|
|
279
|
-
/**
|
|
280
|
-
* Register history command with Commander
|
|
281
|
-
*/
|
|
282
|
-
function registerHistoryCommand(program) {
|
|
283
|
-
// Main history command
|
|
284
|
-
program
|
|
285
|
-
.command("history")
|
|
286
|
-
.description("Show recent command history (ranked by importance)")
|
|
287
|
-
.option("-l, --limit <number>", "Limit number of commands to show", "20")
|
|
288
|
-
.option("-s, --search <term>", "Search for commands containing term")
|
|
289
|
-
.option("--clear", "Clear command history")
|
|
290
|
-
.option("--no-ranked", "Disable smart ranking (show chronological order)")
|
|
291
|
-
.option("--format <format>", "Output format (detailed, simple, json)", "detailed")
|
|
292
|
-
.action(async (options) => {
|
|
293
|
-
await HistoryCommand.execute(options);
|
|
294
|
-
});
|
|
295
|
-
// Short alias
|
|
296
|
-
program
|
|
297
|
-
.command("his")
|
|
298
|
-
.description("Shortcut for 'mycontext history'")
|
|
299
|
-
.option("-l, --limit <number>", "Limit number of commands to show", "20")
|
|
300
|
-
.option("-s, --search <term>", "Search for commands containing term")
|
|
301
|
-
.option("--clear", "Clear command history")
|
|
302
|
-
.option("--no-ranked", "Disable smart ranking (show chronological order)")
|
|
303
|
-
.option("--format <format>", "Output format (detailed, simple, json)", "detailed")
|
|
304
|
-
.action(async (options) => {
|
|
305
|
-
await HistoryCommand.execute(options);
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
//# sourceMappingURL=history.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/now.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
export interface NowOptions {
|
|
3
|
-
format?: string;
|
|
4
|
-
withGitHash?: boolean;
|
|
5
|
-
copy?: boolean;
|
|
6
|
-
verbose?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare class NowCommand {
|
|
9
|
-
/**
|
|
10
|
-
* Get current timestamp in YYYYMMDDHHMMSS format
|
|
11
|
-
*/
|
|
12
|
-
static getTimestamp(): string;
|
|
13
|
-
/**
|
|
14
|
-
* Get git hash if available
|
|
15
|
-
*/
|
|
16
|
-
static getGitHash(): string | null;
|
|
17
|
-
/**
|
|
18
|
-
* Format timestamp based on format option
|
|
19
|
-
*/
|
|
20
|
-
static formatTimestamp(timestamp: string, format: string): string;
|
|
21
|
-
/**
|
|
22
|
-
* Copy text to clipboard (cross-platform)
|
|
23
|
-
*/
|
|
24
|
-
static copyToClipboard(text: string): Promise<boolean>;
|
|
25
|
-
/**
|
|
26
|
-
* Execute now command
|
|
27
|
-
*/
|
|
28
|
-
static execute(options: NowOptions): Promise<void>;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Register now command with Commander
|
|
32
|
-
*/
|
|
33
|
-
export declare function registerNowCommand(program: Command): void;
|
|
34
|
-
//# sourceMappingURL=now.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"now.d.ts","sourceRoot":"","sources":["../../src/commands/now.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,MAAM;IAY7B;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM,GAAG,IAAI;IAYlC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IA0CjE;;OAEG;WACU,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB5D;;OAEG;WACU,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAqEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAezD"}
|
package/dist/commands/now.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NowCommand = void 0;
|
|
7
|
-
exports.registerNowCommand = registerNowCommand;
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const child_process_1 = require("child_process");
|
|
10
|
-
class NowCommand {
|
|
11
|
-
/**
|
|
12
|
-
* Get current timestamp in YYYYMMDDHHMMSS format
|
|
13
|
-
*/
|
|
14
|
-
static getTimestamp() {
|
|
15
|
-
const now = new Date();
|
|
16
|
-
const year = now.getFullYear();
|
|
17
|
-
const month = String(now.getMonth() + 1).padStart(2, "0");
|
|
18
|
-
const day = String(now.getDate()).padStart(2, "0");
|
|
19
|
-
const hours = String(now.getHours()).padStart(2, "0");
|
|
20
|
-
const minutes = String(now.getMinutes()).padStart(2, "0");
|
|
21
|
-
const seconds = String(now.getSeconds()).padStart(2, "0");
|
|
22
|
-
return `${year}${month}${day}${hours}${minutes}${seconds}`;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Get git hash if available
|
|
26
|
-
*/
|
|
27
|
-
static getGitHash() {
|
|
28
|
-
try {
|
|
29
|
-
const hash = (0, child_process_1.execSync)("git rev-parse --short HEAD", {
|
|
30
|
-
encoding: "utf8",
|
|
31
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
32
|
-
}).trim();
|
|
33
|
-
return hash;
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Format timestamp based on format option
|
|
41
|
-
*/
|
|
42
|
-
static formatTimestamp(timestamp, format) {
|
|
43
|
-
switch (format.toLowerCase()) {
|
|
44
|
-
case "iso":
|
|
45
|
-
// Convert YYYYMMDDHHMMSS to ISO format
|
|
46
|
-
const year = timestamp.substring(0, 4);
|
|
47
|
-
const month = timestamp.substring(4, 6);
|
|
48
|
-
const day = timestamp.substring(6, 8);
|
|
49
|
-
const hours = timestamp.substring(8, 10);
|
|
50
|
-
const minutes = timestamp.substring(10, 12);
|
|
51
|
-
const seconds = timestamp.substring(12, 14);
|
|
52
|
-
return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;
|
|
53
|
-
case "unix":
|
|
54
|
-
// Convert to Unix timestamp
|
|
55
|
-
const date = new Date(parseInt(timestamp.substring(0, 4)), parseInt(timestamp.substring(4, 6)) - 1, parseInt(timestamp.substring(6, 8)), parseInt(timestamp.substring(8, 10)), parseInt(timestamp.substring(10, 12)), parseInt(timestamp.substring(12, 14)));
|
|
56
|
-
return Math.floor(date.getTime() / 1000).toString();
|
|
57
|
-
case "human":
|
|
58
|
-
// Human readable format
|
|
59
|
-
const now = new Date(parseInt(timestamp.substring(0, 4)), parseInt(timestamp.substring(4, 6)) - 1, parseInt(timestamp.substring(6, 8)), parseInt(timestamp.substring(8, 10)), parseInt(timestamp.substring(10, 12)), parseInt(timestamp.substring(12, 14)));
|
|
60
|
-
return now.toLocaleString();
|
|
61
|
-
case "default":
|
|
62
|
-
default:
|
|
63
|
-
return timestamp;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Copy text to clipboard (cross-platform)
|
|
68
|
-
*/
|
|
69
|
-
static async copyToClipboard(text) {
|
|
70
|
-
try {
|
|
71
|
-
const { execSync } = require("child_process");
|
|
72
|
-
const platform = process.platform;
|
|
73
|
-
if (platform === "darwin") {
|
|
74
|
-
execSync(`echo "${text}" | pbcopy`);
|
|
75
|
-
}
|
|
76
|
-
else if (platform === "win32") {
|
|
77
|
-
execSync(`echo "${text}" | clip`);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
execSync(`echo "${text}" | xclip -selection clipboard`);
|
|
81
|
-
}
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Execute now command
|
|
90
|
-
*/
|
|
91
|
-
static async execute(options) {
|
|
92
|
-
try {
|
|
93
|
-
const now = new Date();
|
|
94
|
-
const timestamp = this.getTimestamp();
|
|
95
|
-
// Display current time info
|
|
96
|
-
console.log(chalk_1.default.blue.bold("🕐 MyContext Now"));
|
|
97
|
-
console.log(chalk_1.default.gray("─".repeat(50)));
|
|
98
|
-
// Human readable time
|
|
99
|
-
console.log(chalk_1.default.white.bold("Current Time:"));
|
|
100
|
-
console.log(chalk_1.default.cyan(` ${now.toLocaleString()}`));
|
|
101
|
-
console.log(chalk_1.default.cyan(` ${now.toUTCString()}`));
|
|
102
|
-
console.log();
|
|
103
|
-
// Timestamp formats
|
|
104
|
-
console.log(chalk_1.default.white.bold("Timestamp Formats:"));
|
|
105
|
-
console.log(chalk_1.default.green(` Default: ${timestamp}`));
|
|
106
|
-
console.log(chalk_1.default.green(` ISO: ${this.formatTimestamp(timestamp, "iso")}`));
|
|
107
|
-
console.log(chalk_1.default.green(` Unix: ${this.formatTimestamp(timestamp, "unix")}`));
|
|
108
|
-
console.log();
|
|
109
|
-
// Git info if available
|
|
110
|
-
if (options.withGitHash || options.verbose) {
|
|
111
|
-
const gitHash = this.getGitHash();
|
|
112
|
-
if (gitHash) {
|
|
113
|
-
console.log(chalk_1.default.white.bold("Git Information:"));
|
|
114
|
-
console.log(chalk_1.default.yellow(` Hash: ${gitHash}`));
|
|
115
|
-
console.log(chalk_1.default.yellow(` With Hash: ${timestamp}_${gitHash}`));
|
|
116
|
-
console.log();
|
|
117
|
-
}
|
|
118
|
-
else if (options.verbose) {
|
|
119
|
-
console.log(chalk_1.default.white.bold("Git Information:"));
|
|
120
|
-
console.log(chalk_1.default.gray(" No git repository found"));
|
|
121
|
-
console.log();
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
// Usage examples
|
|
125
|
-
if (options.verbose) {
|
|
126
|
-
console.log(chalk_1.default.white.bold("Usage Examples:"));
|
|
127
|
-
console.log(chalk_1.default.gray(` Migration: migration_${timestamp}`));
|
|
128
|
-
console.log(chalk_1.default.gray(` Backup: 01-prd.${timestamp}.md`));
|
|
129
|
-
console.log(chalk_1.default.gray(` Component: components_${timestamp}`));
|
|
130
|
-
console.log();
|
|
131
|
-
}
|
|
132
|
-
// Copy to clipboard if requested
|
|
133
|
-
if (options.copy) {
|
|
134
|
-
const textToCopy = options.withGitHash && this.getGitHash()
|
|
135
|
-
? `${timestamp}_${this.getGitHash()}`
|
|
136
|
-
: timestamp;
|
|
137
|
-
const copied = await this.copyToClipboard(textToCopy);
|
|
138
|
-
if (copied) {
|
|
139
|
-
console.log(chalk_1.default.green(`✅ Copied "${textToCopy}" to clipboard`));
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
console.log(chalk_1.default.yellow("⚠️ Could not copy to clipboard"));
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
catch (error) {
|
|
147
|
-
console.error(chalk_1.default.red("❌ Error getting current time:"), error);
|
|
148
|
-
process.exit(1);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
exports.NowCommand = NowCommand;
|
|
153
|
-
/**
|
|
154
|
-
* Register now command with Commander
|
|
155
|
-
*/
|
|
156
|
-
function registerNowCommand(program) {
|
|
157
|
-
program
|
|
158
|
-
.command("now")
|
|
159
|
-
.description("Show current timestamp in user-friendly format")
|
|
160
|
-
.option("--format <format>", "Output format (default, iso, unix, human)", "default")
|
|
161
|
-
.option("--with-git-hash", "Include git commit hash")
|
|
162
|
-
.option("--copy", "Copy timestamp to clipboard")
|
|
163
|
-
.option("--verbose", "Show detailed information and examples")
|
|
164
|
-
.action(async (options) => {
|
|
165
|
-
await NowCommand.execute(options);
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=now.js.map
|
package/dist/commands/now.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"now.js","sourceRoot":"","sources":["../../src/commands/now.ts"],"names":[],"mappings":"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"}
|