@testany/hephos 0.3.10 → 0.3.12
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/out/repl/ReplModeInk.d.ts.map +1 -1
- package/out/repl/ReplModeInk.js +45 -22
- package/out/repl/ReplModeInk.js.map +1 -1
- package/out/repl/components/HistoryOverlay.d.ts +4 -2
- package/out/repl/components/HistoryOverlay.d.ts.map +1 -1
- package/out/repl/components/HistoryOverlay.js +26 -10
- package/out/repl/components/HistoryOverlay.js.map +1 -1
- package/out/repl/hooks/useHistory.d.ts +32 -12
- package/out/repl/hooks/useHistory.d.ts.map +1 -1
- package/out/repl/hooks/useHistory.js +122 -74
- package/out/repl/hooks/useHistory.js.map +1 -1
- package/package.json +4 -1
- package/patches/ink-text-input+6.0.0.patch +30 -0
|
@@ -29,20 +29,36 @@ function truncateText(text, maxWidth) {
|
|
|
29
29
|
// Platform-specific modifier key label
|
|
30
30
|
const isMacOS = process.platform === 'darwin';
|
|
31
31
|
const altKeyLabel = isMacOS ? '⌥' : 'Alt+';
|
|
32
|
-
export function HistoryOverlay({ visible, entries, currentIndex, searchMode, searchQuery, terminalWidth, }) {
|
|
33
|
-
if (!visible || entries.length === 0 || currentIndex < 0) {
|
|
32
|
+
export function HistoryOverlay({ visible, entries, currentIndex, activeMode, searchMode, searchQuery, terminalWidth, }) {
|
|
33
|
+
if (!visible || entries.length === 0 || currentIndex < 0 || !activeMode) {
|
|
34
34
|
return null;
|
|
35
35
|
}
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
36
|
+
// Filter entries by active mode and build index mapping
|
|
37
|
+
// This ensures only entries matching the current mode are displayed
|
|
38
|
+
const filteredEntries = [];
|
|
39
|
+
for (let i = 0; i < entries.length; i++) {
|
|
40
|
+
if (entries[i].mode === activeMode) {
|
|
41
|
+
filteredEntries.push({ originalIndex: i, entry: entries[i] });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (filteredEntries.length === 0) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
// Find which filtered index corresponds to currentIndex
|
|
48
|
+
const currentFilteredIndex = filteredEntries.findIndex(e => e.originalIndex === currentIndex);
|
|
49
|
+
if (currentFilteredIndex < 0) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
// Calculate the range of filtered entries to display
|
|
53
|
+
const startFilteredIndex = Math.max(0, currentFilteredIndex - CONTEXT_SIZE);
|
|
54
|
+
const endFilteredIndex = Math.min(filteredEntries.length - 1, currentFilteredIndex + CONTEXT_SIZE);
|
|
55
|
+
// Get entries to display (extract text from HistoryEntry)
|
|
40
56
|
const displayEntries = [];
|
|
41
|
-
for (let i =
|
|
57
|
+
for (let i = startFilteredIndex; i <= endFilteredIndex; i++) {
|
|
42
58
|
displayEntries.push({
|
|
43
|
-
index: i,
|
|
44
|
-
entry:
|
|
45
|
-
isCurrent: i === currentIndex,
|
|
59
|
+
index: filteredEntries[i].originalIndex,
|
|
60
|
+
entry: filteredEntries[i].entry.text,
|
|
61
|
+
isCurrent: filteredEntries[i].originalIndex === currentIndex,
|
|
46
62
|
});
|
|
47
63
|
}
|
|
48
64
|
// Calculate max entry width (leave room for marker and padding)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryOverlay.js","sourceRoot":"","sources":["../../../src/repl/components/HistoryOverlay.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"HistoryOverlay.js","sourceRoot":"","sources":["../../../src/repl/components/HistoryOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,27 @@
|
|
|
7
7
|
* - Adjacent deduplication
|
|
8
8
|
* - Sensitive command filtering (keys, tokens, passwords)
|
|
9
9
|
* - Safe exit with savedInput restoration
|
|
10
|
+
* - Mode-separated history (normal vs conversation)
|
|
10
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* History entry mode - determines which mode's history this entry belongs to
|
|
14
|
+
* - 'normal': Commands entered in normal mode (e.g., /help, /start)
|
|
15
|
+
* - 'conversation': Messages entered in conversation mode
|
|
16
|
+
*/
|
|
17
|
+
export type HistoryMode = 'normal' | 'conversation';
|
|
18
|
+
/**
|
|
19
|
+
* A single history entry with its text and mode
|
|
20
|
+
*/
|
|
21
|
+
export interface HistoryEntry {
|
|
22
|
+
text: string;
|
|
23
|
+
mode: HistoryMode;
|
|
24
|
+
}
|
|
11
25
|
export interface HistoryState {
|
|
12
|
-
entries:
|
|
26
|
+
entries: HistoryEntry[];
|
|
13
27
|
isActive: boolean;
|
|
14
28
|
currentIndex: number;
|
|
15
29
|
savedInput: string;
|
|
30
|
+
activeMode: HistoryMode | null;
|
|
16
31
|
searchMode: boolean;
|
|
17
32
|
searchQuery: string;
|
|
18
33
|
searchResults: number[];
|
|
@@ -22,26 +37,27 @@ export interface UseHistoryOptions {
|
|
|
22
37
|
maxEntries?: number;
|
|
23
38
|
}
|
|
24
39
|
export interface UseHistoryReturn {
|
|
25
|
-
entries:
|
|
40
|
+
entries: HistoryEntry[];
|
|
26
41
|
isActive: boolean;
|
|
27
42
|
currentIndex: number;
|
|
43
|
+
activeMode: HistoryMode | null;
|
|
28
44
|
searchMode: boolean;
|
|
29
45
|
searchQuery: string;
|
|
30
|
-
addEntry: (entry: string) => void;
|
|
31
|
-
navigateUp: (currentInput: string) => string | null;
|
|
32
|
-
navigateDown: () => string | null;
|
|
46
|
+
addEntry: (entry: string, mode: HistoryMode) => void;
|
|
47
|
+
navigateUp: (currentInput: string, mode: HistoryMode) => string | null;
|
|
48
|
+
navigateDown: (mode: HistoryMode) => string | null;
|
|
33
49
|
exitHistory: () => string;
|
|
34
50
|
acceptHistory: () => string | null;
|
|
35
|
-
navigateUpFiltered: (currentInput: string, prefix: string) => string | null;
|
|
36
|
-
navigateDownFiltered: (prefix: string) => string | null;
|
|
37
|
-
enterSearchMode: (currentInput: string) => void;
|
|
51
|
+
navigateUpFiltered: (currentInput: string, prefix: string, mode: HistoryMode) => string | null;
|
|
52
|
+
navigateDownFiltered: (prefix: string, mode: HistoryMode) => string | null;
|
|
53
|
+
enterSearchMode: (currentInput: string, mode: HistoryMode) => void;
|
|
38
54
|
updateSearchQuery: (query: string) => string | null;
|
|
39
55
|
searchBackward: () => string | null;
|
|
40
56
|
searchForward: () => string | null;
|
|
41
57
|
exitSearchMode: () => string;
|
|
42
58
|
acceptSearch: () => string | null;
|
|
43
|
-
jumpUp: (currentInput: string, step?: number) => string | null;
|
|
44
|
-
jumpDown: (step?: number) => string | null;
|
|
59
|
+
jumpUp: (currentInput: string, mode: HistoryMode, step?: number) => string | null;
|
|
60
|
+
jumpDown: (mode: HistoryMode, step?: number) => string | null;
|
|
45
61
|
}
|
|
46
62
|
/**
|
|
47
63
|
* Check if a command contains sensitive information
|
|
@@ -50,7 +66,11 @@ declare function isSensitiveCommand(command: string): boolean;
|
|
|
50
66
|
/**
|
|
51
67
|
* Check if entry should be added to history
|
|
52
68
|
*/
|
|
53
|
-
declare function shouldAddToHistory(entry: string, lastEntry:
|
|
69
|
+
declare function shouldAddToHistory(entry: string, lastEntry: HistoryEntry | undefined, mode: HistoryMode): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get indices of entries matching a specific mode
|
|
72
|
+
*/
|
|
73
|
+
declare function getModeIndices(entries: HistoryEntry[], mode: HistoryMode): number[];
|
|
54
74
|
export declare function useHistory(options?: UseHistoryOptions): UseHistoryReturn;
|
|
55
|
-
export { isSensitiveCommand, shouldAddToHistory };
|
|
75
|
+
export { isSensitiveCommand, shouldAddToHistory, getModeIndices };
|
|
56
76
|
//# sourceMappingURL=useHistory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHistory.d.ts","sourceRoot":"","sources":["../../../src/repl/hooks/useHistory.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"useHistory.d.ts","sourceRoot":"","sources":["../../../src/repl/hooks/useHistory.ts"],"names":[],"mappings":"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"}
|