@antaif3ng/til-work 0.2.0 → 0.3.0

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 CHANGED
@@ -23,6 +23,14 @@ TIL work 是一个基于大语言模型的命令行 Agent 工具。它可以直
23
23
  | **安全拦截** | 自动检测并拦截 `rm -rf`、`sudo` 等危险命令 |
24
24
  | **多模型** | 支持 Anthropic、OpenAI、Google Gemini 及任意 OpenAI 兼容接口 |
25
25
 
26
+ ## 交互体验
27
+
28
+ - **多行输入**:行尾输入 `\` 再回车、`Ctrl+J` 或 `Alt+Enter` 均可插入换行,`Esc` 取消多行输入
29
+ - **输入框 UI**:带上下边框的输入区域,底部常驻显示当前工作目录和随机操作提示
30
+ - **Placeholder**:空输入时显示换行快捷键提示,输入后自动消失
31
+ - **文件引用**:输入 `@` 后实时搜索文件,方向键选择,文件内容自动注入 LLM 上下文
32
+ - **命令菜单**:输入 `/` 弹出命令列表,方向键循环选择,`Enter` 直接执行,`Tab` 补全
33
+
26
34
  ## 前置要求
27
35
 
28
36
  - **Node.js** >= 20.6.0(推荐 22+)
@@ -92,7 +100,9 @@ export OPENAI_BASE_URL=https://api.minimaxi.com/v1
92
100
  til
93
101
  ```
94
102
 
95
- 输入 `/` 查看所有可用命令(支持方向键选择),输入 `@` 引用文件内容。
103
+ 输入 `/` 查看所有可用命令(支持方向键循环选择),输入 `@` 引用文件内容(自动注入到上下文)。
104
+
105
+ 支持多行输入:行尾输入 `\` 再回车,或按 `Ctrl+J` / `Alt+Enter` 换行。
96
106
 
97
107
  ### 3. 单次执行模式
98
108
 
@@ -398,10 +408,10 @@ til --resume abc12345 # 恢复指定会话
398
408
  实时显示使用率:
399
409
 
400
410
  ```
401
- in:12.3k out:1.2k cache_r:8.0k ctx:35%
411
+ in:12.3k out:1.2k ctx:35%
402
412
  ```
403
413
 
404
- - `in` 输入 token · `out` 输出 token · `cache_r/w` 缓存读写 · `ctx` 上下文占用率
414
+ - `in` 输入 token · `out` 输出 token · `ctx` 上下文占用率
405
415
 
406
416
  ## 安全拦截
407
417
 
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/core/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAYtD,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAe1E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CASnE;AAED,wBAAgB,oBAAoB,CACnC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACnB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAItC"}
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/core/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAYtD,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAe1E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAQnE;AAED,wBAAgB,oBAAoB,CACnC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACnB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAItC"}
@@ -55,8 +55,6 @@ export function formatUsage(usage, _modelId) {
55
55
  parts.push(`in:${formatTokenCount(usage.input)}`);
56
56
  if (usage.output)
57
57
  parts.push(`out:${formatTokenCount(usage.output)}`);
58
- if (usage.cacheRead)
59
- parts.push(`cache_r:${formatTokenCount(usage.cacheRead)}`);
60
58
  if (usage.cacheWrite)
61
59
  parts.push(`cache_w:${formatTokenCount(usage.cacheWrite)}`);
62
60
  return parts.join(" ");
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/core/pricing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/core/pricing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAKN,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,yEAAyE;IACzE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAgBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAoEtE"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAKN,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,yEAAyE;IACzE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAgBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAqEtE"}
@@ -47,7 +47,8 @@ ${toolsList}`);
47
47
  7. **Large outputs**: When output is truncated, inform the user and suggest how to see more.
48
48
  8. **Code changes**: When editing code, preserve the existing style and conventions. Make minimal, targeted changes.
49
49
  9. **Security**: Never output API keys, passwords, or other secrets. Warn if you detect credentials in files.
50
- 10. **Chinese support**: Respond in the user's language. Support Chinese filenames and content.`);
50
+ 10. **Chinese support**: Respond in the user's language. Support Chinese filenames and content.
51
+ 11. **File references**: User messages may contain \`<file name="path">content</file>\` blocks. These are file contents the user has explicitly referenced using @ notation. Treat them as the primary context for the user's request — analyze, explain, or operate on these files as instructed.`);
51
52
  if (customInstructions) {
52
53
  sections.push(`## Custom Instructions\n\n${customInstructions}`);
53
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAc,MAAM,aAAa,CAAC;AAChE,OAAO,EACN,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,GAG3B,MAAM,aAAa,CAAC;AAarB,MAAM,gBAAgB,GAA2B;IAChD,IAAI,EAAE,mDAAmD;IACzD,IAAI,EAAE,mJAAmJ;IACzJ,KAAK,EAAE,2BAA2B;IAClC,IAAI,EAAE,2DAA2D;IACjE,WAAW,EAAE,wDAAwD;IACrE,YAAY,EAAE,kEAAkE;IAChF,UAAU,EAAE,+EAA+E;IAC3F,SAAS,EAAE,kDAAkD;IAC7D,UAAU,EAAE,sFAAsF;IAClG,QAAQ,EAAE,4KAA4K;IACtL,OAAO,EAAE,iJAAiJ;CAC1J,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,OAA4B;IAC7D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAEnD,MAAM,SAAS,GAAG,KAAK;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACrD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;0EAS2D,CAAC,CAAC;IAE3E,QAAQ,CAAC,IAAI,CAAC;;EAEb,SAAS,EAAE,CAAC,CAAC;IAEd,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;gGAWiF,CAAC,CAAC;IAEjG,IAAI,kBAAkB,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,6BAA6B,kBAAkB,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,6DAA6D;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAElD,8BAA8B;IAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE9C,uEAAuE;IACvE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,WAAW;YAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC;;kBAEG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;kBACtC,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE;uBAC1B,GAAG;QAClB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE;aACtC,OAAO,CAAC,OAAO;UAClB,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ;WACrB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;IAE5C,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAc,MAAM,aAAa,CAAC;AAChE,OAAO,EACN,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,GAG3B,MAAM,aAAa,CAAC;AAarB,MAAM,gBAAgB,GAA2B;IAChD,IAAI,EAAE,mDAAmD;IACzD,IAAI,EAAE,mJAAmJ;IACzJ,KAAK,EAAE,2BAA2B;IAClC,IAAI,EAAE,2DAA2D;IACjE,WAAW,EAAE,wDAAwD;IACrE,YAAY,EAAE,kEAAkE;IAChF,UAAU,EAAE,+EAA+E;IAC3F,SAAS,EAAE,kDAAkD;IAC7D,UAAU,EAAE,sFAAsF;IAClG,QAAQ,EAAE,4KAA4K;IACtL,OAAO,EAAE,iJAAiJ;CAC1J,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,OAA4B;IAC7D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAEnD,MAAM,SAAS,GAAG,KAAK;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACrD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;0EAS2D,CAAC,CAAC;IAE3E,QAAQ,CAAC,IAAI,CAAC;;EAEb,SAAS,EAAE,CAAC,CAAC;IAEd,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;mSAYoR,CAAC,CAAC;IAEpS,IAAI,kBAAkB,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,6BAA6B,kBAAkB,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,6DAA6D;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAElD,8BAA8B;IAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE9C,uEAAuE;IACvE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,WAAW;YAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC;;kBAEG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;kBACtC,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE;uBAC1B,GAAG;QAClB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE;aACtC,OAAO,CAAC,OAAO;UAClB,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ;WACrB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;IAE5C,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/modes/interactive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAkOrE,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA4a/E"}
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/modes/interactive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAgSrE,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqjB/E"}
@@ -25,6 +25,15 @@ const COMMANDS = {
25
25
  "/config": "查看当前配置",
26
26
  "/exit": "退出 TIL",
27
27
  };
28
+ const TIPS = [
29
+ "输入 / 查看所有可用命令,方向键选择",
30
+ "使用 /model 切换模型",
31
+ "按 Ctrl+C 或 Esc 中止正在执行的请求",
32
+ "使用 /memory 查看记忆内容",
33
+ "使用 /sessions 查看历史会话",
34
+ "输入 @ 引用文件内容(支持搜索和方向键选择)",
35
+ "换行: 行尾输入 \\ 再回车,或 Ctrl+J / Alt+Enter",
36
+ ];
28
37
  // ── UI helpers ──
29
38
  function getBorderWidth() {
30
39
  return Math.min(process.stdout.columns || 80, 80);
@@ -32,8 +41,16 @@ function getBorderWidth() {
32
41
  function printBorder(ch = "─") {
33
42
  console.log(chalk.dim(ch.repeat(getBorderWidth())));
34
43
  }
44
+ function shortenDir(cwd) {
45
+ return cwd.replace(process.env.HOME || "", "~");
46
+ }
35
47
  // ── Interactive Popup Menu ──
36
- const PROMPT_WIDTH = 3; // visible width of " › "
48
+ const PROMPT_WIDTH = 3; // visible width of " › " or " … "
49
+ function resetMenu(menu) {
50
+ menu.visible = false;
51
+ menu.items = [];
52
+ menu.selectedIndex = 0;
53
+ }
37
54
  function getCommandEntries(session) {
38
55
  const allCmds = Object.keys(COMMANDS);
39
56
  const skillCmds = session.getSkillNames().map((n) => `/skill:${n}`);
@@ -54,13 +71,11 @@ function filterEntries(entries, filter) {
54
71
  function getModelMenuEntries(filter, session) {
55
72
  const entries = [];
56
73
  const currentId = session.model.id;
57
- // Current model first
58
74
  entries.push({
59
75
  label: currentId,
60
76
  detail: "当前",
61
77
  value: `/model ${currentId}`,
62
78
  });
63
- // Load config synchronously — config.models is already migrated at startup
64
79
  const cfg = session.config;
65
80
  if (cfg.models) {
66
81
  for (const [id, m] of Object.entries(cfg.models)) {
@@ -88,44 +103,63 @@ function getFileMenuEntries(prefix, cwd) {
88
103
  value: s.value,
89
104
  }));
90
105
  }
106
+ const PLACEHOLDER = "Ctrl+J 或 \\+Enter 换行";
91
107
  /**
92
- * Render the popup menu below the input line using relative cursor movement.
93
- * Unlike \x1b[s / \x1b[u (save/restore absolute position), relative movement
94
- * via \x1b[nA works correctly even when the terminal scrolls during output.
108
+ * Render the area below the input cursor: popup menu (if any) +
109
+ * underline + status line. Only called at prompt start and on menu
110
+ * state changes NEVER on every keystroke so CJK IME is not disturbed.
95
111
  */
96
- function renderMenu(menu, cursorCol) {
97
- if (!menu.visible || menu.items.length === 0)
112
+ function renderBelowArea(menu, below, session, cursorCol) {
113
+ if (!below.active)
98
114
  return;
99
- const totalLinesToClear = Math.max(menu.items.length, menu.renderedLines);
100
- const padWidth = menu.type === "file" ? 24 : 16;
115
+ const menuItemCount = menu.visible && menu.items.length > 0 ? menu.items.length : 0;
116
+ const fixedLines = 2; // underline + status
117
+ const contentLines = menuItemCount + fixedLines;
118
+ const totalLinesToProcess = Math.max(contentLines, below.renderedLines);
119
+ // Pre-scroll: ensure enough vertical space below cursor so that
120
+ // writing \n never causes unexpected scrolling after rendering.
121
+ let preScroll = "";
122
+ for (let i = 0; i < totalLinesToProcess + 1; i++)
123
+ preScroll += "\n";
124
+ preScroll += `\x1b[${totalLinesToProcess + 1}A`;
101
125
  let output = "\n";
102
- for (let i = 0; i < menu.items.length; i++) {
103
- const { label, detail } = menu.items[i];
104
- const isSelected = i === menu.selectedIndex;
105
- if (isSelected) {
106
- output += ` ${chalk.bgCyan.black(` ${label.padEnd(padWidth)}`)} ${chalk.white(detail)}`;
107
- }
108
- else {
109
- output += ` ${chalk.cyan(` ${label.padEnd(padWidth)}`)} ${chalk.dim(detail)}`;
126
+ // Menu items
127
+ if (menuItemCount > 0) {
128
+ const padWidth = menu.type === "file" ? 24 : 16;
129
+ for (let i = 0; i < menu.items.length; i++) {
130
+ const { label, detail } = menu.items[i];
131
+ const isSelected = i === menu.selectedIndex;
132
+ if (isSelected) {
133
+ output += ` ${chalk.bgCyan.black(` ${label.padEnd(padWidth)}`)} ${chalk.white(detail)}`;
134
+ }
135
+ else {
136
+ output += ` ${chalk.cyan(` ${label.padEnd(padWidth)}`)} ${chalk.dim(detail)}`;
137
+ }
138
+ output += "\x1b[K\n";
110
139
  }
111
- output += "\x1b[K\n";
112
140
  }
113
- for (let i = menu.items.length; i < menu.renderedLines; i++) {
141
+ // Underline
142
+ output += chalk.dim("─".repeat(getBorderWidth())) + "\x1b[K\n";
143
+ // Status line
144
+ const dir = shortenDir(session.cwd);
145
+ output += chalk.dim(` ${dir} · Tip: ${below.tip}`) + "\x1b[K\n";
146
+ // Clear stale lines from previous render
147
+ for (let i = contentLines; i < below.renderedLines; i++) {
114
148
  output += "\x1b[K\n";
115
149
  }
116
- menu.renderedLines = Math.max(menu.renderedLines, menu.items.length);
117
- const linesToGoUp = 1 + totalLinesToClear;
150
+ below.renderedLines = contentLines;
151
+ const linesToGoUp = 1 + totalLinesToProcess;
118
152
  output += `\x1b[${linesToGoUp}A\r`;
119
153
  if (cursorCol > 0) {
120
154
  output += `\x1b[${cursorCol}C`;
121
155
  }
122
- process.stdout.write(output);
156
+ process.stdout.write(preScroll + output);
123
157
  }
124
- function clearMenu(menu, cursorCol = 0) {
125
- if (menu.renderedLines === 0)
158
+ function clearBelowArea(below, cursorCol) {
159
+ if (below.renderedLines === 0)
126
160
  return;
127
161
  let output = "";
128
- const totalLines = menu.renderedLines + 1;
162
+ const totalLines = below.renderedLines + 1;
129
163
  for (let i = 0; i < totalLines; i++) {
130
164
  output += "\n\x1b[K";
131
165
  }
@@ -134,10 +168,11 @@ function clearMenu(menu, cursorCol = 0) {
134
168
  output += `\x1b[${cursorCol}C`;
135
169
  }
136
170
  process.stdout.write(output);
137
- menu.visible = false;
138
- menu.items = [];
139
- menu.selectedIndex = 0;
140
- menu.renderedLines = 0;
171
+ below.renderedLines = 0;
172
+ }
173
+ /** Show grey placeholder text when input is empty, using cursor save/restore. */
174
+ function showPlaceholder() {
175
+ process.stdout.write(`\x1b[s${chalk.dim(PLACEHOLDER)}\x1b[u`);
141
176
  }
142
177
  // ── Spinner ──
143
178
  const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
@@ -185,9 +220,18 @@ async function printExitMessage(session) {
185
220
  console.log(chalk.dim(`继续最近会话: ${chalk.cyan("til --continue")}`));
186
221
  await session.shutdown();
187
222
  }
223
+ // ── Tips helper ──
224
+ function getRandomTip(session) {
225
+ const tips = [...TIPS];
226
+ if (session.skills.length > 0)
227
+ tips.push("使用 /skills 查看已加载的技能");
228
+ const extInfo = session.getExtensionInfo();
229
+ if (extInfo.length > 0)
230
+ tips.push("使用 /extensions 查看已加载的扩展");
231
+ return tips[Math.floor(Math.random() * tips.length)];
232
+ }
188
233
  // ── Main interactive mode ──
189
234
  export async function runInteractiveMode(options) {
190
- // Pending permission prompts queue — resolved by the readline prompt
191
235
  let pendingPermissionResolve = null;
192
236
  const permissionPrompt = (question) => {
193
237
  return new Promise((resolve) => {
@@ -210,6 +254,10 @@ export async function runInteractiveMode(options) {
210
254
  let firstTokenReceived = false;
211
255
  let insideThinkBlock = false;
212
256
  let thinkTagBuffer = "";
257
+ // Multi-line input state
258
+ const multiLineBuffer = [];
259
+ // Below-area state: menu + underline + status
260
+ const below = { renderedLines: 0, active: false, tip: "" };
213
261
  session.subscribe((event) => {
214
262
  switch (event.type) {
215
263
  case "agent_start":
@@ -365,13 +413,11 @@ export async function runInteractiveMode(options) {
365
413
  spinner = null;
366
414
  }
367
415
  isStreaming = false;
368
- // Check for errors
369
416
  const lastMsg = event.messages?.[event.messages.length - 1];
370
417
  if (lastMsg && "stopReason" in lastMsg && lastMsg.stopReason === "error") {
371
418
  const errText = lastMsg.errorMessage || "未知错误";
372
419
  process.stdout.write(chalk.red(`\n ✗ 错误: ${errText}\n`));
373
420
  }
374
- // Show per-turn usage summary
375
421
  const turnUsage = session.getLastTurnUsageSummary();
376
422
  const ctxInfo = session.getContextUsagePercent();
377
423
  if (turnUsage) {
@@ -382,7 +428,7 @@ export async function runInteractiveMode(options) {
382
428
  ctxColor = chalk.yellow;
383
429
  process.stdout.write(chalk.dim(`\n ${turnUsage} ctx:${ctxColor(ctxInfo.display)}`));
384
430
  }
385
- process.stdout.write("\n");
431
+ process.stdout.write("\n\n");
386
432
  break;
387
433
  }
388
434
  }
@@ -391,7 +437,6 @@ export async function runInteractiveMode(options) {
391
437
  visible: false,
392
438
  items: [],
393
439
  selectedIndex: 0,
394
- renderedLines: 0,
395
440
  type: "command",
396
441
  };
397
442
  const completer = (line) => {
@@ -406,7 +451,59 @@ export async function runInteractiveMode(options) {
406
451
  const getCursorCol = () => PROMPT_WIDTH + (rl.cursor ?? 0);
407
452
  const allEntries = getCommandEntries(session);
408
453
  const originalTtyWrite = rl._ttyWrite;
454
+ // Helper: update menu visibility based on current line content
455
+ function updateMenuForLine(line, session) {
456
+ if (line.startsWith("/model ")) {
457
+ const modelFilter = line.slice("/model ".length);
458
+ if (!["add ", "rm ", "default "].some((sub) => modelFilter.startsWith(sub))) {
459
+ const entries = getModelMenuEntries(modelFilter, session);
460
+ if (entries.length > 0) {
461
+ menu.visible = true;
462
+ menu.items = entries;
463
+ menu.type = "command";
464
+ menu.selectedIndex = 0;
465
+ }
466
+ else {
467
+ resetMenu(menu);
468
+ }
469
+ }
470
+ else {
471
+ resetMenu(menu);
472
+ }
473
+ }
474
+ else if (line.startsWith("/") && !line.includes(" ")) {
475
+ const filtered = filterEntries(allEntries, line);
476
+ if (filtered.length > 0) {
477
+ menu.visible = true;
478
+ menu.items = filtered;
479
+ menu.type = "command";
480
+ menu.selectedIndex = 0;
481
+ }
482
+ else {
483
+ resetMenu(menu);
484
+ }
485
+ }
486
+ else {
487
+ const atPrefix = extractAtPrefix(line);
488
+ if (atPrefix !== null) {
489
+ const entries = getFileMenuEntries(atPrefix, session.cwd);
490
+ if (entries.length > 0) {
491
+ menu.visible = true;
492
+ menu.items = entries;
493
+ menu.type = "file";
494
+ menu.selectedIndex = 0;
495
+ }
496
+ else {
497
+ resetMenu(menu);
498
+ }
499
+ }
500
+ else {
501
+ resetMenu(menu);
502
+ }
503
+ }
504
+ }
409
505
  rl._ttyWrite = function (s, key) {
506
+ // ── Permission prompt passthrough ──
410
507
  if (pendingPermissionResolve && s) {
411
508
  const resolve = pendingPermissionResolve;
412
509
  pendingPermissionResolve = null;
@@ -414,6 +511,7 @@ export async function runInteractiveMode(options) {
414
511
  resolve(s);
415
512
  return;
416
513
  }
514
+ // ── Streaming: only Esc to abort ──
417
515
  if (isStreaming) {
418
516
  if (key && key.name === "escape") {
419
517
  if (spinner) {
@@ -428,28 +526,55 @@ export async function runInteractiveMode(options) {
428
526
  return originalTtyWrite.call(this, s, key);
429
527
  }
430
528
  const cursorCol = getCursorCol();
529
+ const keyName = key?.name;
530
+ const isReturnKey = keyName === "return" || keyName === "enter";
531
+ // ── Multi-line newline insertion ──
532
+ // 1. Shift+Enter / Alt+Enter (terminals that report modifier flags)
533
+ // 2. Ctrl+J: raw char is always \n (0x0A), distinct from Enter's \r (0x0D)
534
+ // 3. Raw \x1b\r from Kitty shift+enter mapping or legacy Alt+Enter
535
+ const isNewlineInsert = (key && isReturnKey && (key.shift === true || key.meta === true)) ||
536
+ s === "\n" ||
537
+ s === "\x1b\r";
538
+ if (isNewlineInsert) {
539
+ clearBelowArea(below, cursorCol);
540
+ multiLineBuffer.push(rl.line ?? "");
541
+ process.stdout.write("\n");
542
+ rl.line = "";
543
+ rl.cursor = 0;
544
+ rl._prompt = chalk.cyan(" … ");
545
+ process.stdout.write(chalk.cyan(" … "));
546
+ resetMenu(menu);
547
+ renderBelowArea(menu, below, session, PROMPT_WIDTH);
548
+ return;
549
+ }
550
+ // ── Menu visible: handle navigation & selection ──
431
551
  if (menu.visible) {
432
- if (key && key.name === "up") {
433
- menu.selectedIndex = Math.max(0, menu.selectedIndex - 1);
434
- renderMenu(menu, cursorCol);
552
+ if (key && keyName === "up") {
553
+ menu.selectedIndex = menu.selectedIndex <= 0
554
+ ? menu.items.length - 1
555
+ : menu.selectedIndex - 1;
556
+ renderBelowArea(menu, below, session, cursorCol);
435
557
  return;
436
558
  }
437
- if (key && key.name === "down") {
438
- menu.selectedIndex = Math.min(menu.items.length - 1, menu.selectedIndex + 1);
439
- renderMenu(menu, cursorCol);
559
+ if (key && keyName === "down") {
560
+ menu.selectedIndex = menu.selectedIndex >= menu.items.length - 1
561
+ ? 0
562
+ : menu.selectedIndex + 1;
563
+ renderBelowArea(menu, below, session, cursorCol);
440
564
  return;
441
565
  }
442
- if (key && (key.name === "return" || key.name === "tab")) {
566
+ if (key && (isReturnKey || keyName === "tab")) {
443
567
  const selected = menu.items[menu.selectedIndex];
444
568
  const menuType = menu.type;
445
569
  if (selected) {
446
- clearMenu(menu, cursorCol);
570
+ resetMenu(menu);
447
571
  if (menuType === "command") {
448
572
  rl.line = "";
449
573
  rl.cursor = 0;
450
574
  process.stdout.write("\r\x1b[K");
451
575
  process.stdout.write(chalk.cyan(" › "));
452
- if (key.name === "return") {
576
+ if (isReturnKey) {
577
+ clearBelowArea(below, PROMPT_WIDTH);
453
578
  rl.line = selected.value;
454
579
  rl.cursor = selected.value.length;
455
580
  process.stdout.write(selected.value);
@@ -459,6 +584,7 @@ export async function runInteractiveMode(options) {
459
584
  rl.line = selected.value;
460
585
  rl.cursor = selected.value.length;
461
586
  process.stdout.write(selected.value);
587
+ renderBelowArea(menu, below, session, getCursorCol());
462
588
  return;
463
589
  }
464
590
  }
@@ -475,68 +601,87 @@ export async function runInteractiveMode(options) {
475
601
  process.stdout.write(chalk.cyan(" › "));
476
602
  process.stdout.write(newLine);
477
603
  }
604
+ renderBelowArea(menu, below, session, getCursorCol());
478
605
  return;
479
606
  }
480
607
  }
481
608
  }
482
- if (key && key.name === "escape") {
483
- clearMenu(menu, cursorCol);
609
+ if (key && keyName === "escape") {
610
+ resetMenu(menu);
611
+ renderBelowArea(menu, below, session, cursorCol);
484
612
  return;
485
613
  }
486
614
  }
487
- originalTtyWrite.call(this, s, key);
488
- const newLine = rl.line ?? "";
489
- const newCursorCol = getCursorCol();
490
- if (newLine.startsWith("/model ")) {
491
- const modelFilter = newLine.slice("/model ".length);
492
- if (!["add ", "rm ", "default "].some((sub) => modelFilter.startsWith(sub))) {
493
- const entries = getModelMenuEntries(modelFilter, session);
494
- if (entries.length > 0) {
495
- menu.visible = true;
496
- menu.items = entries;
497
- menu.type = "command";
498
- menu.selectedIndex = 0;
499
- renderMenu(menu, newCursorCol);
500
- }
501
- else if (menu.visible) {
502
- clearMenu(menu, newCursorCol);
615
+ // ── Escape: cancel multi-line or ignore ──
616
+ if (key && keyName === "escape") {
617
+ if (multiLineBuffer.length > 0) {
618
+ clearBelowArea(below, cursorCol);
619
+ for (let i = 0; i < multiLineBuffer.length; i++) {
620
+ process.stdout.write("\x1b[1A\x1b[2K");
503
621
  }
622
+ process.stdout.write("\r\x1b[K");
623
+ multiLineBuffer.length = 0;
624
+ rl.line = "";
625
+ rl.cursor = 0;
626
+ rl._prompt = chalk.cyan(" › ");
627
+ process.stdout.write(chalk.cyan(" › "));
628
+ renderBelowArea(menu, below, session, PROMPT_WIDTH);
629
+ showPlaceholder();
630
+ return;
504
631
  }
505
- else if (menu.visible) {
506
- clearMenu(menu, newCursorCol);
507
- }
632
+ return;
508
633
  }
509
- else if (newLine.startsWith("/") && !newLine.includes(" ")) {
510
- const filtered = filterEntries(allEntries, newLine);
511
- if (filtered.length > 0) {
512
- menu.visible = true;
513
- menu.items = filtered;
514
- menu.type = "command";
515
- menu.selectedIndex = 0;
516
- renderMenu(menu, newCursorCol);
634
+ // ── Enter: submit or backslash-newline ──
635
+ if (key && isReturnKey) {
636
+ const currentLine = rl.line ?? "";
637
+ const cursor = rl.cursor ?? 0;
638
+ // Backslash+Enter → newline (pi-mono style, works in ALL terminals)
639
+ if (cursor > 0 && currentLine[cursor - 1] === "\\") {
640
+ clearBelowArea(below, cursorCol);
641
+ const before = currentLine.slice(0, cursor - 1);
642
+ const after = currentLine.slice(cursor);
643
+ multiLineBuffer.push(before + after);
644
+ process.stdout.write("\n");
645
+ rl.line = "";
646
+ rl.cursor = 0;
647
+ rl._prompt = chalk.cyan(" … ");
648
+ process.stdout.write(chalk.cyan(" … "));
649
+ resetMenu(menu);
650
+ renderBelowArea(menu, below, session, PROMPT_WIDTH);
651
+ return;
517
652
  }
518
- else if (menu.visible) {
519
- clearMenu(menu, newCursorCol);
653
+ // Normal submit
654
+ clearBelowArea(below, cursorCol);
655
+ below.active = false;
656
+ if (multiLineBuffer.length > 0) {
657
+ const fullInput = [...multiLineBuffer, currentLine].join("\n");
658
+ multiLineBuffer.length = 0;
659
+ rl.line = fullInput;
660
+ rl.cursor = fullInput.length;
661
+ rl._prompt = chalk.cyan(" › ");
520
662
  }
663
+ originalTtyWrite.call(this, s, key);
664
+ return;
521
665
  }
522
- else {
523
- const atPrefix = extractAtPrefix(newLine);
524
- if (atPrefix !== null) {
525
- const entries = getFileMenuEntries(atPrefix, session.cwd);
526
- if (entries.length > 0) {
527
- menu.visible = true;
528
- menu.items = entries;
529
- menu.type = "file";
530
- menu.selectedIndex = 0;
531
- renderMenu(menu, newCursorCol);
532
- }
533
- else if (menu.visible) {
534
- clearMenu(menu, newCursorCol);
535
- }
536
- }
537
- else if (menu.visible) {
538
- clearMenu(menu, newCursorCol);
539
- }
666
+ // ── Normal key processing ──
667
+ const prevMenuVisible = menu.visible;
668
+ const prevMenuItemCount = menu.items.length;
669
+ const prevLine = rl.line ?? "";
670
+ originalTtyWrite.call(this, s, key);
671
+ const newLine = rl.line ?? "";
672
+ updateMenuForLine(newLine, session);
673
+ // Clear placeholder remnants when first character is typed
674
+ if (prevLine.length === 0 && newLine.length > 0) {
675
+ process.stdout.write("\x1b[K");
676
+ }
677
+ const menuChanged = menu.visible !== prevMenuVisible ||
678
+ (menu.visible && menu.items.length !== prevMenuItemCount);
679
+ if (menuChanged) {
680
+ renderBelowArea(menu, below, session, getCursorCol());
681
+ }
682
+ // Re-show placeholder when input is empty
683
+ if (newLine.length === 0 && multiLineBuffer.length === 0 && !menu.visible) {
684
+ showPlaceholder();
540
685
  }
541
686
  };
542
687
  if (process.stdin.isTTY) {
@@ -544,13 +689,22 @@ export async function runInteractiveMode(options) {
544
689
  }
545
690
  const promptUser = () => {
546
691
  return new Promise((resolve) => {
547
- clearMenu(menu);
692
+ clearBelowArea(below, 0);
693
+ resetMenu(menu);
694
+ multiLineBuffer.length = 0;
695
+ below.active = true;
696
+ below.tip = getRandomTip(session);
697
+ console.log();
548
698
  printBorder();
549
699
  rl.question(chalk.cyan(" › "), (answer) => {
550
- clearMenu(menu);
700
+ clearBelowArea(below, getCursorCol());
701
+ below.active = false;
551
702
  printBorder();
552
703
  resolve(answer);
553
704
  });
705
+ // Render placeholder + underline + status below input
706
+ showPlaceholder();
707
+ renderBelowArea(menu, below, session, PROMPT_WIDTH);
554
708
  });
555
709
  };
556
710
  process.on("SIGINT", () => {
@@ -563,6 +717,20 @@ export async function runInteractiveMode(options) {
563
717
  process.stdout.write(chalk.yellow("\n⚡ 已中止 (Ctrl+C)\n"));
564
718
  printSessionTip(session);
565
719
  }
720
+ else if (multiLineBuffer.length > 0) {
721
+ clearBelowArea(below, getCursorCol());
722
+ for (let i = 0; i < multiLineBuffer.length; i++) {
723
+ process.stdout.write("\x1b[1A\x1b[2K");
724
+ }
725
+ process.stdout.write("\r\x1b[K");
726
+ multiLineBuffer.length = 0;
727
+ rl.line = "";
728
+ rl.cursor = 0;
729
+ rl._prompt = chalk.cyan(" › ");
730
+ process.stdout.write(chalk.cyan(" › "));
731
+ showPlaceholder();
732
+ renderBelowArea(menu, below, session, PROMPT_WIDTH);
733
+ }
566
734
  else {
567
735
  console.log(chalk.dim("\n(输入 /exit 或 Ctrl+D 退出)"));
568
736
  }
@@ -585,9 +753,10 @@ export async function runInteractiveMode(options) {
585
753
  continue;
586
754
  }
587
755
  try {
588
- // Expand @path references into file contents
589
756
  const { expandedText, fileContent } = extractAtReferences(trimmed, session.cwd);
590
- const finalInput = fileContent ? fileContent + "\n" + expandedText : expandedText;
757
+ const finalInput = fileContent
758
+ ? `${expandedText}\n\n<referenced_files>\n${fileContent}</referenced_files>`
759
+ : expandedText;
591
760
  await session.prompt(finalInput);
592
761
  }
593
762
  catch (err) {
@@ -612,7 +781,6 @@ async function handleCommand(input, session) {
612
781
  break;
613
782
  case "/model": {
614
783
  const sub = args[0];
615
- // /model — show current + configured models
616
784
  if (!sub) {
617
785
  const cfg = await loadConfig();
618
786
  const configuredModels = cfg.models ?? {};
@@ -639,7 +807,6 @@ async function handleCommand(input, session) {
639
807
  console.log(chalk.dim(` /model rm <id> 删除模型\n`));
640
808
  break;
641
809
  }
642
- // /model default <id> — set persistent default
643
810
  if (sub === "default") {
644
811
  const modelId = args[1];
645
812
  if (!modelId) {
@@ -653,7 +820,6 @@ async function handleCommand(input, session) {
653
820
  console.log(chalk.green(`\n 默认模型已设为: ${modelId} (已同步切换)\n`));
654
821
  break;
655
822
  }
656
- // /model add <id> [baseUrl] [apiKey]
657
823
  if (sub === "add") {
658
824
  const modelId = args[1];
659
825
  if (!modelId) {
@@ -675,7 +841,6 @@ async function handleCommand(input, session) {
675
841
  console.log(chalk.dim(` 切换使用: /model ${modelId}\n`));
676
842
  break;
677
843
  }
678
- // /model rm <id>
679
844
  if (sub === "rm") {
680
845
  const modelId = args[1];
681
846
  if (!modelId) {
@@ -692,7 +857,6 @@ async function handleCommand(input, session) {
692
857
  console.log(chalk.green(`\n 已删除: ${modelId}\n`));
693
858
  break;
694
859
  }
695
- // /model <id> — switch model
696
860
  try {
697
861
  session.switchModel(sub);
698
862
  console.log(chalk.green(`\n 已切换到: ${sub}\n`));
@@ -913,7 +1077,6 @@ async function handleCommand(input, session) {
913
1077
  }
914
1078
  break;
915
1079
  }
916
- // Try extension-registered commands
917
1080
  const extCmd = cmd.slice(1);
918
1081
  const extCommands = session.getExtensionCommands();
919
1082
  if (extCommands.has(extCmd)) {
@@ -1014,7 +1177,7 @@ function countVisualLines(text, termWidth) {
1014
1177
  }
1015
1178
  function printBanner(session) {
1016
1179
  const modelId = session.model.name || session.model.id;
1017
- const dir = session.cwd.replace(process.env.HOME || "", "~");
1180
+ const dir = shortenDir(session.cwd);
1018
1181
  const sm = session.sessionManager;
1019
1182
  console.log();
1020
1183
  console.log(chalk.bold.cyan(">_") + " " + chalk.bold("欢迎使用千岛湖 Til-Work") + " " + chalk.dim(`v${VERSION}`));
@@ -1036,21 +1199,7 @@ function printBanner(session) {
1036
1199
  const totalTools = extInfo.reduce((sum, e) => sum + e.toolCount, 0);
1037
1200
  console.log(` ${chalk.dim("extensions")} ${chalk.white(String(extInfo.length))} 个已加载 (${totalTools} 工具)`);
1038
1201
  }
1039
- const tips = [
1040
- "输入 / 查看所有可用命令,方向键选择",
1041
- "使用 /model 切换模型",
1042
- "按 Ctrl+C 或 Esc 中止正在执行的请求",
1043
- "使用 /memory 查看记忆内容",
1044
- "使用 /sessions 查看历史会话",
1045
- "输入 @ 引用文件内容(支持搜索和方向键选择)",
1046
- ];
1047
- if (session.skills.length > 0) {
1048
- tips.push("使用 /skills 查看已加载的技能");
1049
- }
1050
- if (extInfo.length > 0) {
1051
- tips.push("使用 /extensions 查看已加载的扩展");
1052
- }
1053
- const tip = tips[Math.floor(Math.random() * tips.length)];
1202
+ const tip = getRandomTip(session);
1054
1203
  console.log(`\n ${chalk.bold("Tip:")} ${chalk.italic(tip)}\n`);
1055
1204
  }
1056
1205
  //# sourceMappingURL=interactive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/modes/interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/modes/interactive.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,8 @@ export interface ProcessedFiles {
9
9
  export declare function processFileArguments(fileArgs: string[], cwd: string): ProcessedFiles;
10
10
  /**
11
11
  * Parse a user input string and extract @path references.
12
- * Returns { expandedText, fileArgs } where expandedText has @refs resolved
13
- * and fileArgs contains the extracted paths.
12
+ * Returns { expandedText, fileContent } where expandedText preserves the
13
+ * original @refs for LLM context and fileContent contains the loaded file blocks.
14
14
  */
15
15
  export declare function extractAtReferences(input: string, cwd: string): {
16
16
  expandedText: string;
@@ -1 +1 @@
1
- {"version":3,"file":"file-processor.d.ts","sourceRoot":"","sources":["../../src/utils/file-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAgBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAwCpF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAwB7G"}
1
+ {"version":3,"file":"file-processor.d.ts","sourceRoot":"","sources":["../../src/utils/file-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAgBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAwCpF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAsB7G"}
@@ -57,29 +57,26 @@ export function processFileArguments(fileArgs, cwd) {
57
57
  }
58
58
  /**
59
59
  * Parse a user input string and extract @path references.
60
- * Returns { expandedText, fileArgs } where expandedText has @refs resolved
61
- * and fileArgs contains the extracted paths.
60
+ * Returns { expandedText, fileContent } where expandedText preserves the
61
+ * original @refs for LLM context and fileContent contains the loaded file blocks.
62
62
  */
63
63
  export function extractAtReferences(input, cwd) {
64
- // Match @path patterns: @word or @"quoted path"
65
- // Note: on Windows paths may contain backslashes, but we require
66
- // quoted form for paths with spaces: @"C:\path with spaces\file.txt"
67
64
  const atPattern = /(?:^|(?<=\s))@("(?:[^"\\]|\\.)*"|[^\s]+)/g;
68
65
  const fileArgs = [];
69
- const expandedText = input.replace(atPattern, (match, pathPart) => {
70
- let filePath = pathPart;
66
+ let match;
67
+ while ((match = atPattern.exec(input)) !== null) {
68
+ let filePath = match[1];
71
69
  if (filePath.startsWith('"') && filePath.endsWith('"')) {
72
70
  filePath = filePath.slice(1, -1).replace(/\\"/g, '"');
73
71
  }
74
72
  fileArgs.push(filePath);
75
- return "";
76
- }).replace(/\s{2,}/g, " ").trim();
73
+ }
77
74
  if (fileArgs.length === 0) {
78
75
  return { expandedText: input, fileContent: "" };
79
76
  }
80
77
  const processed = processFileArguments(fileArgs, cwd);
81
78
  return {
82
- expandedText: expandedText || "请查看以下文件",
79
+ expandedText: input,
83
80
  fileContent: processed.text,
84
81
  };
85
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file-processor.js","sourceRoot":"","sources":["../../src/utils/file-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-processor.js","sourceRoot":"","sources":["../../src/utils/file-processor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@antaif3ng/til-work",
3
- "version": "0.2.0",
4
- "description": "TIL Agent — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)",
3
+ "version": "0.3.0",
4
+ "description": "TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "til": "dist/cli.js"