@dungle-scrubs/tallow 0.9.3 → 0.9.6

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.
Files changed (207) hide show
  1. package/dist/cli.js +7 -4
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config.d.ts +1 -1
  4. package/dist/config.js +1 -1
  5. package/dist/interactive-mode-patch.d.ts +24 -10
  6. package/dist/interactive-mode-patch.d.ts.map +1 -1
  7. package/dist/interactive-mode-patch.js +285 -148
  8. package/dist/interactive-mode-patch.js.map +1 -1
  9. package/dist/interactive-reset.d.ts +49 -0
  10. package/dist/interactive-reset.d.ts.map +1 -0
  11. package/dist/interactive-reset.js +40 -0
  12. package/dist/interactive-reset.js.map +1 -0
  13. package/dist/pi-tui-editor-patch.d.ts +10 -0
  14. package/dist/pi-tui-editor-patch.d.ts.map +1 -0
  15. package/dist/pi-tui-editor-patch.js +159 -0
  16. package/dist/pi-tui-editor-patch.js.map +1 -0
  17. package/dist/pi-tui-patch.d.ts +2 -0
  18. package/dist/pi-tui-patch.d.ts.map +1 -0
  19. package/dist/pi-tui-patch.js +563 -0
  20. package/dist/pi-tui-patch.js.map +1 -0
  21. package/dist/pi-tui-settings-list-patch.d.ts +11 -0
  22. package/dist/pi-tui-settings-list-patch.d.ts.map +1 -0
  23. package/dist/pi-tui-settings-list-patch.js +38 -0
  24. package/dist/pi-tui-settings-list-patch.js.map +1 -0
  25. package/dist/reset-diagnostics.d.ts +69 -0
  26. package/dist/reset-diagnostics.d.ts.map +1 -0
  27. package/dist/reset-diagnostics.js +41 -0
  28. package/dist/reset-diagnostics.js.map +1 -0
  29. package/dist/sdk.d.ts +5 -21
  30. package/dist/sdk.d.ts.map +1 -1
  31. package/dist/sdk.js +180 -149
  32. package/dist/sdk.js.map +1 -1
  33. package/dist/workspace-transition-interactive.d.ts +1 -0
  34. package/dist/workspace-transition-interactive.d.ts.map +1 -1
  35. package/dist/workspace-transition-interactive.js +7 -17
  36. package/dist/workspace-transition-interactive.js.map +1 -1
  37. package/extensions/__integration__/audit-findings.test.ts +6 -16
  38. package/extensions/__integration__/teams-runtime.test.ts +4 -1
  39. package/extensions/_icons/index.ts +2 -4
  40. package/extensions/_shared/__tests__/image-metadata.test.ts +33 -0
  41. package/extensions/_shared/__tests__/terminal-links.test.ts +18 -0
  42. package/extensions/_shared/image-metadata.ts +99 -0
  43. package/extensions/_shared/inline-preview.ts +1 -1
  44. package/extensions/_shared/pid-registry.ts +0 -1
  45. package/extensions/_shared/terminal-links.ts +22 -0
  46. package/extensions/ask-user-question-tool/index.ts +0 -3
  47. package/extensions/clear/__tests__/clear.test.ts +270 -3
  48. package/extensions/command-expansion/index.ts +1 -1
  49. package/extensions/context-files/index.ts +5 -1
  50. package/extensions/context-fork/__tests__/context-fork.test.ts +94 -1
  51. package/extensions/context-fork/extension.json +1 -1
  52. package/extensions/context-fork/index.ts +32 -0
  53. package/extensions/edit-tool-enhanced/index.ts +2 -1
  54. package/extensions/hooks/index.ts +33 -11
  55. package/extensions/loop/index.ts +14 -1
  56. package/extensions/lsp/index.ts +64 -13
  57. package/extensions/lsp/package.json +2 -2
  58. package/extensions/permissions/__tests__/permissions.test.ts +4 -4
  59. package/extensions/random-spinner/index.ts +7 -642
  60. package/extensions/read-tool-enhanced/index.ts +6 -8
  61. package/extensions/render-stabilizer/__tests__/render-stabilizer.test.ts +4 -5
  62. package/extensions/render-stabilizer/index.ts +6 -6
  63. package/extensions/show-system-prompt/__tests__/show-system-prompt.test.ts +1 -1
  64. package/extensions/slash-command-bridge/__tests__/slash-command-bridge.test.ts +26 -0
  65. package/extensions/slash-command-bridge/index.ts +14 -2
  66. package/extensions/subagent-tool/index.ts +1 -1
  67. package/extensions/subagent-tool/model-resolver.ts +274 -7
  68. package/extensions/tasks/__tests__/state-ui.test.ts +3 -3
  69. package/extensions/tasks/__tests__/widget-subagents.test.ts +2 -2
  70. package/extensions/tasks/commands/register-tasks-extension.ts +10 -10
  71. package/extensions/tasks/state/index.ts +1 -1
  72. package/extensions/tasks/ui/index.ts +2 -7
  73. package/extensions/teams-tool/tools/register-extension.ts +1 -3
  74. package/extensions/web-search-tool/index.ts +2 -1
  75. package/extensions/write-tool-enhanced/__tests__/write-tool-enhanced.test.ts +21 -6
  76. package/extensions/write-tool-enhanced/index.ts +2 -1
  77. package/node_modules/@mariozechner/pi-tui/README.md +56 -34
  78. package/node_modules/@mariozechner/pi-tui/dist/autocomplete.d.ts +18 -13
  79. package/node_modules/@mariozechner/pi-tui/dist/autocomplete.d.ts.map +1 -1
  80. package/node_modules/@mariozechner/pi-tui/dist/autocomplete.js +182 -113
  81. package/node_modules/@mariozechner/pi-tui/dist/autocomplete.js.map +1 -1
  82. package/node_modules/@mariozechner/pi-tui/dist/components/cancellable-loader.js +3 -3
  83. package/node_modules/@mariozechner/pi-tui/dist/components/cancellable-loader.js.map +1 -1
  84. package/node_modules/@mariozechner/pi-tui/dist/components/editor.d.ts +45 -36
  85. package/node_modules/@mariozechner/pi-tui/dist/components/editor.d.ts.map +1 -1
  86. package/node_modules/@mariozechner/pi-tui/dist/components/editor.js +489 -325
  87. package/node_modules/@mariozechner/pi-tui/dist/components/editor.js.map +1 -1
  88. package/node_modules/@mariozechner/pi-tui/dist/components/image.d.ts +1 -99
  89. package/node_modules/@mariozechner/pi-tui/dist/components/image.d.ts.map +1 -1
  90. package/node_modules/@mariozechner/pi-tui/dist/components/image.js +17 -192
  91. package/node_modules/@mariozechner/pi-tui/dist/components/image.js.map +1 -1
  92. package/node_modules/@mariozechner/pi-tui/dist/components/input.d.ts.map +1 -1
  93. package/node_modules/@mariozechner/pi-tui/dist/components/input.js +57 -60
  94. package/node_modules/@mariozechner/pi-tui/dist/components/input.js.map +1 -1
  95. package/node_modules/@mariozechner/pi-tui/dist/components/loader.d.ts +2 -69
  96. package/node_modules/@mariozechner/pi-tui/dist/components/loader.d.ts.map +1 -1
  97. package/node_modules/@mariozechner/pi-tui/dist/components/loader.js +5 -102
  98. package/node_modules/@mariozechner/pi-tui/dist/components/loader.js.map +1 -1
  99. package/node_modules/@mariozechner/pi-tui/dist/components/markdown.d.ts.map +1 -1
  100. package/node_modules/@mariozechner/pi-tui/dist/components/markdown.js +111 -53
  101. package/node_modules/@mariozechner/pi-tui/dist/components/markdown.js.map +1 -1
  102. package/node_modules/@mariozechner/pi-tui/dist/components/select-list.d.ts +19 -1
  103. package/node_modules/@mariozechner/pi-tui/dist/components/select-list.d.ts.map +1 -1
  104. package/node_modules/@mariozechner/pi-tui/dist/components/select-list.js +78 -67
  105. package/node_modules/@mariozechner/pi-tui/dist/components/select-list.js.map +1 -1
  106. package/node_modules/@mariozechner/pi-tui/dist/components/settings-list.d.ts +0 -2
  107. package/node_modules/@mariozechner/pi-tui/dist/components/settings-list.d.ts.map +1 -1
  108. package/node_modules/@mariozechner/pi-tui/dist/components/settings-list.js +12 -23
  109. package/node_modules/@mariozechner/pi-tui/dist/components/settings-list.js.map +1 -1
  110. package/node_modules/@mariozechner/pi-tui/dist/index.d.ts +8 -10
  111. package/node_modules/@mariozechner/pi-tui/dist/index.d.ts.map +1 -1
  112. package/node_modules/@mariozechner/pi-tui/dist/index.js +6 -9
  113. package/node_modules/@mariozechner/pi-tui/dist/index.js.map +1 -1
  114. package/node_modules/@mariozechner/pi-tui/dist/keybindings.d.ts +108 -238
  115. package/node_modules/@mariozechner/pi-tui/dist/keybindings.d.ts.map +1 -1
  116. package/node_modules/@mariozechner/pi-tui/dist/keybindings.js +108 -365
  117. package/node_modules/@mariozechner/pi-tui/dist/keybindings.js.map +1 -1
  118. package/node_modules/@mariozechner/pi-tui/dist/keys.d.ts +33 -48
  119. package/node_modules/@mariozechner/pi-tui/dist/keys.d.ts.map +1 -1
  120. package/node_modules/@mariozechner/pi-tui/dist/keys.js +239 -155
  121. package/node_modules/@mariozechner/pi-tui/dist/keys.js.map +1 -1
  122. package/node_modules/@mariozechner/pi-tui/dist/terminal-image.d.ts +14 -94
  123. package/node_modules/@mariozechner/pi-tui/dist/terminal-image.d.ts.map +1 -1
  124. package/node_modules/@mariozechner/pi-tui/dist/terminal-image.js +44 -186
  125. package/node_modules/@mariozechner/pi-tui/dist/terminal-image.js.map +1 -1
  126. package/node_modules/@mariozechner/pi-tui/dist/terminal.d.ts +13 -58
  127. package/node_modules/@mariozechner/pi-tui/dist/terminal.d.ts.map +1 -1
  128. package/node_modules/@mariozechner/pi-tui/dist/terminal.js +78 -111
  129. package/node_modules/@mariozechner/pi-tui/dist/terminal.js.map +1 -1
  130. package/node_modules/@mariozechner/pi-tui/dist/tui.d.ts +24 -110
  131. package/node_modules/@mariozechner/pi-tui/dist/tui.d.ts.map +1 -1
  132. package/node_modules/@mariozechner/pi-tui/dist/tui.js +188 -435
  133. package/node_modules/@mariozechner/pi-tui/dist/tui.js.map +1 -1
  134. package/node_modules/@mariozechner/pi-tui/dist/utils.d.ts +0 -18
  135. package/node_modules/@mariozechner/pi-tui/dist/utils.d.ts.map +1 -1
  136. package/node_modules/@mariozechner/pi-tui/dist/utils.js +251 -119
  137. package/node_modules/@mariozechner/pi-tui/dist/utils.js.map +1 -1
  138. package/node_modules/@mariozechner/pi-tui/package.json +6 -6
  139. package/node_modules/@mariozechner/pi-tui/src/__tests__/__snapshots__/render.test.ts.snap +3 -40
  140. package/node_modules/@mariozechner/pi-tui/src/__tests__/image-component.test.ts +71 -81
  141. package/node_modules/@mariozechner/pi-tui/src/__tests__/render.test.ts +0 -33
  142. package/node_modules/@mariozechner/pi-tui/src/__tests__/terminal-image.test.ts +93 -334
  143. package/node_modules/@mariozechner/pi-tui/src/__tests__/tui-render-scheduling.test.ts +1 -1
  144. package/node_modules/@mariozechner/pi-tui/src/__tests__/utils.test.ts +11 -196
  145. package/node_modules/@mariozechner/pi-tui/src/autocomplete.ts +228 -142
  146. package/node_modules/@mariozechner/pi-tui/src/components/cancellable-loader.ts +3 -3
  147. package/node_modules/@mariozechner/pi-tui/src/components/editor.ts +624 -390
  148. package/node_modules/@mariozechner/pi-tui/src/components/image.ts +17 -227
  149. package/node_modules/@mariozechner/pi-tui/src/components/input.ts +71 -63
  150. package/node_modules/@mariozechner/pi-tui/src/components/loader.ts +5 -137
  151. package/node_modules/@mariozechner/pi-tui/src/components/markdown.ts +143 -52
  152. package/node_modules/@mariozechner/pi-tui/src/components/select-list.ts +136 -70
  153. package/node_modules/@mariozechner/pi-tui/src/components/settings-list.ts +11 -23
  154. package/node_modules/@mariozechner/pi-tui/src/index.ts +17 -36
  155. package/node_modules/@mariozechner/pi-tui/src/keybindings.ts +148 -421
  156. package/node_modules/@mariozechner/pi-tui/src/keys.ts +253 -181
  157. package/node_modules/@mariozechner/pi-tui/src/terminal-image.ts +51 -252
  158. package/node_modules/@mariozechner/pi-tui/src/terminal.ts +78 -133
  159. package/node_modules/@mariozechner/pi-tui/src/tui.ts +202 -478
  160. package/node_modules/@mariozechner/pi-tui/src/utils.ts +289 -125
  161. package/node_modules/@mariozechner/pi-tui/tsconfig.build.json +1 -0
  162. package/package.json +13 -13
  163. package/packages/tallow-tui/node_modules/@types/mime-types/README.md +8 -2
  164. package/packages/tallow-tui/node_modules/@types/mime-types/index.d.ts +6 -0
  165. package/packages/tallow-tui/node_modules/@types/mime-types/package.json +9 -3
  166. package/packages/tallow-tui/node_modules/get-east-asian-width/lookup-data.js +18 -0
  167. package/packages/tallow-tui/node_modules/get-east-asian-width/lookup.js +116 -384
  168. package/packages/tallow-tui/node_modules/get-east-asian-width/package.json +5 -4
  169. package/packages/tallow-tui/node_modules/get-east-asian-width/utilities.js +24 -0
  170. package/packages/tallow-tui/node_modules/marked/README.md +5 -4
  171. package/packages/tallow-tui/node_modules/marked/bin/main.js +10 -8
  172. package/packages/tallow-tui/node_modules/marked/bin/marked.js +2 -1
  173. package/packages/tallow-tui/node_modules/marked/lib/marked.d.ts +156 -125
  174. package/packages/tallow-tui/node_modules/marked/lib/marked.esm.js +67 -2179
  175. package/packages/tallow-tui/node_modules/marked/lib/marked.esm.js.map +3 -3
  176. package/packages/tallow-tui/node_modules/marked/lib/marked.umd.js +67 -2201
  177. package/packages/tallow-tui/node_modules/marked/lib/marked.umd.js.map +3 -3
  178. package/packages/tallow-tui/node_modules/marked/man/marked.1 +4 -2
  179. package/packages/tallow-tui/node_modules/marked/man/marked.1.md +2 -1
  180. package/packages/tallow-tui/node_modules/marked/package.json +26 -34
  181. package/runtime/model-metadata-overrides.ts +10 -1
  182. package/runtime/pid-schema.ts +26 -6
  183. package/skills/tallow-expert/SKILL.md +1 -3
  184. package/node_modules/@mariozechner/pi-tui/dist/border-styles.d.ts +0 -32
  185. package/node_modules/@mariozechner/pi-tui/dist/border-styles.d.ts.map +0 -1
  186. package/node_modules/@mariozechner/pi-tui/dist/border-styles.js +0 -46
  187. package/node_modules/@mariozechner/pi-tui/dist/border-styles.js.map +0 -1
  188. package/node_modules/@mariozechner/pi-tui/dist/components/bordered-box.d.ts +0 -52
  189. package/node_modules/@mariozechner/pi-tui/dist/components/bordered-box.d.ts.map +0 -1
  190. package/node_modules/@mariozechner/pi-tui/dist/components/bordered-box.js +0 -89
  191. package/node_modules/@mariozechner/pi-tui/dist/components/bordered-box.js.map +0 -1
  192. package/node_modules/@mariozechner/pi-tui/dist/test-utils/capability-env.d.ts +0 -14
  193. package/node_modules/@mariozechner/pi-tui/dist/test-utils/capability-env.d.ts.map +0 -1
  194. package/node_modules/@mariozechner/pi-tui/dist/test-utils/capability-env.js +0 -55
  195. package/node_modules/@mariozechner/pi-tui/dist/test-utils/capability-env.js.map +0 -1
  196. package/node_modules/@mariozechner/pi-tui/src/__tests__/editor-change-listener.test.ts +0 -121
  197. package/node_modules/@mariozechner/pi-tui/src/__tests__/editor-ghost-text.test.ts +0 -112
  198. package/node_modules/@mariozechner/pi-tui/src/__tests__/mouse-events.test.ts +0 -134
  199. package/node_modules/@mariozechner/pi-tui/src/__tests__/settings-list.test.ts +0 -49
  200. package/node_modules/@mariozechner/pi-tui/src/__tests__/tui-diff-regression.test.ts +0 -555
  201. package/node_modules/@mariozechner/pi-tui/src/border-styles.ts +0 -60
  202. package/node_modules/@mariozechner/pi-tui/src/components/bordered-box.ts +0 -113
  203. package/node_modules/@mariozechner/pi-tui/src/test-utils/capability-env.ts +0 -56
  204. package/packages/tallow-tui/node_modules/marked/lib/marked.cjs +0 -2211
  205. package/packages/tallow-tui/node_modules/marked/lib/marked.cjs.map +0 -7
  206. package/packages/tallow-tui/node_modules/marked/lib/marked.d.cts +0 -728
  207. package/packages/tallow-tui/node_modules/marked/marked.min.js +0 -69
@@ -1,434 +1,177 @@
1
1
  import { matchesKey } from "./keys.js";
2
- const LEGACY_TO_MODERN_KEYBINDINGS = {
3
- copy: "tui.input.copy",
4
- cursorDown: "tui.editor.cursorDown",
5
- cursorLeft: "tui.editor.cursorLeft",
6
- cursorLineEnd: "tui.editor.cursorLineEnd",
7
- cursorLineStart: "tui.editor.cursorLineStart",
8
- cursorRight: "tui.editor.cursorRight",
9
- cursorUp: "tui.editor.cursorUp",
10
- cursorWordLeft: "tui.editor.cursorWordLeft",
11
- cursorWordRight: "tui.editor.cursorWordRight",
12
- deleteCharBackward: "tui.editor.deleteCharBackward",
13
- deleteCharForward: "tui.editor.deleteCharForward",
14
- deleteSession: "app.session.delete",
15
- deleteSessionNoninvasive: "app.session.deleteNoninvasive",
16
- deleteToLineEnd: "tui.editor.deleteToLineEnd",
17
- deleteToLineStart: "tui.editor.deleteToLineStart",
18
- deleteWordBackward: "tui.editor.deleteWordBackward",
19
- deleteWordForward: "tui.editor.deleteWordForward",
20
- expandTools: "app.tools.expand",
21
- jumpBackward: "tui.editor.jumpBackward",
22
- jumpForward: "tui.editor.jumpForward",
23
- newLine: "tui.input.newLine",
24
- pageDown: "tui.editor.pageDown",
25
- pageUp: "tui.editor.pageUp",
26
- renameSession: "app.session.rename",
27
- selectCancel: "tui.select.cancel",
28
- selectConfirm: "tui.select.confirm",
29
- selectDown: "tui.select.down",
30
- selectPageDown: "tui.select.pageDown",
31
- selectPageUp: "tui.select.pageUp",
32
- selectUp: "tui.select.up",
33
- submit: "tui.input.submit",
34
- tab: "tui.input.tab",
35
- toggleSessionPath: "app.session.togglePath",
36
- toggleSessionSort: "app.session.toggleSort",
37
- undo: "tui.editor.undo",
38
- yank: "tui.editor.yank",
39
- yankPop: "tui.editor.yankPop",
40
- };
41
- /** Default legacy editor keybindings preserved for compatibility. */
42
- export const DEFAULT_EDITOR_KEYBINDINGS = {
43
- copy: "ctrl+shift+c",
44
- cursorDown: "down",
45
- cursorLeft: ["left", "ctrl+b"],
46
- cursorLineEnd: ["end", "ctrl+e"],
47
- cursorLineStart: ["home", "ctrl+a"],
48
- cursorRight: ["right", "ctrl+f"],
49
- cursorUp: "up",
50
- cursorWordLeft: ["alt+left", "ctrl+left", "alt+b"],
51
- cursorWordRight: ["alt+right", "ctrl+right", "alt+f"],
52
- deleteCharBackward: "backspace",
53
- deleteCharForward: ["delete", "ctrl+d"],
54
- deleteSession: "ctrl+d",
55
- deleteSessionNoninvasive: "ctrl+backspace",
56
- deleteToLineEnd: "ctrl+k",
57
- deleteToLineStart: "ctrl+u",
58
- deleteWordBackward: ["ctrl+w", "alt+backspace"],
59
- deleteWordForward: ["alt+d", "alt+delete"],
60
- expandTools: "ctrl+o",
61
- jumpBackward: "ctrl+alt+]",
62
- jumpForward: "ctrl+]",
63
- newLine: "shift+enter",
64
- pageDown: "pageDown",
65
- pageUp: "pageUp",
66
- renameSession: "ctrl+r",
67
- selectCancel: ["escape", "ctrl+c"],
68
- selectConfirm: "enter",
69
- selectDown: "down",
70
- selectPageDown: "pageDown",
71
- selectPageUp: "pageUp",
72
- selectUp: "up",
73
- submit: "enter",
74
- tab: "tab",
75
- toggleSessionPath: "ctrl+p",
76
- toggleSessionSort: "ctrl+s",
77
- undo: "ctrl+-",
78
- yank: "ctrl+y",
79
- yankPop: "alt+y",
80
- };
81
- /** Modern TUI keybinding definitions consumed by pi-coding-agent 0.61+. */
82
2
  export const TUI_KEYBINDINGS = {
83
- "tui.editor.cursorDown": {
84
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.cursorDown,
85
- description: "Move cursor down",
86
- },
3
+ "tui.editor.cursorUp": { defaultKeys: "up", description: "Move cursor up" },
4
+ "tui.editor.cursorDown": { defaultKeys: "down", description: "Move cursor down" },
87
5
  "tui.editor.cursorLeft": {
88
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.cursorLeft,
6
+ defaultKeys: ["left", "ctrl+b"],
89
7
  description: "Move cursor left",
90
8
  },
91
- "tui.editor.cursorLineEnd": {
92
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.cursorLineEnd,
93
- description: "Move to line end",
94
- },
95
- "tui.editor.cursorLineStart": {
96
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.cursorLineStart,
97
- description: "Move to line start",
98
- },
99
9
  "tui.editor.cursorRight": {
100
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.cursorRight,
10
+ defaultKeys: ["right", "ctrl+f"],
101
11
  description: "Move cursor right",
102
12
  },
103
- "tui.editor.cursorUp": {
104
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.cursorUp,
105
- description: "Move cursor up",
106
- },
107
13
  "tui.editor.cursorWordLeft": {
108
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.cursorWordLeft,
14
+ defaultKeys: ["alt+left", "ctrl+left", "alt+b"],
109
15
  description: "Move cursor word left",
110
16
  },
111
17
  "tui.editor.cursorWordRight": {
112
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.cursorWordRight,
18
+ defaultKeys: ["alt+right", "ctrl+right", "alt+f"],
113
19
  description: "Move cursor word right",
114
20
  },
21
+ "tui.editor.cursorLineStart": {
22
+ defaultKeys: ["home", "ctrl+a"],
23
+ description: "Move to line start",
24
+ },
25
+ "tui.editor.cursorLineEnd": {
26
+ defaultKeys: ["end", "ctrl+e"],
27
+ description: "Move to line end",
28
+ },
29
+ "tui.editor.jumpForward": {
30
+ defaultKeys: "ctrl+]",
31
+ description: "Jump forward to character",
32
+ },
33
+ "tui.editor.jumpBackward": {
34
+ defaultKeys: "ctrl+alt+]",
35
+ description: "Jump backward to character",
36
+ },
37
+ "tui.editor.pageUp": { defaultKeys: "pageUp", description: "Page up" },
38
+ "tui.editor.pageDown": { defaultKeys: "pageDown", description: "Page down" },
115
39
  "tui.editor.deleteCharBackward": {
116
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.deleteCharBackward,
40
+ defaultKeys: "backspace",
117
41
  description: "Delete character backward",
118
42
  },
119
43
  "tui.editor.deleteCharForward": {
120
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.deleteCharForward,
44
+ defaultKeys: ["delete", "ctrl+d"],
121
45
  description: "Delete character forward",
122
46
  },
123
- "tui.editor.deleteToLineEnd": {
124
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.deleteToLineEnd,
125
- description: "Delete to line end",
126
- },
127
- "tui.editor.deleteToLineStart": {
128
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.deleteToLineStart,
129
- description: "Delete to line start",
130
- },
131
47
  "tui.editor.deleteWordBackward": {
132
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.deleteWordBackward,
48
+ defaultKeys: ["ctrl+w", "alt+backspace"],
133
49
  description: "Delete word backward",
134
50
  },
135
51
  "tui.editor.deleteWordForward": {
136
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.deleteWordForward,
52
+ defaultKeys: ["alt+d", "alt+delete"],
137
53
  description: "Delete word forward",
138
54
  },
139
- "tui.editor.jumpBackward": {
140
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.jumpBackward,
141
- description: "Jump backward to character",
142
- },
143
- "tui.editor.jumpForward": {
144
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.jumpForward,
145
- description: "Jump forward to character",
146
- },
147
- "tui.editor.pageDown": {
148
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.pageDown,
149
- description: "Page down",
150
- },
151
- "tui.editor.pageUp": {
152
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.pageUp,
153
- description: "Page up",
154
- },
155
- "tui.editor.undo": {
156
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.undo,
157
- description: "Undo",
158
- },
159
- "tui.editor.yank": {
160
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.yank,
161
- description: "Yank",
162
- },
163
- "tui.editor.yankPop": {
164
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.yankPop,
165
- description: "Yank pop",
166
- },
167
- "tui.input.copy": {
168
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.copy,
169
- description: "Copy selection",
170
- },
171
- "tui.input.newLine": {
172
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.newLine,
173
- description: "Insert newline",
174
- },
175
- "tui.input.submit": {
176
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.submit,
177
- description: "Submit input",
178
- },
179
- "tui.input.tab": {
180
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.tab,
181
- description: "Tab / autocomplete",
182
- },
183
- "tui.select.cancel": {
184
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.selectCancel,
185
- description: "Cancel selection",
186
- },
187
- "tui.select.confirm": {
188
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.selectConfirm,
189
- description: "Confirm selection",
55
+ "tui.editor.deleteToLineStart": {
56
+ defaultKeys: "ctrl+u",
57
+ description: "Delete to line start",
190
58
  },
191
- "tui.select.down": {
192
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.selectDown,
193
- description: "Move selection down",
59
+ "tui.editor.deleteToLineEnd": {
60
+ defaultKeys: "ctrl+k",
61
+ description: "Delete to line end",
194
62
  },
63
+ "tui.editor.yank": { defaultKeys: "ctrl+y", description: "Yank" },
64
+ "tui.editor.yankPop": { defaultKeys: "alt+y", description: "Yank pop" },
65
+ "tui.editor.undo": { defaultKeys: "ctrl+-", description: "Undo" },
66
+ "tui.input.newLine": { defaultKeys: "shift+enter", description: "Insert newline" },
67
+ "tui.input.submit": { defaultKeys: "enter", description: "Submit input" },
68
+ "tui.input.tab": { defaultKeys: "tab", description: "Tab / autocomplete" },
69
+ "tui.input.copy": { defaultKeys: "ctrl+c", description: "Copy selection" },
70
+ "tui.select.up": { defaultKeys: "up", description: "Move selection up" },
71
+ "tui.select.down": { defaultKeys: "down", description: "Move selection down" },
72
+ "tui.select.pageUp": { defaultKeys: "pageUp", description: "Selection page up" },
195
73
  "tui.select.pageDown": {
196
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.selectPageDown,
74
+ defaultKeys: "pageDown",
197
75
  description: "Selection page down",
198
76
  },
199
- "tui.select.pageUp": {
200
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.selectPageUp,
201
- description: "Selection page up",
202
- },
203
- "tui.select.up": {
204
- defaultKeys: DEFAULT_EDITOR_KEYBINDINGS.selectUp,
205
- description: "Move selection up",
77
+ "tui.select.confirm": { defaultKeys: "enter", description: "Confirm selection" },
78
+ "tui.select.cancel": {
79
+ defaultKeys: ["escape", "ctrl+c"],
80
+ description: "Cancel selection",
206
81
  },
207
82
  };
208
- /**
209
- * Check whether a keybinding name is a supported modern identifier.
210
- *
211
- * @param {string} keybinding - Candidate keybinding name.
212
- * @returns {keybinding is ModernKeybinding} True when the keybinding exists.
213
- */
214
- function isModernKeybinding(keybinding) {
215
- return keybinding in TUI_KEYBINDINGS;
216
- }
217
- /**
218
- * Normalize a legacy or modern keybinding identifier to the modern name.
219
- * Only checks TUI_KEYBINDINGS and legacy mappings. For consumer-defined
220
- * keybindings (e.g. app.*), use {@link KeybindingsManager.resolveKeybinding}.
221
- *
222
- * @param {Keybinding} keybinding - Keybinding identifier to normalize.
223
- * @returns {ModernKeybinding | null} Modern keybinding or null when unsupported.
224
- */
225
- function normalizeKeybinding(keybinding) {
226
- if (isModernKeybinding(keybinding)) {
227
- return keybinding;
228
- }
229
- const normalized = LEGACY_TO_MODERN_KEYBINDINGS[keybinding];
230
- return normalized && isModernKeybinding(normalized) ? normalized : null;
231
- }
232
- /**
233
- * Convert a raw keybinding value into an array form.
234
- *
235
- * @param {KeyId | readonly KeyId[]} value - Raw keybinding value.
236
- * @returns {readonly KeyId[]} Normalized key array.
237
- */
238
- function normalizeKeyArray(value) {
239
- return Array.isArray(value) ? [...value] : [value];
240
- }
241
- /**
242
- * Normalize user bindings to modern identifiers and array values.
243
- *
244
- * @param {KeybindingsConfig} userBindings - Raw user bindings.
245
- * @returns {NormalizedKeybindingsConfig} Normalized modern binding map.
246
- */
247
- function normalizeUserBindings(userBindings) {
248
- const normalized = {};
249
- for (const [rawKey, rawValue] of Object.entries(userBindings)) {
250
- if (rawValue === undefined)
251
- continue;
252
- const key = rawKey;
253
- const modernKey = normalizeKeybinding(key);
254
- if (!modernKey)
255
- continue;
256
- if (key !== modernKey && userBindings[modernKey] !== undefined)
257
- continue;
258
- normalized[modernKey] = [...normalizeKeyArray(rawValue)];
83
+ function normalizeKeys(keys) {
84
+ if (keys === undefined)
85
+ return [];
86
+ const keyList = Array.isArray(keys) ? keys : [keys];
87
+ const seen = new Set();
88
+ const result = [];
89
+ for (const key of keyList) {
90
+ if (!seen.has(key)) {
91
+ seen.add(key);
92
+ result.push(key);
93
+ }
259
94
  }
260
- return normalized;
95
+ return result;
261
96
  }
262
- /**
263
- * Keybinding manager compatible with pi-tui 0.61+ while preserving legacy names.
264
- */
265
97
  export class KeybindingsManager {
266
98
  definitions;
267
- resolvedKeys = new Map();
268
99
  userBindings;
269
- /**
270
- * Create a keybindings manager.
271
- *
272
- * @param {Readonly<Record<ModernKeybinding, KeybindingDefinition>>} definitions - Keybinding definitions.
273
- * @param {KeybindingsConfig} userBindings - Optional user overrides.
274
- */
275
- constructor(definitions = TUI_KEYBINDINGS, userBindings = {}) {
100
+ keysById = new Map();
101
+ conflicts = [];
102
+ constructor(definitions, userBindings = {}) {
276
103
  this.definitions = definitions;
277
- this.userBindings = this.normalizeUserBindingsWithDefinitions(userBindings);
104
+ this.userBindings = userBindings;
278
105
  this.rebuild();
279
106
  }
280
- /**
281
- * Rebuild resolved bindings from defaults plus user overrides.
282
- *
283
- * @returns {void} Nothing.
284
- */
285
107
  rebuild() {
286
- this.resolvedKeys.clear();
287
- for (const [keybinding, definition] of Object.entries(this.definitions)) {
288
- const modernKey = keybinding;
289
- const override = this.userBindings[modernKey];
290
- const keys = override ?? normalizeKeyArray(definition.defaultKeys);
291
- this.resolvedKeys.set(modernKey, [...keys]);
108
+ this.keysById.clear();
109
+ this.conflicts = [];
110
+ const userClaims = new Map();
111
+ for (const [keybinding, keys] of Object.entries(this.userBindings)) {
112
+ if (!(keybinding in this.definitions))
113
+ continue;
114
+ for (const key of normalizeKeys(keys)) {
115
+ const claimants = userClaims.get(key) ?? new Set();
116
+ claimants.add(keybinding);
117
+ userClaims.set(key, claimants);
118
+ }
119
+ }
120
+ for (const [key, keybindings] of userClaims) {
121
+ if (keybindings.size > 1) {
122
+ this.conflicts.push({ key, keybindings: [...keybindings] });
123
+ }
124
+ }
125
+ for (const [id, definition] of Object.entries(this.definitions)) {
126
+ const userKeys = this.userBindings[id];
127
+ const keys = userKeys === undefined ? normalizeKeys(definition.defaultKeys) : normalizeKeys(userKeys);
128
+ this.keysById.set(id, keys);
292
129
  }
293
130
  }
294
- /**
295
- * Resolve a keybinding name to its lookup key in resolvedKeys.
296
- * Checks the TUI namespace and legacy names first, then falls back to
297
- * a direct lookup in definitions/resolvedKeys for consumer-defined
298
- * keybindings (e.g. app.* keybindings registered by pi-coding-agent).
299
- *
300
- * @param {string} keybinding - Keybinding identifier.
301
- * @returns {ModernKeybinding | null} Resolved key or null when unknown.
302
- */
303
- resolveKeybinding(keybinding) {
304
- const normalized = normalizeKeybinding(keybinding);
305
- if (normalized)
306
- return normalized;
307
- // Fall back to direct lookup for keybindings registered via definitions
308
- // but outside the tui.* namespace (e.g. app.interrupt, app.clear).
309
- // Check definitions first (available at construction) then resolvedKeys.
310
- const asKey = keybinding;
311
- return asKey in this.definitions || this.resolvedKeys.has(asKey) ? asKey : null;
312
- }
313
- /**
314
- * Check whether input matches a keybinding.
315
- *
316
- * @param {string} data - Raw terminal input.
317
- * @param {Keybinding | string} keybinding - Keybinding identifier.
318
- * @returns {boolean} True when the input matches.
319
- */
320
131
  matches(data, keybinding) {
321
- const resolved = this.resolveKeybinding(keybinding);
322
- if (!resolved)
323
- return false;
324
- for (const key of this.resolvedKeys.get(resolved) ?? []) {
132
+ const keys = this.keysById.get(keybinding) ?? [];
133
+ for (const key of keys) {
325
134
  if (matchesKey(data, key))
326
135
  return true;
327
136
  }
328
137
  return false;
329
138
  }
330
- /**
331
- * Get the keys currently bound to a keybinding.
332
- *
333
- * @param {Keybinding | string} keybinding - Keybinding identifier.
334
- * @returns {KeyId[]} Resolved key list.
335
- */
336
139
  getKeys(keybinding) {
337
- const resolved = this.resolveKeybinding(keybinding);
338
- return resolved ? [...(this.resolvedKeys.get(resolved) ?? [])] : [];
140
+ return [...(this.keysById.get(keybinding) ?? [])];
141
+ }
142
+ getDefinition(keybinding) {
143
+ return this.definitions[keybinding];
144
+ }
145
+ getConflicts() {
146
+ return this.conflicts.map((conflict) => ({
147
+ ...conflict,
148
+ keybindings: [...conflict.keybindings],
149
+ }));
339
150
  }
340
- /**
341
- * Replace user bindings and rebuild the resolved map.
342
- *
343
- * @param {KeybindingsConfig} userBindings - New user bindings.
344
- * @returns {void} Nothing.
345
- */
346
151
  setUserBindings(userBindings) {
347
- this.userBindings = this.normalizeUserBindingsWithDefinitions(userBindings);
152
+ this.userBindings = userBindings;
348
153
  this.rebuild();
349
154
  }
350
- /**
351
- * Normalize user bindings using both TUI namespace and consumer definitions.
352
- * This extends the module-level normalizeUserBindings to also accept
353
- * keybinding names that exist in this.definitions (e.g. app.*).
354
- *
355
- * @param {KeybindingsConfig} userBindings - Raw user bindings.
356
- * @returns {NormalizedKeybindingsConfig} Normalized modern binding map.
357
- */
358
- normalizeUserBindingsWithDefinitions(userBindings) {
359
- const normalized = {};
360
- for (const [rawKey, rawValue] of Object.entries(userBindings)) {
361
- if (rawValue === undefined)
362
- continue;
363
- const resolved = this.resolveKeybinding(rawKey);
364
- if (!resolved)
365
- continue;
366
- if (rawKey !== resolved && userBindings[resolved] !== undefined)
367
- continue;
368
- normalized[resolved] = [...normalizeKeyArray(rawValue)];
369
- }
370
- return normalized;
155
+ getUserBindings() {
156
+ return { ...this.userBindings };
371
157
  }
372
- /**
373
- * Get the fully resolved modern keybinding config.
374
- *
375
- * @returns {NormalizedKeybindingsConfig} Resolved keybinding config.
376
- */
377
158
  getResolvedBindings() {
378
159
  const resolved = {};
379
- for (const [keybinding, keys] of this.resolvedKeys.entries()) {
380
- resolved[keybinding] = [...keys];
160
+ for (const id of Object.keys(this.definitions)) {
161
+ const keys = this.keysById.get(id) ?? [];
162
+ resolved[id] = keys.length === 1 ? keys[0] : [...keys];
381
163
  }
382
164
  return resolved;
383
165
  }
384
166
  }
385
- /** Backward-compatible alias for legacy callers. */
386
- export class EditorKeybindingsManager extends KeybindingsManager {
387
- /**
388
- * Create a legacy editor keybindings manager.
389
- *
390
- * @param {EditorKeybindingsConfig} config - Legacy editor keybinding overrides.
391
- */
392
- constructor(config = {}) {
393
- super(TUI_KEYBINDINGS, config);
394
- }
395
- }
396
167
  let globalKeybindings = null;
397
- /**
398
- * Get the shared keybindings manager.
399
- *
400
- * @returns {KeybindingsManager} Shared keybindings manager.
401
- */
168
+ export function setKeybindings(keybindings) {
169
+ globalKeybindings = keybindings;
170
+ }
402
171
  export function getKeybindings() {
403
172
  if (!globalKeybindings) {
404
- globalKeybindings = new EditorKeybindingsManager();
173
+ globalKeybindings = new KeybindingsManager(TUI_KEYBINDINGS);
405
174
  }
406
175
  return globalKeybindings;
407
176
  }
408
- /**
409
- * Replace the shared keybindings manager.
410
- *
411
- * @param {KeybindingsManager} manager - Keybindings manager to install.
412
- * @returns {void} Nothing.
413
- */
414
- export function setKeybindings(manager) {
415
- globalKeybindings = manager;
416
- }
417
- /**
418
- * Get the shared legacy editor keybindings manager.
419
- *
420
- * @returns {EditorKeybindingsManager} Shared legacy-compatible manager.
421
- */
422
- export function getEditorKeybindings() {
423
- return getKeybindings();
424
- }
425
- /**
426
- * Replace the shared legacy editor keybindings manager.
427
- *
428
- * @param {EditorKeybindingsManager} manager - Legacy keybindings manager.
429
- * @returns {void} Nothing.
430
- */
431
- export function setEditorKeybindings(manager) {
432
- setKeybindings(manager);
433
- }
434
177
  //# sourceMappingURL=keybindings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keybindings.js","sourceRoot":"","sources":["../src/keybindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keybindings.js","sourceRoot":"","sources":["../src/keybindings.ts"],"names":[],"mappings":"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"}