@ai-zen/cli 1.0.0-alpha.27 → 1.0.0-alpha.30

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 (171) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/README.md +9 -6
  3. package/README.zh.md +9 -6
  4. package/dist/clipboard.d.ts +68 -0
  5. package/dist/clipboard.d.ts.map +1 -0
  6. package/dist/clipboard.js +177 -0
  7. package/dist/clipboard.js.map +1 -0
  8. package/dist/config-editor.d.ts +17 -0
  9. package/dist/config-editor.d.ts.map +1 -1
  10. package/dist/config-editor.js +31 -0
  11. package/dist/config-editor.js.map +1 -1
  12. package/dist/config.d.ts +53 -15
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +90 -26
  15. package/dist/config.js.map +1 -1
  16. package/dist/conversation-commands/registry.d.ts.map +1 -1
  17. package/dist/conversation-persist-plugin.d.ts.map +1 -1
  18. package/dist/conversation-persist-plugin.js.map +1 -1
  19. package/dist/conversation-repository.d.ts +23 -20
  20. package/dist/conversation-repository.d.ts.map +1 -1
  21. package/dist/conversation-repository.js +46 -37
  22. package/dist/conversation-repository.js.map +1 -1
  23. package/dist/cwd-tracker-plugin.d.ts.map +1 -1
  24. package/dist/cwd-tracker-plugin.js +17 -6
  25. package/dist/cwd-tracker-plugin.js.map +1 -1
  26. package/dist/handoff-service.js.map +1 -1
  27. package/dist/i18n/en-wizard.d.ts.map +1 -1
  28. package/dist/i18n/en-wizard.js +9 -6
  29. package/dist/i18n/en-wizard.js.map +1 -1
  30. package/dist/i18n/en.d.ts.map +1 -1
  31. package/dist/i18n/en.js +13 -2
  32. package/dist/i18n/en.js.map +1 -1
  33. package/dist/i18n/index.js.map +1 -1
  34. package/dist/i18n/preferences.d.ts +7 -4
  35. package/dist/i18n/preferences.d.ts.map +1 -1
  36. package/dist/i18n/preferences.js +15 -11
  37. package/dist/i18n/preferences.js.map +1 -1
  38. package/dist/i18n/zh-wizard.d.ts.map +1 -1
  39. package/dist/i18n/zh-wizard.js +9 -6
  40. package/dist/i18n/zh-wizard.js.map +1 -1
  41. package/dist/i18n/zh.d.ts.map +1 -1
  42. package/dist/i18n/zh.js +13 -2
  43. package/dist/i18n/zh.js.map +1 -1
  44. package/dist/index.js +11 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/sdk-log.d.ts +15 -3
  47. package/dist/sdk-log.d.ts.map +1 -1
  48. package/dist/sdk-log.js +29 -9
  49. package/dist/sdk-log.js.map +1 -1
  50. package/dist/session-pointer.d.ts.map +1 -1
  51. package/dist/session-pointer.js +10 -4
  52. package/dist/session-pointer.js.map +1 -1
  53. package/dist/sub-agent-guard-plugin.d.ts.map +1 -1
  54. package/dist/tui/chat-history.d.ts +29 -0
  55. package/dist/tui/chat-history.d.ts.map +1 -0
  56. package/dist/tui/chat-history.js +55 -0
  57. package/dist/tui/chat-history.js.map +1 -0
  58. package/dist/tui/chat-session.d.ts +31 -2
  59. package/dist/tui/chat-session.d.ts.map +1 -1
  60. package/dist/tui/chat-session.js +64 -9
  61. package/dist/tui/chat-session.js.map +1 -1
  62. package/dist/tui/components.d.ts +65 -5
  63. package/dist/tui/components.d.ts.map +1 -1
  64. package/dist/tui/components.js +85 -13
  65. package/dist/tui/components.js.map +1 -1
  66. package/dist/tui/config-wizard/detail.d.ts +6 -4
  67. package/dist/tui/config-wizard/detail.d.ts.map +1 -1
  68. package/dist/tui/config-wizard/detail.js +20 -14
  69. package/dist/tui/config-wizard/detail.js.map +1 -1
  70. package/dist/tui/config-wizard/engine.d.ts +1 -1
  71. package/dist/tui/config-wizard/engine.d.ts.map +1 -1
  72. package/dist/tui/config-wizard/engine.js +18 -6
  73. package/dist/tui/config-wizard/engine.js.map +1 -1
  74. package/dist/tui/config-wizard/fields.d.ts.map +1 -1
  75. package/dist/tui/config-wizard/fields.js +1 -30
  76. package/dist/tui/config-wizard/fields.js.map +1 -1
  77. package/dist/tui/config-wizard/frame.js +1 -1
  78. package/dist/tui/config-wizard/kv-editor.d.ts.map +1 -1
  79. package/dist/tui/config-wizard/kv-editor.js +4 -0
  80. package/dist/tui/config-wizard/kv-editor.js.map +1 -1
  81. package/dist/tui/config-wizard/list.d.ts +3 -1
  82. package/dist/tui/config-wizard/list.d.ts.map +1 -1
  83. package/dist/tui/config-wizard/list.js +3 -4
  84. package/dist/tui/config-wizard/list.js.map +1 -1
  85. package/dist/tui/config-wizard/prompt-editor.d.ts +8 -1
  86. package/dist/tui/config-wizard/prompt-editor.d.ts.map +1 -1
  87. package/dist/tui/config-wizard/prompt-editor.js +7 -4
  88. package/dist/tui/config-wizard/prompt-editor.js.map +1 -1
  89. package/dist/tui/config-wizard/step-agents.d.ts.map +1 -1
  90. package/dist/tui/config-wizard/step-agents.js +25 -13
  91. package/dist/tui/config-wizard/step-agents.js.map +1 -1
  92. package/dist/tui/config-wizard/step-endpoints.d.ts.map +1 -1
  93. package/dist/tui/config-wizard/step-endpoints.js +18 -15
  94. package/dist/tui/config-wizard/step-endpoints.js.map +1 -1
  95. package/dist/tui/config-wizard/step-mcp.d.ts.map +1 -1
  96. package/dist/tui/config-wizard/step-mcp.js +15 -9
  97. package/dist/tui/config-wizard/step-mcp.js.map +1 -1
  98. package/dist/tui/config-wizard/step-models.d.ts.map +1 -1
  99. package/dist/tui/config-wizard/step-models.js +67 -27
  100. package/dist/tui/config-wizard/step-models.js.map +1 -1
  101. package/dist/tui/config-wizard/types.d.ts +12 -0
  102. package/dist/tui/config-wizard/types.d.ts.map +1 -1
  103. package/dist/tui/file-index.d.ts +38 -0
  104. package/dist/tui/file-index.d.ts.map +1 -0
  105. package/dist/tui/file-index.js +117 -0
  106. package/dist/tui/file-index.js.map +1 -0
  107. package/dist/tui/index.d.ts.map +1 -1
  108. package/dist/tui/index.js +1 -1
  109. package/dist/tui/index.js.map +1 -1
  110. package/dist/tui/key-debug.js.map +1 -1
  111. package/dist/tui/mention.d.ts +47 -0
  112. package/dist/tui/mention.d.ts.map +1 -0
  113. package/dist/tui/mention.js +152 -0
  114. package/dist/tui/mention.js.map +1 -0
  115. package/dist/tui/mouse.js.map +1 -1
  116. package/dist/tui/phase.d.ts.map +1 -1
  117. package/dist/tui/screens/chat-commands.d.ts +8 -0
  118. package/dist/tui/screens/chat-commands.d.ts.map +1 -1
  119. package/dist/tui/screens/chat-commands.js +60 -34
  120. package/dist/tui/screens/chat-commands.js.map +1 -1
  121. package/dist/tui/screens/chat.d.ts +37 -0
  122. package/dist/tui/screens/chat.d.ts.map +1 -1
  123. package/dist/tui/screens/chat.js +238 -31
  124. package/dist/tui/screens/chat.js.map +1 -1
  125. package/dist/tui/screens/common-keys.js.map +1 -1
  126. package/dist/tui/screens/frame-buffer.d.ts.map +1 -1
  127. package/dist/tui/screens/frame-buffer.js.map +1 -1
  128. package/dist/tui/screens/index.d.ts +1 -1
  129. package/dist/tui/screens/index.d.ts.map +1 -1
  130. package/dist/tui/screens/index.js +1 -1
  131. package/dist/tui/screens/index.js.map +1 -1
  132. package/dist/tui/screens/input.d.ts +30 -1
  133. package/dist/tui/screens/input.d.ts.map +1 -1
  134. package/dist/tui/screens/input.js +39 -2
  135. package/dist/tui/screens/input.js.map +1 -1
  136. package/dist/tui/screens/layout.d.ts +14 -0
  137. package/dist/tui/screens/layout.d.ts.map +1 -1
  138. package/dist/tui/screens/layout.js +22 -11
  139. package/dist/tui/screens/layout.js.map +1 -1
  140. package/dist/tui/screens/messages-view.d.ts.map +1 -1
  141. package/dist/tui/screens/messages-view.js +6 -2
  142. package/dist/tui/screens/messages-view.js.map +1 -1
  143. package/dist/tui/screens/notice.d.ts.map +1 -1
  144. package/dist/tui/screens/notice.js.map +1 -1
  145. package/dist/tui/screens/overlays.js +1 -1
  146. package/dist/tui/screens/render.d.ts +1 -1
  147. package/dist/tui/screens/render.d.ts.map +1 -1
  148. package/dist/tui/screens/render.js +6 -2
  149. package/dist/tui/screens/render.js.map +1 -1
  150. package/dist/tui/screens/use-input-editing.d.ts +29 -4
  151. package/dist/tui/screens/use-input-editing.d.ts.map +1 -1
  152. package/dist/tui/screens/use-input-editing.js +42 -14
  153. package/dist/tui/screens/use-input-editing.js.map +1 -1
  154. package/dist/tui/screens/use-wizard-host.d.ts +12 -1
  155. package/dist/tui/screens/use-wizard-host.d.ts.map +1 -1
  156. package/dist/tui/screens/use-wizard-host.js +26 -7
  157. package/dist/tui/screens/use-wizard-host.js.map +1 -1
  158. package/dist/tui/status-segments.js.map +1 -1
  159. package/dist/tui/text.d.ts +7 -0
  160. package/dist/tui/text.d.ts.map +1 -1
  161. package/dist/tui/text.js +5 -1
  162. package/dist/tui/text.js.map +1 -1
  163. package/dist/tui/theme.d.ts.map +1 -1
  164. package/dist/tui/token-rate.d.ts.map +1 -1
  165. package/dist/tui/token-rate.js.map +1 -1
  166. package/dist/user-content.d.ts +41 -0
  167. package/dist/user-content.d.ts.map +1 -0
  168. package/dist/user-content.js +37 -0
  169. package/dist/user-content.js.map +1 -0
  170. package/dist/version.js.map +1 -1
  171. package/package.json +3 -3
@@ -0,0 +1,117 @@
1
+ /**
2
+ * 项目文件索引 —— 给 `@` 补全提供一份「候选路径清单」,带缓存。
3
+ *
4
+ * ## 为什么 git 优先、`fs.glob` 兜底
5
+ *
6
+ * `git ls-files -co --exclude-standard` 一次同时拿到**已跟踪 + 未跟踪**,且**尊重 .gitignore**
7
+ * (本仓实测 166 条 / 约 30ms)。`fs.promises.glob` 更快(178 条 / 4ms)且不依赖外部进程,
8
+ * 但它不认 .gitignore、也不返回隐藏文件(实测 `.gitignore`、`.ai-zen/` 全丢),所以只当
9
+ * 「不在 git 仓库里」时的兜底。两者都不需要新增依赖:`fs.glob` 是 Node 22+ 内置的。
10
+ *
11
+ * ## 为什么缓存
12
+ *
13
+ * 索引只跟 cwd 有关:一次 `@` 补全里每敲一个键都要重新过滤一遍,不能每键都扫盘。
14
+ * 缓存 15s 后过期(新建的文件能被看到),`invalidateFileIndex()` 供测试与显式刷新。
15
+ *
16
+ * ## 上限
17
+ *
18
+ * 大仓 / `$HOME` 下扫描可能上万条:`MAX_ENTRIES` 封顶、`SCAN_TIMEOUT_MS` 超时即放弃,
19
+ * 拿到多少算多少 —— 补全失败远好过让输入框卡住。
20
+ */
21
+ import { execFile } from "node:child_process";
22
+ import * as fsp from "node:fs/promises";
23
+ import path from "node:path";
24
+ /** 索引有效期:过期后下一次 `@` 重新扫 */
25
+ export const INDEX_TTL_MS = 15_000;
26
+ /** 扫描超时:到点就用手上已有的部分(git 子进程超时即失败 → 落回 fs.glob) */
27
+ export const SCAN_TIMEOUT_MS = 5_000;
28
+ /** 索引条数上限 */
29
+ export const MAX_ENTRIES = 20_000;
30
+ /**
31
+ * `fs.glob` 兜底时的排除项。
32
+ *
33
+ * `node_modules` / `.git` 不是「代码」;`dist` 是本仓的构建产物(已在 .gitignore 里,
34
+ * 走 git 时天然被排除,兜底路径要自己排除)。
35
+ */
36
+ export const DEFAULT_EXCLUDES = ["**/node_modules/**", "**/.git/**", "**/dist/**"];
37
+ let cache = null;
38
+ /** 清空缓存(测试 / 用户切目录后想强制重扫时用) */
39
+ export function invalidateFileIndex() {
40
+ cache = null;
41
+ }
42
+ /**
43
+ * 把 git 的文件清单补全成「文件 + 祖先目录」条目。
44
+ *
45
+ * git 只列文件,但补全也要能「钻目录」(`@src/tui/` → 继续列其下内容),
46
+ * 所以从每个文件的路径里反推出所有祖先目录。`Set` 去重,顺序上目录在前更好读。
47
+ */
48
+ export function fromGitList(names) {
49
+ const dirs = new Set();
50
+ const files = [];
51
+ for (const raw of names) {
52
+ // git 在 Windows 上可能给反斜杠(core.autocrlf 场景),统一成 `/`:候选与插入都用 `/`
53
+ const file = raw.trim().replace(/\\/g, "/");
54
+ if (!file)
55
+ continue;
56
+ files.push(file);
57
+ let idx = file.lastIndexOf("/");
58
+ while (idx > 0) {
59
+ dirs.add(file.slice(0, idx));
60
+ idx = file.lastIndexOf("/", idx - 1);
61
+ }
62
+ if (files.length + dirs.size >= MAX_ENTRIES)
63
+ break;
64
+ }
65
+ const entries = [];
66
+ for (const dir of dirs)
67
+ entries.push({ path: dir, dir: true });
68
+ for (const file of files)
69
+ entries.push({ path: file, dir: false });
70
+ return entries.slice(0, MAX_ENTRIES);
71
+ }
72
+ /** `git ls-files -co --exclude-standard`(路径相对 cwd);失败返回 `null` */
73
+ function gitList(cwd) {
74
+ return new Promise((resolve) => {
75
+ execFile("git", ["ls-files", "-co", "--exclude-standard"], { cwd, timeout: SCAN_TIMEOUT_MS, maxBuffer: 64 * 1024 * 1024 }, (error, stdout) => resolve(error ? null : stdout.split("\n").filter(Boolean)));
76
+ });
77
+ }
78
+ /** 非 git 目录的兜底:`fs.glob` 递归 + 排除表 */
79
+ async function globList(cwd) {
80
+ const entries = [];
81
+ for await (const dirent of fsp.glob("**/*", {
82
+ cwd,
83
+ exclude: DEFAULT_EXCLUDES,
84
+ withFileTypes: true,
85
+ })) {
86
+ const rel = path.relative(cwd, path.join(dirent.parentPath, dirent.name)).replace(/\\/g, "/");
87
+ if (!rel)
88
+ continue;
89
+ entries.push({ path: rel, dir: dirent.isDirectory() });
90
+ if (entries.length >= MAX_ENTRIES)
91
+ break;
92
+ }
93
+ return entries;
94
+ }
95
+ /**
96
+ * 取当前项目(cwd)的候选路径,带 15s 缓存。
97
+ *
98
+ * 任何异常都收敛成空数组:补全挂了不该影响用户发消息。
99
+ */
100
+ export async function listProjectPaths(cwd, deps = {}) {
101
+ const now = deps.now ?? Date.now;
102
+ if (cache && cache.cwd === cwd && now() - cache.at < INDEX_TTL_MS)
103
+ return cache.paths;
104
+ const readGit = deps.gitPaths ?? gitList;
105
+ const readGlob = deps.globPaths ?? globList;
106
+ let paths = [];
107
+ try {
108
+ const tracked = await readGit(cwd);
109
+ paths = tracked ? fromGitList(tracked) : await readGlob(cwd);
110
+ }
111
+ catch {
112
+ paths = [];
113
+ }
114
+ cache = { cwd, paths, at: now() };
115
+ return paths;
116
+ }
117
+ //# sourceMappingURL=file-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-index.js","sourceRoot":"","sources":["../../src/tui/file-index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqDH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAC;AA8MX,uBAAuB;AACvB,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqDH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc;aACzB,WAAW;aACX,eAAe;aAGf,oBAAoB;aACpB,aAAa;iBAAI,IAAI,EAAE,UAAU;;CACzB,CAAC;AA8MX,uBAAuB;AACvB,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DvE"}
package/dist/tui/index.js CHANGED
@@ -153,7 +153,7 @@ async function resumeLastSession() {
153
153
  const pointer = await readLastSession(process.cwd());
154
154
  if (!pointer)
155
155
  return null;
156
- const conversation = await conversationRepository.read(pointer.id);
156
+ const conversation = await conversationRepository().read(pointer.id);
157
157
  if (!conversation)
158
158
  return null;
159
159
  // 模型由 Agent 定义决定(旧存档里的 modelId 一律忽略)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAiB,MAAM,KAAK,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAA0B,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAGrC,8CAA8C;AAC9C,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAE9C;;;;;;GAMG;AACH,SAAS,QAAQ;IACf,mDAAmD;IACnD,IAAI,CAAC;QACH,oBAAoB,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IACD,IAAI,CAAC;QACF,OAAO,CAAC,KAA+C,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7D,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,gCAAgC;AAChC,IAAI,cAAc,GAAoB,IAAI,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;IACtB,2DAA2D;IAC3D,qDAAqD;IACrD,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;CAC3B,CAAC;AAEX,SAAS,KAAK,CAAC,IAAkC;IAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,8CAA8C;IAC9C,8BAA8B;IAC9B,mBAAmB,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9C,cAAc,GAAG,QAAQ,CAAC;IAC1B,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3C,oBAAoB,EAAE,CAAC;QACvB,IAAI,cAAc,KAAK,QAAQ;YAAE,cAAc,GAAG,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,mDAAmD;AAEnD;;;;GAIG;AACH,SAAS,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAA6C;IACvF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,OAAO,CACL,KAAC,YAAY,IACX,MAAM,EAAE,MAAM,EACd,UAAU,QACV,WAAW,QACX,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,EAC1D,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GACjC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,gBAAgB,CAAC,OAAe;IAC7C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAEtD,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CACzB,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,GAAI,CACtE,CAAkC,CAAC;IACpC,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAWD;;;;;GAKG;AACH,KAAK,UAAU,OAAO,CAAC,OAA2B;IAChD,MAAM,EAAE,GAAG,OAAO,IAAI,SAAS,CAAC;IAChC,mDAAmD;IACnD,uCAAuC;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACrD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjD,4BAA4B;IAC5B,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,+CAA+C;AAC/C,KAAK,UAAU,iBAAiB;IAC9B,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,qCAAqC;IACrC,OAAO,kBAAkB,CAAC;QACxB,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,cAAc,EAAE,YAAY,CAAC,EAAE;QAC/B,gBAAgB,EAAE,YAAY,CAAC,EAAE;KAClC,CAAC,CAAC;AACL,CAAC;AAED,mBAAmB;AACnB,SAAS,kBAAkB,CAAC,KAK3B;IACC,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;KACzC,CAAC;AACJ,CAAC;AAED,gDAAgD;AAEhD;;;GAGG;AACH,KAAK,UAAU,OAAO,CAAC,MAAkB,EAAE,UAAyB,EAAE;IACpE,IAAI,OAAO,GAAG,MAAM,CAAC;IACrB,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,IAAI,YAAgC,CAAC;IACrC,qDAAqD;IACrD,IAAI,aAAiC,CAAC;IACtC;;;OAGG;IACH,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAE1C,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB,KAAC,IAAI,IACH,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAC1C,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;QACF,aAAa,GAAG,SAAS,CAAC;QAE1B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,MAgBb,CAAC;YACF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,sCAAsC;gBACtC,OAAO,GAAG;oBACR,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;oBAC3B,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;oBACzC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB;iBAC9C,CAAC;gBACF,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/B,YAAY,GAAG,SAAS,CAAC;gBACzB,aAAa,GAAG,SAAS,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC;gBACtC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;gBAClC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC7B,sDAAsD;gBACtD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnD,CAAC;gBACD,SAAS;YACX,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;AACH,CAAC;AAqBD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE;IACtD,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,iDAAiD;IACjD,gDAAgD;IAChD,0DAA0D;IAC1D,gBAAgB,EAAE,CAAC;IACnB,mCAAmC;IACnC,yCAAyC;IACzC,MAAM,UAAU,EAAE,CAAC;IACnB,oDAAoD;IACpD,aAAa,EAAE,CAAC;IAEhB,IAAI,CAAC;QACH,wBAAwB;QACxB,iDAAiD;QACjD,0DAA0D;QAC1D,8CAA8C;QAC9C,6BAA6B;QAC7B,MAAM,eAAe,EAAE,CAAC;QAExB,YAAY;QACZ,MAAM,KAAK,CAAC,KAAC,MAAM,KAAG,CAAC,CAAC;QAExB,2BAA2B;QAC3B,gDAAgD;QAChD,IAAI,MAAM,GAAsB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,iBAAiB,EAAE,CAAC;QACtF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;YACjC,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,qCAAqC;QACrC,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;YACvF,QAAQ,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACvC,QAAQ,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,QAAQ,EAAE,CAAC;IACb,CAAC;YAAS,CAAC;QACT,gBAAgB,EAAE,CAAC;QACnB,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,SAAS,mBAAmB;IAC1B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC;YACH,cAAc,EAAE,OAAO,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ;QACV,CAAC;QACD,uCAAuC;QACvC,IAAI,CAAC;YACH,oBAAoB,EAAE,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ;QACV,CAAC;QACD,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE;QACjC,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAG,KAAa,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;QAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAE1C,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"key-debug.js","sourceRoot":"","sources":["../../src/tui/key-debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC;AAEpE,+BAA+B;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,wBAAwB,CAAC;AAsBpF,+BAA+B;AAC/B,MAAM,UAAU,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,GAAuB;IACrC,MAAM;IACN,MAAM;IACN,OAAO;IACP,SAAS;IACT,WAAW;IACX,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,WAAW;IACX,QAAQ;CACT,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,GAAa,EAAE,GAAY;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,GAAG,EAAE,CAAC;AAChF,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAA4B,CAAC;IACnD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,iBAAiB;QAAE,OAAO;IAC/B,IAAI,CAAC;QACH,cAAc,CAAC,cAAc,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,iBAAiB,IAAI,OAAO;QAAE,OAAO;IAC1C,OAAO,GAAG,IAAI,CAAC;IACf,WAAW,CAAC,aAAa,eAAe,EAAE,SAAS,cAAc,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED,aAAa;AACb,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,GAAa;IACnD,IAAI,CAAC,iBAAiB;QAAE,OAAO;IAC/B,WAAW,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"key-debug.js","sourceRoot":"","sources":["../../src/tui/key-debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC;AAEpE,+BAA+B;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,wBAAwB,CAAC;AAsBpF,+BAA+B;AAC/B,MAAM,UAAU,eAAe,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IAClE,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,GAAuB;IACrC,MAAM;IACN,MAAM;IACN,OAAO;IACP,SAAS;IACT,WAAW;IACX,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,WAAW;IACX,QAAQ;CACT,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,GAAa,EAAE,GAAY;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,GAAG,EAAE,CAAC;AAChF,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAA4B,CAAC;IACnD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,iBAAiB;QAAE,OAAO;IAC/B,IAAI,CAAC;QACH,cAAc,CAAC,cAAc,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,iBAAiB,IAAI,OAAO;QAAE,OAAO;IAC1C,OAAO,GAAG,IAAI,CAAC;IACf,WAAW,CAAC,aAAa,eAAe,EAAE,SAAS,cAAc,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED,aAAa;AACb,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,GAAa;IACnD,IAAI,CAAC,iBAAiB;QAAE,OAAO;IAC/B,WAAW,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,47 @@
1
+ /** 一次 `@` 补全的上下文 */
2
+ export interface Mention {
3
+ /** `@` 之后到**光标**之间的原文(不含 `@`)—— 即用户当前敲的查询串 */
4
+ query: string;
5
+ /** `@` 的字素簇索引 */
6
+ start: number;
7
+ /** token 结束位置(字素簇索引,不含):补全时替换 `[start, end)` */
8
+ end: number;
9
+ }
10
+ /** 索引里的一条候选路径 */
11
+ export interface PathEntry {
12
+ /** 相对 cwd 的路径(`/` 分隔,不带 `./` 前缀) */
13
+ path: string;
14
+ /** 是否目录 —— 决定补全后是否补一个 `/`,让用户可以继续往里钻 */
15
+ dir: boolean;
16
+ }
17
+ /** 候选上限:再多也没人翻;同时给每次按键的内存过滤定个上界(10k 候选实测约 9ms) */
18
+ export declare const MENTION_LIMIT = 50;
19
+ /**
20
+ * 取出光标所在的 `@token`;光标不在 token 里(或不在 mention 语境里)返回 `null`。
21
+ *
22
+ * 纯扫描、无正则回溯:文本长度就是输入框长度,逐字素走一遍即可。
23
+ */
24
+ export declare function extractMention(text: string, cursor: number): Mention | null;
25
+ /** 补全要插入的文本:`@路径`,目录补一个 `/` 以便继续往下钻 */
26
+ export declare function mentionInsertText(path: string, dir: boolean): string;
27
+ /**
28
+ * 子序列打分(**越小越靠前**);不匹配返回 `null`。
29
+ *
30
+ * 依据实测(10k 条候选、每次按键):贪婪子序列 + 三种加权就够用 ——
31
+ * `tuicha` 能直达 `src/tui/screens/chat.tsx`,不必让用户逐段敲路径。
32
+ *
33
+ * 加权:
34
+ * · 跳跃惩罚:命中间隔越大越差(`t..u..i` 不如 `tui` 连续);
35
+ * · 连续命中奖励:连着的字符是同一段词;
36
+ * · **整体前缀** > **文件名前缀**:`src/tui/` 这种逐段输入要能压过散落命中;
37
+ * · 同分时浅的、短的优先:根目录文件比深埋的图标库更可能被点名。
38
+ */
39
+ export declare function scorePath(query: string, path: string): number | null;
40
+ /**
41
+ * 过滤 + 排序,取前 `limit` 条。
42
+ *
43
+ * 每次按键都会全量扫一遍(候选只来自内存数组),因此这里不做任何渐进/缓存:
44
+ * 实测 10k 条最长 8.4ms,比一次渲染便宜。
45
+ */
46
+ export declare function rankPaths(query: string, entries: readonly PathEntry[], limit?: number): PathEntry[];
47
+ //# sourceMappingURL=mention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention.d.ts","sourceRoot":"","sources":["../../src/tui/mention.ts"],"names":[],"mappings":"AA6CA,oBAAoB;AACpB,MAAM,WAAW,OAAO;IACtB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,iBAAiB;AACjB,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,GAAG,EAAE,OAAO,CAAC;CACd;AAED,kDAAkD;AAClD,eAAO,MAAM,aAAa,KAAK,CAAC;AAMhC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CA4B3E;AAED,uCAAuC;AACvC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpE;AAaD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsBpE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,SAAS,EAAE,EAC7B,KAAK,SAAgB,GACpB,SAAS,EAAE,CAQb"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * `@` 文件路径补全 —— 纯逻辑层:识别 token、给候选排序、算出要插入什么。
3
+ *
4
+ * ## 三层分工
5
+ *
6
+ * · `mention.ts`(本文件):无 IO、无 React,全是可单测的纯函数;
7
+ * · `file-index.ts`:扫描项目文件(git 优先 / `fs.glob` 兜底)并缓存;
8
+ * · `screens/chat.tsx`:只做「按键 → 调上面两者 → 落字」的接线。
9
+ *
10
+ * ## 为什么只插路径文本,不附带文件内容
11
+ *
12
+ * `@` 只把**相对路径**写进草稿,消息本身仍是普通文本,模型用 `read` 工具自己去读。
13
+ * 这样消息契约(core 的 `Message`)一点不动、插入可撤销、超大文件也不会把一条消息
14
+ * 撑成巨型 payload —— 代价是多一轮工具调用,这是刻意的取舍。
15
+ *
16
+ * ## 判据落在字符事实上
17
+ *
18
+ * 「光标是否处在一个 `@token` 里」只看**光标之前的原始字符**:从光标往回扫到空白 /
19
+ * 行首,途中遇到 `@` 且其**前一个字符**是行首、空白或分隔符才算 mention。于是:
20
+ *
21
+ * · `a@b.com` 不算(`@` 前是 `a`)—— 邮箱不会突然弹出文件列表;
22
+ * · `@src/tui` 算,query 为 `src/tui`;
23
+ * · 光标停在 token 中间(`@src|/foo.ts`)也算,且 `end` 会**向后吃掉整个 token**:
24
+ * 补全要替换的是整段,只替换到光标会留下半截残字。
25
+ */
26
+ import { graphemes } from "./text.js";
27
+ /**
28
+ * `@` token 两侧的分隔符 —— 让 `(@src/x)` / `"@src/x"` / `@src/x,` 也能触发,
29
+ * 并且右端在 `)` 之前就收住(否则补全会把右括号一起替换掉)。
30
+ *
31
+ * 反向的代价是有意接受的:路径里出现这些字符(如 `a,b.txt`)时 token 会在那里截断,
32
+ * 属于极少数情况,且补全仍可手动补完。
33
+ */
34
+ const BOUNDARY = new Set([
35
+ "(", ")", "[", "]", "{", "}", "<", ">",
36
+ '"', "'", "`", "“", "”", "‘", "’",
37
+ ",", ",", ":", ":", ";", ";",
38
+ // 中文行文的标点:`@src/x。这里有问题` 里的 `。` 必须收住 token,否则补全会把
39
+ // 后面整句一起替换掉,用户写句子时菜单也会一直弹着不走
40
+ "。", "、", "!", "?", "(", ")", "《", "》",
41
+ "【", "】", "〔", "〕", "「", "」", "『", "』",
42
+ "…", "—", "~",
43
+ ]);
44
+ /** 候选上限:再多也没人翻;同时给每次按键的内存过滤定个上界(10k 候选实测约 9ms) */
45
+ export const MENTION_LIMIT = 50;
46
+ function isSpace(ch) {
47
+ return ch !== "" && /\s/.test(ch);
48
+ }
49
+ /**
50
+ * 取出光标所在的 `@token`;光标不在 token 里(或不在 mention 语境里)返回 `null`。
51
+ *
52
+ * 纯扫描、无正则回溯:文本长度就是输入框长度,逐字素走一遍即可。
53
+ */
54
+ export function extractMention(text, cursor) {
55
+ const chars = graphemes(text);
56
+ const cp = Math.max(0, Math.min(cursor, chars.length));
57
+ // 1) 往回找 `@`:中途遇到空白,说明光标不在任何 token 内
58
+ let i = cp;
59
+ while (i > 0) {
60
+ const ch = chars[i - 1];
61
+ if (ch === "@")
62
+ break;
63
+ if (isSpace(ch) || BOUNDARY.has(ch))
64
+ return null;
65
+ i -= 1;
66
+ }
67
+ if (i === 0)
68
+ return null; // 一路扫到开头也没有 `@`
69
+ const start = i - 1; // `@` 的下标
70
+ // 2) 边界:`@` 前的字符必须是行首 / 空白 / 分隔符,否则当普通字符(邮箱里的 `@`)
71
+ const prev = start > 0 ? chars[start - 1] : "";
72
+ if (prev && !isSpace(prev) && !BOUNDARY.has(prev))
73
+ return null;
74
+ // 3) 右端:向后扫到空白或分隔符。光标停在 token 中间时也要吃掉整段
75
+ let end = cp;
76
+ while (end < chars.length) {
77
+ const ch = chars[end];
78
+ if (isSpace(ch) || BOUNDARY.has(ch))
79
+ break;
80
+ end += 1;
81
+ }
82
+ return { query: chars.slice(start + 1, cp).join(""), start, end };
83
+ }
84
+ /** 补全要插入的文本:`@路径`,目录补一个 `/` 以便继续往下钻 */
85
+ export function mentionInsertText(path, dir) {
86
+ return `@${path}${dir ? "/" : ""}`;
87
+ }
88
+ function basename(path) {
89
+ return path.slice(path.lastIndexOf("/") + 1);
90
+ }
91
+ /** 路径深度(`a.ts` = 0,`src/a.ts` = 1) */
92
+ function depth(path) {
93
+ let n = 0;
94
+ for (const ch of path)
95
+ if (ch === "/")
96
+ n += 1;
97
+ return n;
98
+ }
99
+ /**
100
+ * 子序列打分(**越小越靠前**);不匹配返回 `null`。
101
+ *
102
+ * 依据实测(10k 条候选、每次按键):贪婪子序列 + 三种加权就够用 ——
103
+ * `tuicha` 能直达 `src/tui/screens/chat.tsx`,不必让用户逐段敲路径。
104
+ *
105
+ * 加权:
106
+ * · 跳跃惩罚:命中间隔越大越差(`t..u..i` 不如 `tui` 连续);
107
+ * · 连续命中奖励:连着的字符是同一段词;
108
+ * · **整体前缀** > **文件名前缀**:`src/tui/` 这种逐段输入要能压过散落命中;
109
+ * · 同分时浅的、短的优先:根目录文件比深埋的图标库更可能被点名。
110
+ */
111
+ export function scorePath(query, path) {
112
+ // 空 query(刚敲下 `@`):按「浅 → 短 → 字典序」铺开
113
+ if (!query)
114
+ return depth(path) * 4 + path.length * 0.05;
115
+ const q = query.toLowerCase();
116
+ const p = path.toLowerCase();
117
+ let pi = 0;
118
+ let score = 0;
119
+ let lastHit = -1;
120
+ for (const ch of q) {
121
+ const hit = p.indexOf(ch, pi);
122
+ if (hit === -1)
123
+ return null;
124
+ score += hit - pi; // 跳跃惩罚
125
+ if (hit === lastHit + 1)
126
+ score -= 1; // 连续命中
127
+ lastHit = hit;
128
+ pi = hit + 1;
129
+ }
130
+ if (p.startsWith(q))
131
+ score -= 200;
132
+ else if (basename(p).startsWith(q))
133
+ score -= 40;
134
+ return score + path.length * 0.05 + depth(path) * 2;
135
+ }
136
+ /**
137
+ * 过滤 + 排序,取前 `limit` 条。
138
+ *
139
+ * 每次按键都会全量扫一遍(候选只来自内存数组),因此这里不做任何渐进/缓存:
140
+ * 实测 10k 条最长 8.4ms,比一次渲染便宜。
141
+ */
142
+ export function rankPaths(query, entries, limit = MENTION_LIMIT) {
143
+ const scored = [];
144
+ for (const entry of entries) {
145
+ const score = scorePath(query, entry.path);
146
+ if (score !== null)
147
+ scored.push({ entry, score });
148
+ }
149
+ scored.sort((a, b) => a.score - b.score || (a.entry.path < b.entry.path ? -1 : a.entry.path > b.entry.path ? 1 : 0));
150
+ return scored.slice(0, Math.max(0, limit)).map((item) => item.entry);
151
+ }
152
+ //# sourceMappingURL=mention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention.js","sourceRoot":"","sources":["../../src/tui/mention.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mouse.js","sourceRoot":"","sources":["../../src/tui/mouse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAEzD,sDAAsD;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAE1D,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,SAAS,GAAG,yCAAyC,CAAC;AAE5D,iEAAiE;AACjE,MAAM,aAAa,GAAG,OAAO,CAAC;AAW9B,+BAA+B;AAC/B,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;IAC/C,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO;QACL,SAAS,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAA6B,OAAO,CAAC,MAAM;IAC7E,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,oBAAoB,CAAC,SAA6B,OAAO,CAAC,MAAM;IAC9E,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"mouse.js","sourceRoot":"","sources":["../../src/tui/mouse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAEzD,sDAAsD;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAE1D,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,SAAS,GAAG,yCAAyC,CAAC;AAE5D,iEAAiE;AACjE,MAAM,aAAa,GAAG,OAAO,CAAC;AAW9B,+BAA+B;AAC/B,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;IAC/C,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO;QACL,SAAS,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAM,GAAuB,OAAO,CAAC,MAAM;IAC7E,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,oBAAoB,CAAC,MAAM,GAAuB,OAAO,CAAC,MAAM;IAC9E,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"phase.d.ts","sourceRoot":"","sources":["../../src/tui/phase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,mBAAmB;AACnB,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,cAAc,GACd,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAA0B;IAEzC,+BAA+B;IAC/B,IAAI,KAAK,IAAI,SAAS,GAAG,IAAI,CAE5B;IAED,yBAAyB;IACzB,KAAK,IAAI,IAAI;IAIb,+CAA+C;IAC/C,UAAU,IAAI,IAAI;IAIlB;;;;;OAKG;IACH,MAAM,IAAI,IAAI;IAId;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAqB3B;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;CAQrC;AAED,gCAAgC;AAChC,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,CAoB1D"}
1
+ {"version":3,"file":"phase.d.ts","sourceRoot":"","sources":["../../src/tui/phase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,mBAAmB;AACnB,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,cAAc,GACd,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAA0B;IAEzC,+BAA+B;IAC/B,IAAI,KAAK,IAAI,SAAS,GAAG,IAAI,CAE5B;IAED,yBAAyB;IACzB,KAAK,IAAI,IAAI,CAEZ;IAED,+CAA+C;IAC/C,UAAU,IAAI,IAAI,CAEjB;IAED;;;;;OAKG;IACH,MAAM,IAAI,IAAI,CAEb;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAmB1B;IAED;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAOnC;CACF;AAED,gCAAgC;AAChC,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,CAoB1D"}
@@ -1,11 +1,19 @@
1
1
  import type { Dispatch, SetStateAction } from "react";
2
2
  import type { HandoffMode } from "@ai-zen/agents-sdk";
3
+ import { spawn } from "node:child_process";
3
4
  import { SelectItem } from "../components.js";
4
5
  import { ChatSession } from "../chat-session.js";
5
6
  import { type CommandName } from "../../conversation-commands/registry.js";
6
7
  import { WizardStep } from "../config-wizard/index.js";
7
8
  export interface ChatCommandHost {
8
9
  session: ChatSession;
10
+ /**
11
+ * 起子进程的实现(`/update` 用)。缺省用 `node:child_process` 的 `spawn`。
12
+ *
13
+ * 做成可注入是为了让测试不必 `vi.mock("node:child_process")` —— 模块级 mock 是
14
+ * 全局注册的,进程内共享模块时会波及所有用到子进程的模块。
15
+ */
16
+ spawn?: typeof spawn;
9
17
  /** 通知通道:命令反馈(保存 / 清除 / 迁移结果 …)走独立栏位,不进 messages */
10
18
  notice: (text: string, tone?: "info" | "error") => void;
11
19
  /** 清屏(保留上下文):把转录显示起点推到最新 */
@@ -1 +1 @@
1
- {"version":3,"file":"chat-commands.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/chat-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-commands.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/chat-commands.ts"],"names":[],"mappings":"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"}