@sagmans/dsh-tui 0.11.1 → 0.12.1
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 +72 -20
- package/cordis.patch.yml +4 -0
- package/lib/agent/status.d.ts +5 -0
- package/lib/agent/status.d.ts.map +1 -1
- package/lib/agent/status.js +2 -0
- package/lib/agent/status.js.map +1 -1
- package/lib/compat/section.d.ts +8 -0
- package/lib/compat/section.d.ts.map +1 -1
- package/lib/compat/section.js +9 -0
- package/lib/compat/section.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +14 -1
- package/lib/index.js.map +1 -1
- package/lib/input/action-catalog.d.ts +3 -1
- package/lib/input/action-catalog.d.ts.map +1 -1
- package/lib/input/action-catalog.js +7 -2
- package/lib/input/action-catalog.js.map +1 -1
- package/lib/input/actions.d.ts +8 -3
- package/lib/input/actions.d.ts.map +1 -1
- package/lib/input/actions.js +22 -12
- package/lib/input/actions.js.map +1 -1
- package/lib/input/keymap-conflicts.d.ts +5 -4
- package/lib/input/keymap-conflicts.d.ts.map +1 -1
- package/lib/input/keymap-conflicts.js +12 -12
- package/lib/input/keymap-conflicts.js.map +1 -1
- package/lib/input/keymap-settings.d.ts +4 -7
- package/lib/input/keymap-settings.d.ts.map +1 -1
- package/lib/input/keymap-settings.js +6 -5
- package/lib/input/keymap-settings.js.map +1 -1
- package/lib/input/keymap.d.ts.map +1 -1
- package/lib/input/keymap.js +6 -6
- package/lib/input/keymap.js.map +1 -1
- package/lib/input/submission.d.ts +3 -0
- package/lib/input/submission.d.ts.map +1 -1
- package/lib/input/submission.js.map +1 -1
- package/lib/keymaps.d.ts +56 -0
- package/lib/keymaps.d.ts.map +1 -0
- package/lib/keymaps.js +106 -0
- package/lib/keymaps.js.map +1 -0
- package/lib/keys-command.d.ts.map +1 -1
- package/lib/keys-command.js +4 -4
- package/lib/keys-command.js.map +1 -1
- package/lib/surface/appearance-preferences.d.ts +3 -0
- package/lib/surface/appearance-preferences.d.ts.map +1 -1
- package/lib/surface/appearance-preferences.js +6 -0
- package/lib/surface/appearance-preferences.js.map +1 -1
- package/lib/surface/appearance.d.ts +3 -0
- package/lib/surface/appearance.d.ts.map +1 -1
- package/lib/surface/appearance.js +17 -4
- package/lib/surface/appearance.js.map +1 -1
- package/lib/surface/commands.d.ts +2 -0
- package/lib/surface/commands.d.ts.map +1 -1
- package/lib/surface/commands.js +3 -0
- package/lib/surface/commands.js.map +1 -1
- package/lib/surface/model-choice.d.ts +5 -0
- package/lib/surface/model-choice.d.ts.map +1 -1
- package/lib/surface/model-choice.js +6 -2
- package/lib/surface/model-choice.js.map +1 -1
- package/lib/surface/plugin-actions.d.ts +18 -0
- package/lib/surface/plugin-actions.d.ts.map +1 -0
- package/lib/surface/plugin-actions.js +45 -0
- package/lib/surface/plugin-actions.js.map +1 -0
- package/lib/surface/prompt-input.d.ts.map +1 -1
- package/lib/surface/prompt-input.js +4 -0
- package/lib/surface/prompt-input.js.map +1 -1
- package/lib/theme-command.d.ts +19 -3
- package/lib/theme-command.d.ts.map +1 -1
- package/lib/theme-command.js +18 -6
- package/lib/theme-command.js.map +1 -1
- package/lib/theme-settings.d.ts +2 -10
- package/lib/theme-settings.d.ts.map +1 -1
- package/lib/ui/copy.js +3 -0
- package/lib/ui/copy.js.map +1 -1
- package/lib/ui/editor.d.ts +15 -10
- package/lib/ui/editor.d.ts.map +1 -1
- package/lib/ui/editor.js +48 -33
- package/lib/ui/editor.js.map +1 -1
- package/lib/ui/frame.d.ts +11 -5
- package/lib/ui/frame.d.ts.map +1 -1
- package/lib/ui/frame.js +23 -7
- package/lib/ui/frame.js.map +1 -1
- package/lib/ui/layout.d.ts +3 -4
- package/lib/ui/layout.d.ts.map +1 -1
- package/lib/ui/layout.js +14 -6
- package/lib/ui/layout.js.map +1 -1
- package/lib/ui/queue.d.ts +1 -1
- package/lib/ui/queue.d.ts.map +1 -1
- package/lib/ui/queue.js +3 -2
- package/lib/ui/queue.js.map +1 -1
- package/lib/ui/status.d.ts +2 -0
- package/lib/ui/status.d.ts.map +1 -1
- package/lib/ui/status.js +4 -3
- package/lib/ui/status.js.map +1 -1
- package/lib/ui/view/transcript-message.d.ts.map +1 -1
- package/lib/ui/view/transcript-message.js +4 -3
- package/lib/ui/view/transcript-message.js.map +1 -1
- package/lib/ui/view.js +2 -2
- package/lib/ui/view.js.map +1 -1
- package/package.json +5 -1
package/lib/input/actions.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { SURFACE_ACTIONS, LIBRARY_KEY_ADDITIONS, KEYMAP_ALIASES, ACTION_CATALOG, actionOf, shippedKeys } from "./action-catalog.js";
|
|
1
|
+
import { SURFACE_ACTIONS, LIBRARY_KEY_ADDITIONS, KEYMAP_ALIASES, ACTION_CATALOG, actionOf, shippedKeys, isPluginActionId } from "./action-catalog.js";
|
|
2
2
|
import { TERMINAL_OWNED_KEYS, normalizeKey, isPressable, isSimpleChord, isBareCharacter } from "./key-press.js";
|
|
3
3
|
import { refuseMatcherClashes, refusePromptClashes, refusePrefixTakingKeys, refuseLibraryClashes, refuseViewportTakingKeys } from "./keymap-conflicts.js";
|
|
4
4
|
import { matchesKey } from '@earendil-works/pi-tui';
|
|
5
|
+
/** Each surface resolves its own extensions rather than mutating a process-wide table. */
|
|
6
|
+
export function catalogOf(map) { return map.catalog ?? ACTION_CATALOG; }
|
|
5
7
|
/** The keys in force for one action, or nothing when no action has that id. */
|
|
6
8
|
export function keysFor(map, id) {
|
|
7
9
|
return map.effective[id] ?? [];
|
|
@@ -56,7 +58,8 @@ export function actionLabel(id) {
|
|
|
56
58
|
export function hintKeys(map, id) {
|
|
57
59
|
return keysFor(map, id).map(keyName).join('/');
|
|
58
60
|
}
|
|
59
|
-
|
|
61
|
+
/** External defaults follow the same terminal key validation as user preferences. */
|
|
62
|
+
export function readKeys(action, value) {
|
|
60
63
|
const written = Array.isArray(value) ? value : [value];
|
|
61
64
|
const keys = [];
|
|
62
65
|
for (const raw of written) {
|
|
@@ -92,7 +95,7 @@ function readKeys(action, value) {
|
|
|
92
95
|
* document is edited by hand: a message the reader cannot act on is a message
|
|
93
96
|
* that costs them the whole section.
|
|
94
97
|
*/
|
|
95
|
-
export function resolveKeymap(overrides) {
|
|
98
|
+
export function resolveKeymap(overrides, catalog = ACTION_CATALOG) {
|
|
96
99
|
// An addition naming a row the library no longer draws would silently drop
|
|
97
100
|
// the key, so it is refused while the startup still has somewhere to say so.
|
|
98
101
|
for (const id of Object.keys(LIBRARY_KEY_ADDITIONS)) {
|
|
@@ -100,7 +103,7 @@ export function resolveKeymap(overrides) {
|
|
|
100
103
|
throw new Error(`key additions name ${id}, which is not a library action this surface can bind`);
|
|
101
104
|
}
|
|
102
105
|
const effective = {};
|
|
103
|
-
for (const action of
|
|
106
|
+
for (const action of catalog)
|
|
104
107
|
effective[action.id] = [...shippedKeys(action)];
|
|
105
108
|
const written = new Set();
|
|
106
109
|
for (const [id, value] of Object.entries(overrides)) {
|
|
@@ -109,18 +112,19 @@ export function resolveKeymap(overrides) {
|
|
|
109
112
|
const canonical = KEYMAP_ALIASES[id];
|
|
110
113
|
if (canonical !== undefined)
|
|
111
114
|
throw new Error(`key action "${id}" belongs to the prompt bar; write ${canonical} instead`);
|
|
112
|
-
const action = actionOf(id)
|
|
115
|
+
const action = actionOf(id, catalog) ?? (isPluginActionId(id)
|
|
116
|
+
? { id, layer: 'chord', defaultKeys: [], label: id, mayUseBare: true, mayUnbind: true } : undefined);
|
|
113
117
|
if (action === undefined)
|
|
114
118
|
throw new Error(`unknown dsh-tui key action: ${id}`);
|
|
115
119
|
effective[id] = readKeys(action, value);
|
|
116
120
|
written.add(id);
|
|
117
121
|
}
|
|
118
|
-
refusePromptClashes(effective);
|
|
119
|
-
refuseMatcherClashes(effective);
|
|
120
|
-
refusePrefixTakingKeys(effective);
|
|
122
|
+
refusePromptClashes(effective, catalog);
|
|
123
|
+
refuseMatcherClashes(effective, catalog);
|
|
124
|
+
refusePrefixTakingKeys(effective, catalog);
|
|
121
125
|
refuseLibraryClashes(effective);
|
|
122
|
-
refuseViewportTakingKeys(effective, written);
|
|
123
|
-
return { effective, written };
|
|
126
|
+
refuseViewportTakingKeys(effective, written, catalog);
|
|
127
|
+
return { effective, written, catalog };
|
|
124
128
|
}
|
|
125
129
|
/** The map as it reads when the reader has written nothing, built once. */
|
|
126
130
|
export function defaultKeymap() {
|
|
@@ -133,10 +137,10 @@ let shippedMap;
|
|
|
133
137
|
const WINNING_LAYERS = ['chord', 'surface'];
|
|
134
138
|
/** Every key the chord or surface layer takes from a library action, in layer order. */
|
|
135
139
|
export function shadowsOf(map) {
|
|
136
|
-
const library =
|
|
140
|
+
const library = catalogOf(map).filter(action => action.layer === 'library');
|
|
137
141
|
const found = [];
|
|
138
142
|
for (const layer of WINNING_LAYERS) {
|
|
139
|
-
for (const winner of
|
|
143
|
+
for (const winner of catalogOf(map).filter(action => action.layer === layer)) {
|
|
140
144
|
for (const key of keysFor(map, winner.id)) {
|
|
141
145
|
for (const loser of library) {
|
|
142
146
|
if (keysFor(map, loser.id).includes(key))
|
|
@@ -167,6 +171,12 @@ export function surfaceBindings(map) {
|
|
|
167
171
|
for (const key of keysFor(map, action.id))
|
|
168
172
|
found.push({ key, action: action.name, id: action.id });
|
|
169
173
|
}
|
|
174
|
+
for (const action of catalogOf(map)) {
|
|
175
|
+
if (action.layer !== 'surface' || !isPluginActionId(action.id))
|
|
176
|
+
continue;
|
|
177
|
+
for (const key of keysFor(map, action.id))
|
|
178
|
+
found.push({ key, action: 'plugin', id: action.id });
|
|
179
|
+
}
|
|
170
180
|
return found;
|
|
171
181
|
}
|
|
172
182
|
//# sourceMappingURL=actions.js.map
|
package/lib/input/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/input/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/input/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Action } from './action-catalog.ts';
|
|
1
2
|
import { type KeyId } from '@earendil-works/pi-tui';
|
|
2
3
|
/**
|
|
3
4
|
* Which bindings a keymap must refuse, and why.
|
|
@@ -15,7 +16,7 @@ import { type KeyId } from '@earendil-works/pi-tui';
|
|
|
15
16
|
* action the reader could never reach — and the surface answers these layers
|
|
16
17
|
* itself, first row first, so two rows sharing one byte is one row that loses.
|
|
17
18
|
*/
|
|
18
|
-
export declare function refuseMatcherClashes(effective: Readonly<Record<string, readonly KeyId[]
|
|
19
|
+
export declare function refuseMatcherClashes(effective: Readonly<Record<string, readonly KeyId[]>>, catalog?: readonly Action[]): void;
|
|
19
20
|
/**
|
|
20
21
|
* Refuse two prompt rows claiming one press.
|
|
21
22
|
*
|
|
@@ -25,7 +26,7 @@ export declare function refuseMatcherClashes(effective: Readonly<Record<string,
|
|
|
25
26
|
* press they arrive as rather than by every byte the matcher folds, so moving
|
|
26
27
|
* send onto Ctrl+J stays possible.
|
|
27
28
|
*/
|
|
28
|
-
export declare function refusePromptClashes(effective: Readonly<Record<string, readonly KeyId[]
|
|
29
|
+
export declare function refusePromptClashes(effective: Readonly<Record<string, readonly KeyId[]>>, catalog?: readonly Action[]): void;
|
|
29
30
|
/**
|
|
30
31
|
* Refuse a chord starter that would take a key the surface already answers.
|
|
31
32
|
*
|
|
@@ -33,7 +34,7 @@ export declare function refusePromptClashes(effective: Readonly<Record<string, r
|
|
|
33
34
|
* that is also a surface key would not shadow that action while a chord is
|
|
34
35
|
* armed: it would remove it for the whole session.
|
|
35
36
|
*/
|
|
36
|
-
export declare function refusePrefixTakingKeys(effective: Readonly<Record<string, readonly KeyId[]
|
|
37
|
+
export declare function refusePrefixTakingKeys(effective: Readonly<Record<string, readonly KeyId[]>>, catalog?: readonly Action[]): void;
|
|
37
38
|
/**
|
|
38
39
|
* Refuse two rows the library reads on one press.
|
|
39
40
|
*
|
|
@@ -55,5 +56,5 @@ export declare function refuseLibraryClashes(effective: Readonly<Record<string,
|
|
|
55
56
|
* reader wrote, and both are a binding that does nothing, so both are refused
|
|
56
57
|
* apart from the overlap the library already ships.
|
|
57
58
|
*/
|
|
58
|
-
export declare function refuseViewportTakingKeys(effective: Readonly<Record<string, readonly KeyId[]>>, written: ReadonlySet<string
|
|
59
|
+
export declare function refuseViewportTakingKeys(effective: Readonly<Record<string, readonly KeyId[]>>, written: ReadonlySet<string>, catalog?: readonly Action[]): void;
|
|
59
60
|
//# sourceMappingURL=keymap-conflicts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap-conflicts.d.ts","sourceRoot":"","sources":["../../src/input/keymap-conflicts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keymap-conflicts.d.ts","sourceRoot":"","sources":["../../src/input/keymap-conflicts.ts"],"names":[],"mappings":"AACA,OAAO,EAA2D,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC1G,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD;;;;;;GAMG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,GAAE,SAAS,MAAM,EAAmB,GAAG,IAAI,CAY7I;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,GAAE,SAAS,MAAM,EAAmB,GAAG,IAAI,CAa5I;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,GAAE,SAAS,MAAM,EAAmB,GAAG,IAAI,CAW/I;AAsGD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,CAWhG;AAoED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,GAAE,SAAS,MAAM,EAAmB,GAAG,IAAI,CAkB/K"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ENTER_KEY, pressOf, pressOverlaps } from "./key-press.js";
|
|
2
|
-
import { ACTION_CATALOG, actionOf, shippedKeys } from "./action-catalog.js";
|
|
2
|
+
import { ACTION_CATALOG, actionOf, shippedKeys, isPluginActionId } from "./action-catalog.js";
|
|
3
3
|
import {} from '@earendil-works/pi-tui';
|
|
4
4
|
/**
|
|
5
5
|
* Which bindings a keymap must refuse, and why.
|
|
@@ -17,10 +17,10 @@ import {} from '@earendil-works/pi-tui';
|
|
|
17
17
|
* action the reader could never reach — and the surface answers these layers
|
|
18
18
|
* itself, first row first, so two rows sharing one byte is one row that loses.
|
|
19
19
|
*/
|
|
20
|
-
export function refuseMatcherClashes(effective) {
|
|
20
|
+
export function refuseMatcherClashes(effective, catalog = ACTION_CATALOG) {
|
|
21
21
|
for (const layer of ['surface', 'chord', 'gate', 'question', 'picker']) {
|
|
22
22
|
const rows = [];
|
|
23
|
-
for (const action of
|
|
23
|
+
for (const action of catalog) {
|
|
24
24
|
if (action.layer !== layer)
|
|
25
25
|
continue;
|
|
26
26
|
for (const key of effective[action.id] ?? [])
|
|
@@ -41,9 +41,9 @@ export function refuseMatcherClashes(effective) {
|
|
|
41
41
|
* press they arrive as rather than by every byte the matcher folds, so moving
|
|
42
42
|
* send onto Ctrl+J stays possible.
|
|
43
43
|
*/
|
|
44
|
-
export function refusePromptClashes(effective) {
|
|
44
|
+
export function refusePromptClashes(effective, catalog = ACTION_CATALOG) {
|
|
45
45
|
const owner = new Map();
|
|
46
|
-
for (const action of
|
|
46
|
+
for (const action of catalog) {
|
|
47
47
|
if (action.layer !== 'prompt')
|
|
48
48
|
continue;
|
|
49
49
|
for (const key of effective[action.id] ?? []) {
|
|
@@ -63,8 +63,8 @@ export function refusePromptClashes(effective) {
|
|
|
63
63
|
* that is also a surface key would not shadow that action while a chord is
|
|
64
64
|
* armed: it would remove it for the whole session.
|
|
65
65
|
*/
|
|
66
|
-
export function refusePrefixTakingKeys(effective) {
|
|
67
|
-
const owners =
|
|
66
|
+
export function refusePrefixTakingKeys(effective, catalog = ACTION_CATALOG) {
|
|
67
|
+
const owners = catalog.filter(action => action.layer === 'surface' || action.layer === 'prompt');
|
|
68
68
|
for (const key of effective['chord.prefix'] ?? []) {
|
|
69
69
|
for (const owner of owners) {
|
|
70
70
|
// A prefix is consumed before anything else looks at the press, so it takes
|
|
@@ -227,9 +227,9 @@ const VIEWPORT_FIRST_ROWS = [
|
|
|
227
227
|
'tui.altScreen.bottom',
|
|
228
228
|
];
|
|
229
229
|
/** Every row a press reaches, with the keys in force: the catalog and the bar's own library rows. */
|
|
230
|
-
function dispatchRows(effective) {
|
|
230
|
+
function dispatchRows(effective, catalog) {
|
|
231
231
|
const rows = {};
|
|
232
|
-
for (const action of
|
|
232
|
+
for (const action of catalog)
|
|
233
233
|
rows[action.id] = [...(effective[action.id] ?? [])];
|
|
234
234
|
rows['tui.input.submit'] = [...(effective['prompt.submit'] ?? [])];
|
|
235
235
|
rows['tui.input.newLine'] = (effective['prompt.newLine'] ?? []).filter(key => key !== ENTER_KEY);
|
|
@@ -270,7 +270,7 @@ function viewportPairs(rows) {
|
|
|
270
270
|
* reader wrote, and both are a binding that does nothing, so both are refused
|
|
271
271
|
* apart from the overlap the library already ships.
|
|
272
272
|
*/
|
|
273
|
-
export function refuseViewportTakingKeys(effective, written) {
|
|
273
|
+
export function refuseViewportTakingKeys(effective, written, catalog = ACTION_CATALOG) {
|
|
274
274
|
const pairKey = (pair) => `${pair.viewport}\u0000${pair.other}\u0000${pair.spellings.join('|')}`;
|
|
275
275
|
const shipped = new Set(viewportPairs(shippedRows()).map(pairKey));
|
|
276
276
|
// A prompt row is read through a library row of the bar's own, so the reader's
|
|
@@ -278,10 +278,10 @@ export function refuseViewportTakingKeys(effective, written) {
|
|
|
278
278
|
const isWritten = (id) => written.has(id) ||
|
|
279
279
|
(id === 'tui.input.submit' && written.has('prompt.submit')) ||
|
|
280
280
|
(id === 'tui.input.newLine' && written.has('prompt.newLine'));
|
|
281
|
-
for (const pair of viewportPairs(dispatchRows(effective))) {
|
|
281
|
+
for (const pair of viewportPairs(dispatchRows(effective, catalog))) {
|
|
282
282
|
if (shipped.has(pairKey(pair)))
|
|
283
283
|
continue;
|
|
284
|
-
if (isWritten(pair.other)) {
|
|
284
|
+
if (isWritten(pair.other) || isPluginActionId(pair.other)) {
|
|
285
285
|
throw new Error(`key "${pair.key}" on ${pair.other} is read by ${pair.viewport} first; move that row or pick another key`);
|
|
286
286
|
}
|
|
287
287
|
if (isWritten(pair.viewport)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap-conflicts.js","sourceRoot":"","sources":["../../src/input/keymap-conflicts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAoC,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACpG,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"keymap-conflicts.js","sourceRoot":"","sources":["../../src/input/keymap-conflicts.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,14 +2,11 @@ import z from '@deepseek-ai/schemastery';
|
|
|
2
2
|
/**
|
|
3
3
|
* The `keys:` half of the section.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* A dictionary preserves optional plugin rows through profile settings projection;
|
|
6
|
+
* a fixed object exposes only its schema-declared builtin names.
|
|
7
|
+
* The resolver still validates action names and key policy before activation.
|
|
7
8
|
*/
|
|
8
|
-
export declare const KeymapSectionSchema: z
|
|
9
|
-
[k: string]: z<string | string[], string | string[], "plain">;
|
|
10
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
11
|
-
[k: string]: z<string | string[], string | string[], "plain">;
|
|
12
|
-
}>>, "plain">;
|
|
9
|
+
export declare const KeymapSectionSchema: z;
|
|
13
10
|
/**
|
|
14
11
|
* Whether a name is an action the surface has.
|
|
15
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap-settings.d.ts","sourceRoot":"","sources":["../../src/input/keymap-settings.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAWxC
|
|
1
|
+
{"version":3,"file":"keymap-settings.d.ts","sourceRoot":"","sources":["../../src/input/keymap-settings.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAWxC;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAAyB,CAAA;AAI3D;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import z from '@deepseek-ai/schemastery';
|
|
2
|
-
import { ACTION_CATALOG } from "./action-catalog.js";
|
|
2
|
+
import { ACTION_CATALOG, isPluginActionId } from "./action-catalog.js";
|
|
3
3
|
/**
|
|
4
4
|
* One action's keys as the document writes them: one key, or a list of them.
|
|
5
5
|
*
|
|
@@ -10,10 +10,11 @@ const KeyListSchema = z.union([z.string(), z.array(z.string())]);
|
|
|
10
10
|
/**
|
|
11
11
|
* The `keys:` half of the section.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* A dictionary preserves optional plugin rows through profile settings projection;
|
|
14
|
+
* a fixed object exposes only its schema-declared builtin names.
|
|
15
|
+
* The resolver still validates action names and key policy before activation.
|
|
15
16
|
*/
|
|
16
|
-
export const KeymapSectionSchema = z.
|
|
17
|
+
export const KeymapSectionSchema = z.dict(KeyListSchema);
|
|
17
18
|
const ACTION_IDS = new Set(ACTION_CATALOG.map(action => action.id));
|
|
18
19
|
/**
|
|
19
20
|
* Whether a name is an action the surface has.
|
|
@@ -23,6 +24,6 @@ const ACTION_IDS = new Set(ACTION_CATALOG.map(action => action.id));
|
|
|
23
24
|
* could not debug from the screen.
|
|
24
25
|
*/
|
|
25
26
|
export function isActionId(name) {
|
|
26
|
-
return ACTION_IDS.has(name);
|
|
27
|
+
return ACTION_IDS.has(name) || isPluginActionId(name);
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=keymap-settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap-settings.js","sourceRoot":"","sources":["../../src/input/keymap-settings.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"keymap-settings.js","sourceRoot":"","sources":["../../src/input/keymap-settings.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtE;;;;;GAKG;AACH,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;AAEhE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAE3D,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AAExF;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACvD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.d.ts","sourceRoot":"","sources":["../../src/input/keymap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmE,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACpH,OAAO,
|
|
1
|
+
{"version":3,"file":"keymap.d.ts","sourceRoot":"","sources":["../../src/input/keymap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmE,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACpH,OAAO,EAAqC,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAG7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,EAAE,SAAS,KAAK,EAA6C,CAAA;AAE7F,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,EAAE,KAA+B,CAAA;AA0BhE,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAA;IACnB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CASlE;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAarE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAA;IAClC,qFAAqF;IACrF,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAClC;AAED,2FAA2F;AAC3F,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAQlD;AAED,sEAAsE;AACtE,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAA;AAE/D;;;;;;GAMG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,MAAM,CAA2C;gBAGtC,QAAQ,EAAE,MAAM,SAAS,KAAK,EAAE,EAChC,QAAQ,EAAE,MAAM,SAAS,YAAY,EAAE,EACvC,QAAQ,EAAE,MAAM,MAAM,EACtB,QAAQ,EAAE,MAAM,IAAI;IAGvC,kFAAkF;IAClF,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;OAMG;IACH,IAAI,IAAI,MAAM,GAAG,SAAS;IAI1B,gFAAgF;IAChF,MAAM,IAAI,IAAI;IAOd,sFAAsF;IACtF,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAyB9C"}
|
package/lib/input/keymap.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { KeybindingsManager, TUI_KEYBINDINGS, matchesKey, setKeybindings } from '@earendil-works/pi-tui';
|
|
2
|
-
import { defaultKeymap, keysFor } from "./actions.js";
|
|
3
|
-
import {
|
|
2
|
+
import { defaultKeymap, keysFor, catalogOf } from "./actions.js";
|
|
3
|
+
import { LIBRARY_KEY_ADDITIONS, isPluginActionId } from "./action-catalog.js";
|
|
4
4
|
import { ENTER_KEY } from "./key-press.js";
|
|
5
5
|
/** How long an armed chord waits for the key that follows it, in seconds. */
|
|
6
6
|
export const DEFAULT_PREFIX_WINDOW_S = 2;
|
|
@@ -34,10 +34,10 @@ const CHORD_SUBMISSIONS = {
|
|
|
34
34
|
/** The chords in force, in catalog order. */
|
|
35
35
|
export function chordBindings(map) {
|
|
36
36
|
const found = [];
|
|
37
|
-
for (const action of
|
|
37
|
+
for (const action of catalogOf(map)) {
|
|
38
38
|
if (action.layer !== 'chord' || action.id === 'chord.prefix')
|
|
39
39
|
continue;
|
|
40
|
-
const submission = CHORD_SUBMISSIONS[action.id];
|
|
40
|
+
const submission = isPluginActionId(action.id) ? { kind: 'plugin-action', id: action.id } : CHORD_SUBMISSIONS[action.id];
|
|
41
41
|
if (submission === undefined)
|
|
42
42
|
continue;
|
|
43
43
|
for (const key of keysFor(map, action.id))
|
|
@@ -52,7 +52,7 @@ export function chordKeysLine(map) {
|
|
|
52
52
|
/** The keys the surface answers itself, as help lists them. */
|
|
53
53
|
export function surfaceKeysLine(map) {
|
|
54
54
|
const found = [];
|
|
55
|
-
for (const action of
|
|
55
|
+
for (const action of catalogOf(map)) {
|
|
56
56
|
if (action.layer !== 'surface')
|
|
57
57
|
continue;
|
|
58
58
|
for (const key of keysFor(map, action.id))
|
|
@@ -72,7 +72,7 @@ export function surfaceKeysLine(map) {
|
|
|
72
72
|
*/
|
|
73
73
|
export function libraryOverrides(map) {
|
|
74
74
|
const overrides = {};
|
|
75
|
-
for (const action of
|
|
75
|
+
for (const action of catalogOf(map)) {
|
|
76
76
|
if (action.layer !== 'library')
|
|
77
77
|
continue;
|
|
78
78
|
if (!map.written.has(action.id) && LIBRARY_KEY_ADDITIONS[action.id] === undefined)
|
package/lib/input/keymap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../src/input/keymap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAc,MAAM,wBAAwB,CAAA;AACpH,OAAO,EAAE,aAAa,EAAE,OAAO,EAAe,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../src/input/keymap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../src/input/submission.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../src/input/submission.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAClD,4EAA4E;GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC3B,wDAAwD;GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AACvD,uFAAuF;GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE;AAClC;;;;;GAKG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAChC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtD,iEAAiE;AACjE,eAAO,MAAM,cAAc,6TAGjB,CAAA;AAEV,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BvE,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAkE3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/input/submission.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/input/submission.ts"],"names":[],"mappings":"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"}
|
package/lib/keymaps.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** Optional plugins own their actions; the terminal owns safe dispatch and key policy. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import type { KeyId } from '@earendil-works/pi-tui';
|
|
4
|
+
import { type Action } from './input/action-catalog.ts';
|
|
5
|
+
export declare const name = "tui-keymaps";
|
|
6
|
+
/** One public service identifier prevents composition from drifting from addon discovery. */
|
|
7
|
+
export declare const TUI_KEYMAP_SERVICE = "tuiKeymaps";
|
|
8
|
+
/** Row data avoids coupling a plugin to the terminal library or an internal picker class. */
|
|
9
|
+
export interface PickerRow {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly description?: string;
|
|
13
|
+
readonly current?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** Route facts belong to the invocation, never a cached plugin registration. */
|
|
16
|
+
export interface ActionPorts {
|
|
17
|
+
readonly route: {
|
|
18
|
+
readonly provider: string;
|
|
19
|
+
readonly model: string;
|
|
20
|
+
} | undefined;
|
|
21
|
+
readonly pick: (spec: {
|
|
22
|
+
readonly title: string;
|
|
23
|
+
readonly rows: readonly PickerRow[];
|
|
24
|
+
}) => Promise<string | undefined>;
|
|
25
|
+
readonly notice: (message: string) => void;
|
|
26
|
+
}
|
|
27
|
+
/** Plugins cannot register keys inside approval gates, questions, or library-owned editors. */
|
|
28
|
+
export interface PluginAction {
|
|
29
|
+
readonly id: string;
|
|
30
|
+
readonly layer: 'chord' | 'surface';
|
|
31
|
+
readonly defaultKeys: readonly KeyId[];
|
|
32
|
+
readonly label: string;
|
|
33
|
+
readonly handler: (ports: ActionPorts) => Promise<void>;
|
|
34
|
+
/** Route-specific qualifiers share the action owner rather than leaking provider policy into the footer. */
|
|
35
|
+
readonly routeHint?: (route: NonNullable<ActionPorts['route']>) => string | undefined;
|
|
36
|
+
}
|
|
37
|
+
/** One host's registry keeps optional plugins independent of other terminal instances. */
|
|
38
|
+
export interface KeymapRegistry {
|
|
39
|
+
register(owner: Context, action: PluginAction): () => void;
|
|
40
|
+
afterEffort(owner: Context, handler: (ports: ActionPorts) => Promise<void>): () => void;
|
|
41
|
+
catalog(): readonly Action[];
|
|
42
|
+
routeHints(route: NonNullable<ActionPorts['route']>): readonly string[];
|
|
43
|
+
dispatch(id: string, ports: ActionPorts): Promise<void>;
|
|
44
|
+
effortConfirmed(ports: ActionPorts): Promise<void>;
|
|
45
|
+
observe(validate: (catalog: readonly Action[]) => void, changed: () => void): () => void;
|
|
46
|
+
}
|
|
47
|
+
declare module '@deepseek-ai/cordis' {
|
|
48
|
+
interface Context {
|
|
49
|
+
tuiKeymaps: KeymapRegistry;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** Validate before publication so a rejected registration cannot corrupt the active keyboard. */
|
|
53
|
+
export declare function createKeymapRegistry(): KeymapRegistry;
|
|
54
|
+
/** Early publication lets addons register before the terminal composes its effective keymap. */
|
|
55
|
+
export declare function apply(ctx: Context): void;
|
|
56
|
+
//# sourceMappingURL=keymaps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keymaps.d.ts","sourceRoot":"","sources":["../src/keymaps.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAoC,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIzF,eAAO,MAAM,IAAI,gBAAgB,CAAA;AACjC,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,eAAe,CAAA;AAK9C,6FAA6F;AAC7F,MAAM,WAAW,SAAS;IAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;AACpI,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACjF,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACrH,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3C;AACD,+FAA+F;AAC/F,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,KAAK,EAAE,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,4GAA4G;IAC5G,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;CACtF;AACD,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,CAAA;IAC1D,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAA;IACvF,OAAO,IAAI,SAAS,MAAM,EAAE,CAAA;IAC5B,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,MAAM,EAAE,CAAA;IACvE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;CACzF;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAAE,UAAU,OAAO;QAAG,UAAU,EAAE,cAAc,CAAA;KAAE;CAAE;AAEzF,iGAAiG;AACjG,wBAAgB,oBAAoB,IAAI,cAAc,CA4ErD;AAED,gGAAgG;AAChG,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAA4D"}
|