@patze/code-cli 0.17.0 → 0.18.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.
Files changed (41) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/VERSION +1 -1
  3. package/dist/cli/interactive/agent-turn-classify.d.ts +7 -3
  4. package/dist/cli/interactive/agent-turn-classify.d.ts.map +1 -1
  5. package/dist/cli/interactive/agent-turn-classify.js +37 -14
  6. package/dist/cli/interactive/agent-turn-classify.js.map +1 -1
  7. package/dist/cli/interactive/agent-turn-context.d.ts.map +1 -1
  8. package/dist/cli/interactive/agent-turn-context.js +10 -2
  9. package/dist/cli/interactive/agent-turn-context.js.map +1 -1
  10. package/dist/cli/interactive/agent-turn.d.ts.map +1 -1
  11. package/dist/cli/interactive/agent-turn.js +6 -2
  12. package/dist/cli/interactive/agent-turn.js.map +1 -1
  13. package/dist/cli/interactive/ensure-execute-auth.d.ts +10 -0
  14. package/dist/cli/interactive/ensure-execute-auth.d.ts.map +1 -0
  15. package/dist/cli/interactive/ensure-execute-auth.js +28 -0
  16. package/dist/cli/interactive/ensure-execute-auth.js.map +1 -0
  17. package/dist/cli/interactive/header.d.ts.map +1 -1
  18. package/dist/cli/interactive/header.js +1 -2
  19. package/dist/cli/interactive/header.js.map +1 -1
  20. package/dist/cli/interactive/line-editor.d.ts +22 -1
  21. package/dist/cli/interactive/line-editor.d.ts.map +1 -1
  22. package/dist/cli/interactive/line-editor.js +91 -22
  23. package/dist/cli/interactive/line-editor.js.map +1 -1
  24. package/dist/cli/interactive/session-controller.d.ts +1 -0
  25. package/dist/cli/interactive/session-controller.d.ts.map +1 -1
  26. package/dist/cli/interactive/session-controller.js +49 -15
  27. package/dist/cli/interactive/session-controller.js.map +1 -1
  28. package/dist/cli/interactive/shell.d.ts.map +1 -1
  29. package/dist/cli/interactive/shell.js +2 -3
  30. package/dist/cli/interactive/shell.js.map +1 -1
  31. package/dist/cli/interactive/transcript-line-parse.d.ts +8 -0
  32. package/dist/cli/interactive/transcript-line-parse.d.ts.map +1 -0
  33. package/dist/cli/interactive/transcript-line-parse.js +39 -0
  34. package/dist/cli/interactive/transcript-line-parse.js.map +1 -0
  35. package/dist/cli/interactive/tty-live-feed.d.ts +12 -0
  36. package/dist/cli/interactive/tty-live-feed.d.ts.map +1 -0
  37. package/dist/cli/interactive/tty-live-feed.js +64 -0
  38. package/dist/cli/interactive/tty-live-feed.js.map +1 -0
  39. package/docs/known-limitations.md +1 -1
  40. package/opentui/src/App.tsx +5 -5
  41. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,38 @@ All notable changes to `@patze/code-cli` are documented here.
4
4
 
5
5
  Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
+ ## [0.18.0] - 2026-05-29
8
+
9
+ ### Changed (cookbook parity)
10
+
11
+ - **Auth-ready routing** — logged-in prompts go to the real server agent (preview + SSE), like Cursor cookbook; only pure greetings/meta stay local.
12
+ - **TTY live feed** — Node interactive shell upserts `tool`/`run` rows and streams `agent` text deltas in-place during execute.
13
+ - **Session bootstrap** — `prepareInteractiveController()` resolves `userId` on shell/OpenTUI start (shared with `/login` session resolve).
14
+
15
+ ## [0.17.3] - 2026-05-29
16
+
17
+ ### Fixed
18
+
19
+ - **Thai task routing** — prompts like “สร้างไฟล์ html … ได้ไหม” now hit the real server agent path (preview + SSE), not the local conversation mock.
20
+ - **Contextual reply false positive** — file-creation requests that mention “folder” no longer answer with cwd-only text.
21
+ - **Auto user id** — on shell start and before agent turns, resolve `userId` from `/internal/patze-code/session` when token is bound (same as `/login`).
22
+
23
+ ## [0.17.2] - 2026-05-29
24
+
25
+ ### Fixed
26
+
27
+ - **Composer gap growth** — removed shrink cleanup that appended blank cleared lines after menu/multiline collapse.
28
+ - **Ctrl+C exit** — clears the composer frame before leaving the shell (no orphan box).
29
+ - **Header spacing** — removed extra blank line under the beta notice so Tips sit closer to the composer.
30
+
31
+ ## [0.17.1] - 2026-05-29
32
+
33
+ ### Fixed
34
+
35
+ - **Composer double-border (Node shell)** — placeholder ANSI no longer breaks row padding; right `│` aligns with top/bottom border again.
36
+ - **Composer redraw** — rewind uses last cursor frame row; shrink clears orphan lines; first paint skips erase-below.
37
+ - **Header gap** — removed extra blank line before the composer.
38
+
7
39
  ## [0.17.0] - 2026-05-29
8
40
 
9
41
  ### Added
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.17.0
1
+ 0.18.0
@@ -1,8 +1,12 @@
1
1
  export type TurnKind = "conversation" | "task";
2
+ export type ClassifyTurnOptions = {
3
+ /** When true (logged-in), route prompts to the real agent like Cursor cookbook. */
4
+ authReady?: boolean;
5
+ };
2
6
  /**
3
- * Decide whether free-text input is a casual/meta message or a coding task.
4
- * Conversational turns skip server preview and return a short reply instead.
7
+ * Decide whether free-text input is meta/chat or a coding task.
8
+ * When authReady (cookbook posture), only pure meta/greeting stays local.
5
9
  */
6
- export declare function classifyTurnInput(text: string): TurnKind;
10
+ export declare function classifyTurnInput(text: string, options?: ClassifyTurnOptions): TurnKind;
7
11
  export declare function inputLooksThai(text: string): boolean;
8
12
  //# sourceMappingURL=agent-turn-classify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn-classify.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-classify.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAA;AAE9C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAqCxD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD"}
1
+ {"version":3,"file":"agent-turn-classify.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-classify.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAA;AAE9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAuCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,QAAQ,CAmC3F;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -1,27 +1,50 @@
1
+ const EN_CODE_INTENT = /\b(file|files|code|function|class|module|bug|error|test|tests|api|refactor|implement|fix|add|create|build|write|remove|migrate|debug|patch|diff|lint|deploy|readme|config|html|demo|page|app|script|component)\b/i;
2
+ const EN_TASK_LEAD = /^(fix|add|refactor|implement|update|create|build|write|remove|migrate|test|debug|improve|review|rename|extract|optimize|generate|make)\b/i;
3
+ const THAI_TASK_VERB = /(สร้าง|แก้ไข|แก้|เขียน|ลบ|อ่าน|เพิ่ม|ทำ|แปล|รัน|ทดสอบ|ดีบั๊ก|รีแฟคเตอร์|ย้าย|implement|generate)/i;
4
+ const THAI_CODE_NOUN = /(ไฟล์|โค้ด|ฟังก์ชัน|คลาส|โมดูล|แอป|หน้าเว็บ|html|css|javascript|typescript|api|เทส|บั๊ก|สคริปต์|demo)/i;
5
+ const PURE_META = /^(hi|hello|hey|thanks|thank you|ok|okay|yes|no|help|\/?help|สวัสดี|ขอบคุณ)\b/i;
6
+ const SEE_HEAR_META = /^(do you see|can you see|hear me|เห็นข้อความ|ได้ยิน|เห็น.*(ข้อความ|message))/i;
7
+ function hasCodeIntent(text) {
8
+ return EN_CODE_INTENT.test(text) || THAI_CODE_NOUN.test(text) || /[{}();=`]/.test(text);
9
+ }
10
+ function hasTaskLead(text) {
11
+ return (EN_TASK_LEAD.test(text) ||
12
+ /^(สร้าง|แก้|เขียน|เพิ่ม|ลบ|ทำ|รัน|ทดสอบ)/i.test(text) ||
13
+ THAI_TASK_VERB.test(text));
14
+ }
15
+ function isPureMetaChat(text) {
16
+ if (PURE_META.test(text) || SEE_HEAR_META.test(text)) {
17
+ return true;
18
+ }
19
+ return /^(สวัสดี|ขอบคุณ)/.test(text.trim());
20
+ }
1
21
  /**
2
- * Decide whether free-text input is a casual/meta message or a coding task.
3
- * Conversational turns skip server preview and return a short reply instead.
22
+ * Decide whether free-text input is meta/chat or a coding task.
23
+ * When authReady (cookbook posture), only pure meta/greeting stays local.
4
24
  */
5
- export function classifyTurnInput(text) {
25
+ export function classifyTurnInput(text, options = {}) {
6
26
  const trimmed = text.trim();
7
27
  if (!trimmed) {
8
28
  return "conversation";
9
29
  }
10
- const hasCodeIntent = /\b(file|files|code|function|class|module|bug|error|test|tests|api|refactor|implement|fix|add|create|build|write|remove|migrate|debug|patch|diff|lint|deploy|readme|config)\b/i.test(trimmed) || /[{}();=`]/.test(trimmed);
11
- const taskLead = /^(fix|add|refactor|implement|update|create|build|write|remove|migrate|test|debug|improve|review|rename|extract|optimize)\b/i.test(trimmed);
12
- if (taskLead || (hasCodeIntent && trimmed.length > 24)) {
30
+ if (options.authReady) {
31
+ return isPureMetaChat(trimmed) ? "conversation" : "task";
32
+ }
33
+ const codeIntent = hasCodeIntent(trimmed);
34
+ const taskLead = hasTaskLead(trimmed);
35
+ if (taskLead || (codeIntent && trimmed.length > 12)) {
13
36
  return "task";
14
37
  }
15
- const conversational = /^(hi|hello|hey|thanks|thank you|ok|okay|yes|no|help)\b/i.test(trimmed) ||
16
- /^(do you|can you|are you|what is|what's|how do)/i.test(trimmed) ||
17
- /[\??]/.test(trimmed) ||
18
- /(ไหม|มั้ย|หรือเปล่า|ได้ไหม)/.test(trimmed) ||
19
- /(เห็น|ได้ยิน|ข้อความ|สวัสดี|ช่วย.*ไหม|พิมพ์)/.test(trimmed) ||
20
- /(do you see|can you see|hear me)/i.test(trimmed);
21
- if (conversational && !hasCodeIntent) {
38
+ if (isPureMetaChat(trimmed) && !codeIntent) {
39
+ return "conversation";
40
+ }
41
+ const genericQuestion = (/[\??]/.test(trimmed) || /(ไหม|มั้ย|หรือเปล่า|ได้ไหม)/.test(trimmed)) &&
42
+ !codeIntent &&
43
+ !taskLead;
44
+ if (genericQuestion && trimmed.length <= 64) {
22
45
  return "conversation";
23
46
  }
24
- if (trimmed.length <= 48 && !hasCodeIntent && !taskLead) {
47
+ if (trimmed.length <= 32 && !codeIntent && !taskLead) {
25
48
  return "conversation";
26
49
  }
27
50
  return "task";
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn-classify.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-classify.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,MAAM,aAAa,GACjB,+KAA+K,CAAC,IAAI,CAClL,OAAO,CACR,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEhC,MAAM,QAAQ,GACZ,6HAA6H,CAAC,IAAI,CAChI,OAAO,CACR,CAAA;IAEH,IAAI,QAAQ,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;QACvD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,cAAc,GAClB,yDAAyD,CAAC,IAAI,CAAC,OAAO,CAAC;QACvE,kDAAkD,CAAC,IAAI,CAAC,OAAO,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACrB,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3C,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5D,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEnD,IAAI,cAAc,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"agent-turn-classify.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-classify.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAClB,mNAAmN,CAAA;AAErN,MAAM,YAAY,GAChB,2IAA2I,CAAA;AAE7I,MAAM,cAAc,GAClB,mGAAmG,CAAA;AAErG,MAAM,cAAc,GAClB,wGAAwG,CAAA;AAE1G,MAAM,SAAS,GACb,+EAA+E,CAAA;AAEjF,MAAM,aAAa,GACjB,+EAA+E,CAAA;AAEjF,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzF,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,CACL,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC;QACtD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,UAA+B,EAAE;IAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAA;IAC1D,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAErC,IAAI,QAAQ,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;QACpD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3C,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,MAAM,eAAe,GACnB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC,UAAU;QACX,CAAC,QAAQ,CAAA;IAEX,IAAI,eAAe,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC5C,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn-context.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAGtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,sBAAsB,CAAA;IAC/B,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAyBD,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CA0C3E"}
1
+ {"version":3,"file":"agent-turn-context.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAGtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,sBAAsB,CAAA;IAC/B,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAuCD,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CA0C3E"}
@@ -2,9 +2,17 @@ import { inputLooksThai } from "./agent-turn-classify.js";
2
2
  function thai(text) {
3
3
  return inputLooksThai(text);
4
4
  }
5
+ function mentionsFolderIncidentally(text) {
6
+ return (/(สร้าง|create|write|build|make|generate|เพิ่ม|เขียน|ทำ).*(folder|โฟลเดอ|directory)/i.test(text) ||
7
+ /(ใน|in)\s*(folder|โฟลเดอ|directory)\s*(นี้|this)/i.test(text));
8
+ }
5
9
  function asksWorkspaceLocation(text) {
6
- return (/(folder|directory|cwd|pwd|working dir|current dir|where am i|which folder|what folder|current workspace)/i.test(text) ||
7
- /(โฟลเดอ|ไดเรก|อยู่ใน|ที่ไหน|working directory)/i.test(text));
10
+ if (mentionsFolderIncidentally(text)) {
11
+ return false;
12
+ }
13
+ return (/(where am i|which folder|what folder|current (dir|directory|workspace|folder)|pwd\b|cwd\b)/i.test(text) ||
14
+ /((เรา|ตอนนี้|we).*(อยู่|where).*(folder|โฟลเดอ|ที่ไหน|directory))/i.test(text) ||
15
+ /(folder|โฟลเดอ|directory)\s*(อะไร|ไหน|what|which)/i.test(text));
8
16
  }
9
17
  function asksWorkspaceContents(text) {
10
18
  const hasFileCue = /(ไฟล์|files?|empty|blank|ว่าง)/i.test(text);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn-context.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAUzD,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,CACL,2GAA2G,CAAC,IAAI,CAC9G,IAAI,CACL;QACD,iDAAiD,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7D,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,UAAU,GAAG,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/D,MAAM,WAAW,GAAG,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrF,OAAO,UAAU,IAAI,WAAW,CAAA;AAClC,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IAEzB,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM;YACpB,CAAC,CAAC,mBAAmB,OAAO,CAAC,SAAS,WAAW,OAAO,CAAC,cAAc,WAAW;YAClF,CAAC,CAAC,sBAAsB,OAAO,CAAC,SAAS,cAAc,OAAO,CAAC,cAAc,eAAe,CAAA;QAC9F,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,IAAI,OAAO,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO,MAAM;gBACX,CAAC,CAAC,GAAG,OAAO,uDAAuD;gBACnE,CAAC,CAAC,GAAG,OAAO,6DAA6D,CAAA;QAC7E,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzD,OAAO,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAA;QACnE,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC1B,OAAO,MAAM;gBACX,CAAC,CAAC,iBAAiB,aAAa,kCAAkC;gBAClE,CAAC,CAAC,cAAc,aAAa,4BAA4B,CAAA;QAC7D,CAAC;QACD,OAAO,MAAM;YACX,CAAC,CAAC,QAAQ,GAAG,qBAAqB,aAAa,EAAE;YACjD,CAAC,CAAC,QAAQ,GAAG,qBAAqB,aAAa,EAAE,CAAA;IACrD,CAAC;IAED,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM;YACX,CAAC,CAAC,SAAS;gBACT,CAAC,CAAC,6EAA6E;gBAC/E,CAAC,CAAC,oEAAoE;YACxE,CAAC,CAAC,SAAS;gBACT,CAAC,CAAC,mEAAmE;gBACrE,CAAC,CAAC,wEAAwE,CAAA;IAChF,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"agent-turn-context.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AActD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C,CAAA;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA+L1B"}
1
+ {"version":3,"file":"agent-turn.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn.ts"],"names":[],"mappings":"AAKA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AActD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IAClD,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C,CAAA;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAmM1B"}
@@ -1,5 +1,6 @@
1
1
  import { isAuthConfigured } from "../../backend/auth.js";
2
2
  import { loadConfig } from "../../config/config.js";
3
+ import { ensureExecuteAuthConfig } from "./ensure-execute-auth.js";
3
4
  import { buildGoalDryRunPlan } from "../commands/goal.js";
4
5
  import { toInspectSummary } from "../commands/inspect-format.js";
5
6
  import { runPlanPreview } from "../commands/plan.js";
@@ -23,14 +24,14 @@ export async function runAgentTurn(session, objective, options = {}) {
23
24
  exitCode: 2,
24
25
  };
25
26
  }
26
- const config = loadConfig(session.cwd);
27
+ let config = loadConfig(session.cwd);
27
28
  const permission = getPermissionModeDef(session.getPermissionMode());
28
29
  const authReady = isAuthConfigured(config);
29
30
  const modelHint = resolveEffectiveModel({
30
31
  sessionOverride: session.getModelOverride(),
31
32
  configModel: config.model,
32
33
  });
33
- if (classifyTurnInput(trimmed) === "conversation") {
34
+ if (classifyTurnInput(trimmed, { authReady }) === "conversation") {
34
35
  const inspectResult = inspectWorkspace(session.cwd, config.defaultAllow, config.defaultDeny);
35
36
  const workspaceRoot = guessWorkspaceRoot(session.cwd);
36
37
  const contextual = buildContextualReply({
@@ -50,6 +51,9 @@ export async function runAgentTurn(session, objective, options = {}) {
50
51
  exitCode: 0,
51
52
  };
52
53
  }
54
+ if (authReady) {
55
+ config = await ensureExecuteAuthConfig(session.cwd, { fetchImpl: options.fetchImpl });
56
+ }
53
57
  const conversationContext = buildConversationContext(session.getActiveTranscript());
54
58
  session.setCurrentGoal(trimmed);
55
59
  session.clearReviewAndApprovalState();
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-turn.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { FetchLike } from "../../backend/preview-client.js";
2
+ import { type ResolvedConfig } from "../../config/config.js";
3
+ /**
4
+ * When api+token exist but userId is missing, resolve from server key binding
5
+ * (same as /login without explicit user id) and persist to global config.
6
+ */
7
+ export declare function ensureExecuteAuthConfig(cwd: string, options?: {
8
+ fetchImpl?: FetchLike;
9
+ }): Promise<ResolvedConfig>;
10
+ //# sourceMappingURL=ensure-execute-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-execute-auth.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/ensure-execute-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGxE;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,SAAS,CAAA;CAAO,GACtC,OAAO,CAAC,cAAc,CAAC,CAqBzB"}
@@ -0,0 +1,28 @@
1
+ import { resolvePatzeCodeSessionUser } from "../../backend/session-client.js";
2
+ import { loadConfig } from "../../config/config.js";
3
+ import { saveCredentials } from "../commands/login.js";
4
+ /**
5
+ * When api+token exist but userId is missing, resolve from server key binding
6
+ * (same as /login without explicit user id) and persist to global config.
7
+ */
8
+ export async function ensureExecuteAuthConfig(cwd, options = {}) {
9
+ let config = loadConfig(cwd);
10
+ if (config.userId || !config.api || !config.token) {
11
+ return config;
12
+ }
13
+ const resolved = await resolvePatzeCodeSessionUser({
14
+ config,
15
+ fetchImpl: options.fetchImpl,
16
+ });
17
+ if (!resolved.ok) {
18
+ return config;
19
+ }
20
+ saveCredentials({
21
+ api: config.api,
22
+ token: config.token,
23
+ userId: resolved.userId,
24
+ });
25
+ config = loadConfig(cwd);
26
+ return config;
27
+ }
28
+ //# sourceMappingURL=ensure-execute-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-execute-auth.js","sourceRoot":"","sources":["../../../src/cli/interactive/ensure-execute-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAE7E,OAAO,EAAE,UAAU,EAAuB,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,GAAW,EACX,UAAqC,EAAE;IAEvC,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC;QACjD,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAA;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,eAAe,CAAC;QACd,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC,CAAA;IACF,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IACxB,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAQlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAQvD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAUD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,cAAc,EAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,aAAa,GAAE,aAAuB,EACtC,OAAO,GAAE,aAAkB,GAC1B,MAAM,EAAE,CAgDV;AAUD,eAAO,MAAM,kBAAkB,YAAO,CAAA"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAQlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAQvD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAUD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,cAAc,EAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,aAAa,GAAE,aAAuB,EACtC,OAAO,GAAE,aAAkB,GAC1B,MAAM,EAAE,CA+CV;AAUD,eAAO,MAAM,kBAAkB,YAAO,CAAA"}
@@ -46,7 +46,6 @@ export function renderInteractiveHeader(cwd, permissionMode, modelOverride, exec
46
46
  });
47
47
  const lines = [...card];
48
48
  lines.push(color ? `${DIM}${STAGE_NOTICE}${RESET}` : STAGE_NOTICE);
49
- lines.push("");
50
49
  if (!authReady) {
51
50
  const warn = "! auth incomplete — run `patze login` or set PATZE_CODE_* env";
52
51
  lines.push(color ? `${YELLOW}${warn}${RESET}` : warn);
@@ -62,7 +61,7 @@ export function renderInteractiveHeader(cwd, permissionMode, modelOverride, exec
62
61
  const STAGE_NOTICE = "Beta · Dev demo — for internal testing only";
63
62
  const HEADER_TIPS = [
64
63
  "One-shot: patze \"<task>\" · pipe stdin · /model to switch",
65
- "Chat gets a short reply · coding tasks use preview-first",
64
+ "Cookbook feed: run · tool · agent stream (SSE) when logged in",
66
65
  "/login <api> <token> · /status --check to verify",
67
66
  ];
68
67
  export const INTERACTIVE_PROMPT = "› ";
@@ -1 +1 @@
1
- {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/cli/interactive/header.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/cli/interactive/header.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,GAAG,UAAU,CAAA;AACzB,MAAM,GAAG,GAAG,SAAS,CAAA;AACrB,MAAM,KAAK,GAAG,SAAS,CAAA;AAOvB,SAAS,WAAW;IAClB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;AAC/D,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAChF,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAW,EACX,cAA+B,EAC/B,aAA6B,EAC7B,gBAA+B,OAAO,EACtC,UAAyB,EAAE;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,EAAE,CAAA;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,EAAE,CAAA;IAE5C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,cAAc,IAAI,WAAW,CAAA;IAC1C,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;IACnD,MAAM,KAAK,GAAG,qBAAqB,CAAC;QAClC,eAAe,EAAE,aAAa;QAC9B,WAAW,EAAE,MAAM,CAAC,KAAK;KAC1B,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,KAAK,EAAE,iBAAiB,WAAW,EAAE;QACrC,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;YACxC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;YAChC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;YAC1C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE;YAC5D,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE;YAC1C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE;SACjE;QACD,KAAK;QACL,KAAK;QACL,aAAa,EAAE,EAAE;KAClB,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAElE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,+DAA+D,CAAA;QAC5E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACrD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACjD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,YAAY,GAAG,6CAA6C,CAAA;AAElE,MAAM,WAAW,GAAsB;IACrC,4DAA4D;IAC5D,+DAA+D;IAC/D,kDAAkD;CACnD,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA"}
@@ -32,6 +32,8 @@ export declare class SlashLineEditor {
32
32
  private stashedBuffer;
33
33
  /** Total lines in the last drawn composer frame (box + slash menu). */
34
34
  private renderedFrameRows;
35
+ /** Cursor row within the last drawn frame (used for accurate rewind). */
36
+ private lastCursorFrameRow;
35
37
  constructor(options: LineEditorOptions);
36
38
  readLine(): Promise<SubmitResult>;
37
39
  private handleKey;
@@ -47,5 +49,24 @@ export declare class SlashLineEditor {
47
49
  private render;
48
50
  private commitLine;
49
51
  }
50
- export { isComposerNewlineKey, isComposerSubmitKey };
52
+ declare function formatComposerRow(input: {
53
+ prefix: string;
54
+ part: string;
55
+ innerWidth: number;
56
+ showPlaceholder: boolean;
57
+ placeholder: string;
58
+ dim: string;
59
+ reset: string;
60
+ }): string;
61
+ declare function padVisible(text: string, width: number): string;
62
+ declare function stripAnsi(text: string): string;
63
+ /** Visible composer frame lines (for tests / layout checks). */
64
+ declare function buildComposerFrameLines(input: {
65
+ width: number;
66
+ prompt: string;
67
+ buffer: string;
68
+ color?: boolean;
69
+ menuLines?: string[];
70
+ }): string[];
71
+ export { buildComposerFrameLines, formatComposerRow, isComposerNewlineKey, isComposerSubmitKey, padVisible, stripAnsi };
51
72
  //# sourceMappingURL=line-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"line-editor.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/line-editor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAgB3B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAA;AAU5E;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,uEAAuE;IACvE,OAAO,CAAC,iBAAiB,CAAI;gBAEjB,OAAO,EAAE,iBAAiB;IAOhC,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAkDvC,OAAO,CAAC,SAAS;IAmHjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,MAAM;IAoEd,OAAO,CAAC,UAAU;CAWnB;AAoBD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"line-editor.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/line-editor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAgB3B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAA;AAU5E;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,uEAAuE;IACvE,OAAO,CAAC,iBAAiB,CAAI;IAC7B,yEAAyE;IACzE,OAAO,CAAC,kBAAkB,CAAI;gBAElB,OAAO,EAAE,iBAAiB;IAOhC,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAmDvC,OAAO,CAAC,SAAS;IAmHjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,MAAM;IAuEd,OAAO,CAAC,UAAU;CAUnB;AAeD,iBAAS,iBAAiB,CAAC,KAAK,EAAE;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,MAAM,CAaT;AAED,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvD;AAqBD,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED,gEAAgE;AAChE,iBAAS,uBAAuB,CAAC,KAAK,EAAE;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB,GAAG,MAAM,EAAE,CAgCX;AAED,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA"}
@@ -28,6 +28,8 @@ export class SlashLineEditor {
28
28
  stashedBuffer = "";
29
29
  /** Total lines in the last drawn composer frame (box + slash menu). */
30
30
  renderedFrameRows = 0;
31
+ /** Cursor row within the last drawn frame (used for accurate rewind). */
32
+ lastCursorFrameRow = 0;
31
33
  constructor(options) {
32
34
  this.input = options.input ?? process.stdin;
33
35
  this.output = options.output ?? process.stdout;
@@ -42,6 +44,7 @@ export class SlashLineEditor {
42
44
  this.historyIndex = -1;
43
45
  this.stashedBuffer = "";
44
46
  this.renderedFrameRows = 0;
47
+ this.lastCursorFrameRow = 0;
45
48
  emitKeypressEvents(this.input);
46
49
  const wasRaw = this.input.isRaw ?? false;
47
50
  if (this.input.isTTY) {
@@ -69,7 +72,7 @@ export class SlashLineEditor {
69
72
  return;
70
73
  }
71
74
  if (action === "eof") {
72
- this.output.write("\n");
75
+ this.commitLine();
73
76
  finish({ type: "eof" });
74
77
  return;
75
78
  }
@@ -271,20 +274,19 @@ export class SlashLineEditor {
271
274
  const { line: cursorLine, col: cursorCol } = this.cursorLineCol();
272
275
  const inputRows = parts.map((part, index) => {
273
276
  const prefix = index === 0 ? this.prompt : " ".repeat(promptWidth);
274
- let text = prefix + part;
275
- if (text.length > innerWidth) {
276
- text = text.slice(0, innerWidth);
277
- }
278
- else if (this.color &&
277
+ const showPlaceholder = this.color &&
279
278
  this.buffer.length === 0 &&
280
279
  menuLines.length === 0 &&
281
- index === 0) {
282
- text = `${text.trimEnd()}${DIM}${PLACEHOLDER}${RESET}`;
283
- }
284
- else {
285
- text = text.padEnd(innerWidth);
286
- }
287
- return text;
280
+ index === 0;
281
+ return formatComposerRow({
282
+ prefix,
283
+ part,
284
+ innerWidth,
285
+ showPlaceholder,
286
+ placeholder: PLACEHOLDER,
287
+ dim: DIM,
288
+ reset: RESET,
289
+ });
288
290
  });
289
291
  const borderColor = this.color ? BORDER_ACTIVE : BORDER;
290
292
  const borderReset = this.color ? RESET : "";
@@ -292,12 +294,15 @@ export class SlashLineEditor {
292
294
  const mids = inputRows.map((rowText) => `${borderColor}│${borderReset} ${rowText} ${borderColor}│${borderReset}`);
293
295
  const bottom = `${borderColor}╰${"─".repeat(Math.max(1, width - 2))}╯${borderReset}`;
294
296
  const frameRows = 2 + inputRows.length + menuLines.length;
295
- const linesToFrameTop = 1 + cursorLine;
297
+ const previousFrameRows = this.renderedFrameRows;
296
298
  let out = "";
297
- if (this.renderedFrameRows > 0) {
298
- out += `\x1b[${linesToFrameTop}A`;
299
+ if (previousFrameRows > 0) {
300
+ out += `\x1b[${this.lastCursorFrameRow}A`;
301
+ out += "\r\x1b[J";
302
+ }
303
+ else {
304
+ out += "\r";
299
305
  }
300
- out += "\r\x1b[J";
301
306
  out += `${top}\n${mids.join("\n")}\n${bottom}`;
302
307
  for (const line of menuLines) {
303
308
  out += `\n${line}`;
@@ -313,18 +318,18 @@ export class SlashLineEditor {
313
318
  }
314
319
  this.output.write(out);
315
320
  this.renderedFrameRows = frameRows;
321
+ this.lastCursorFrameRow = 1 + cursorLine;
316
322
  }
317
323
  commitLine() {
318
- const { line: cursorLine } = this.cursorLineCol();
319
- const linesToFrameTop = 1 + cursorLine;
320
324
  if (this.renderedFrameRows > 0) {
321
- this.output.write(`\x1b[${linesToFrameTop}A\r\x1b[J`);
325
+ this.output.write(`\x1b[${this.lastCursorFrameRow}A\r\x1b[J`);
322
326
  }
323
327
  else {
324
328
  this.output.write("\r\x1b[J");
325
329
  }
326
330
  this.output.write("\n");
327
331
  this.renderedFrameRows = 0;
332
+ this.lastCursorFrameRow = 0;
328
333
  }
329
334
  }
330
335
  function isPrintable(str) {
@@ -339,9 +344,73 @@ function isPrintable(str) {
339
344
  }
340
345
  return true;
341
346
  }
347
+ function formatComposerRow(input) {
348
+ const visibleCore = input.showPlaceholder
349
+ ? `${input.prefix}${input.placeholder}`
350
+ : `${input.prefix}${input.part}`;
351
+ const padded = padVisible(visibleCore, input.innerWidth);
352
+ if (!input.showPlaceholder) {
353
+ return padded;
354
+ }
355
+ const prefixWidth = stringWidth(input.prefix);
356
+ const placeholderWidth = stringWidth(input.placeholder);
357
+ const trailingSpaces = Math.max(0, input.innerWidth - prefixWidth - placeholderWidth);
358
+ return `${input.prefix}${input.dim}${input.placeholder}${input.reset}${" ".repeat(trailingSpaces)}`;
359
+ }
360
+ function padVisible(text, width) {
361
+ const current = stringWidth(text);
362
+ if (current >= width) {
363
+ return sliceVisible(text, width);
364
+ }
365
+ return `${text}${" ".repeat(width - current)}`;
366
+ }
367
+ function sliceVisible(text, width) {
368
+ let used = 0;
369
+ let result = "";
370
+ for (const char of text) {
371
+ const next = stringWidth(char);
372
+ if (used + next > width) {
373
+ break;
374
+ }
375
+ used += next;
376
+ result += char;
377
+ }
378
+ return result;
379
+ }
342
380
  function stringWidth(text) {
343
381
  // Prompt/buffer are plain here; approximate one column per code point.
344
- return [...text].length;
382
+ return [...stripAnsi(text)].length;
383
+ }
384
+ function stripAnsi(text) {
385
+ return text.replace(/\x1b\[[0-9;]*m/g, "");
386
+ }
387
+ /** Visible composer frame lines (for tests / layout checks). */
388
+ function buildComposerFrameLines(input) {
389
+ const width = input.width;
390
+ const color = input.color ?? false;
391
+ const menuLines = input.menuLines ?? [];
392
+ const innerWidth = Math.max(20, width - 4);
393
+ const promptWidth = stringWidth(input.prompt);
394
+ const parts = input.buffer.split("\n");
395
+ const inputRows = parts.map((part, index) => {
396
+ const prefix = index === 0 ? input.prompt : " ".repeat(promptWidth);
397
+ const showPlaceholder = color && input.buffer.length === 0 && menuLines.length === 0 && index === 0;
398
+ return formatComposerRow({
399
+ prefix,
400
+ part,
401
+ innerWidth,
402
+ showPlaceholder,
403
+ placeholder: PLACEHOLDER,
404
+ dim: DIM,
405
+ reset: RESET,
406
+ });
407
+ });
408
+ const borderColor = color ? BORDER_ACTIVE : BORDER;
409
+ const borderReset = color ? RESET : "";
410
+ const top = `${borderColor}╭${"─".repeat(Math.max(1, width - 2))}╮${borderReset}`;
411
+ const mids = inputRows.map((rowText) => `${borderColor}│${borderReset} ${rowText} ${borderColor}│${borderReset}`);
412
+ const bottom = `${borderColor}╰${"─".repeat(Math.max(1, width - 2))}╯${borderReset}`;
413
+ return [top, ...mids, bottom, ...menuLines];
345
414
  }
346
- export { isComposerNewlineKey, isComposerSubmitKey };
415
+ export { buildComposerFrameLines, formatComposerRow, isComposerNewlineKey, isComposerSubmitKey, padVisible, stripAnsi };
347
416
  //# sourceMappingURL=line-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"line-editor.js","sourceRoot":"","sources":["../../../src/cli/interactive/line-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"line-editor.js","sourceRoot":"","sources":["../../../src/cli/interactive/line-editor.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,6 @@ export type InteractiveController = {
21
21
  persistSession: () => void;
22
22
  processLine: (rawLine: string, output: TextWriter, context?: ProcessLineContext) => Promise<ProcessLineResult>;
23
23
  };
24
+ export declare function prepareInteractiveController(options: InteractiveControllerOptions): Promise<InteractiveController>;
24
25
  export declare function createInteractiveController(options: InteractiveControllerOptions): InteractiveController;
25
26
  //# sourceMappingURL=session-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-controller.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/session-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAUjD,MAAM,MAAM,4BAA4B,GAAG;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,iBAAiB,EAAE,MAAM,MAAM,EAAE,CAAA;IACjC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,WAAW,EAAE,CACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAChC,CAAA;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CAgHvB"}
1
+ {"version":3,"file":"session-controller.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/session-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAYjD,MAAM,MAAM,4BAA4B,GAAG;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,iBAAiB,EAAE,MAAM,MAAM,EAAE,CAAA;IACjC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,WAAW,EAAE,CACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAChC,CAAA;AA+CD,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAGhC;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CA+GvB"}
@@ -6,6 +6,44 @@ import { dispatchAgentPrompt, dispatchSlashCommand, } from "./slash-dispatch.js"
6
6
  import { formatTranscriptEntry } from "./transcript-format.js";
7
7
  import { runApplyConfirmationLine } from "../commands/apply.js";
8
8
  import { loadPersistedSession, savePersistedSession } from "./session-store.js";
9
+ import { ensureExecuteAuthConfig } from "./ensure-execute-auth.js";
10
+ import { createTtyLiveFeedWriter, shouldUseTtyLiveFeed } from "./tty-live-feed.js";
11
+ function buildStreamSink(output, options, canStreamPartials) {
12
+ if (!canStreamPartials || !shouldUseTtyLiveFeed(options.interactive)) {
13
+ return {
14
+ onLine: (entry) => {
15
+ output.line(entry);
16
+ },
17
+ onPartial: canStreamPartials
18
+ ? (chunk) => {
19
+ options.onPartial?.(chunk);
20
+ }
21
+ : undefined,
22
+ finalize: () => { },
23
+ reset: () => { },
24
+ };
25
+ }
26
+ const feed = createTtyLiveFeedWriter(output);
27
+ return {
28
+ onLine: (entry) => {
29
+ feed.line(entry);
30
+ },
31
+ onPartial: (chunk) => {
32
+ feed.emitPartial(chunk);
33
+ options.onPartial?.(chunk);
34
+ },
35
+ finalize: () => {
36
+ feed.flushPartials();
37
+ },
38
+ reset: () => {
39
+ feed.resetStream();
40
+ },
41
+ };
42
+ }
43
+ export async function prepareInteractiveController(options) {
44
+ await ensureExecuteAuthConfig(options.cwd);
45
+ return createInteractiveController(options);
46
+ }
9
47
  export function createInteractiveController(options) {
10
48
  const cwd = options.cwd;
11
49
  const session = new InteractiveSession(cwd);
@@ -44,19 +82,20 @@ export function createInteractiveController(options) {
44
82
  for (const entry of formatTranscriptEntry("you", line)) {
45
83
  output.line(entry);
46
84
  }
85
+ const stream = buildStreamSink(output, options, canStreamPartials);
86
+ stream.reset();
47
87
  let partialActive = false;
48
88
  const result = await dispatchAgentPrompt(session, line, {
49
89
  signal: context.signal,
50
- onTranscriptLine: (entry) => {
51
- output.line(entry);
52
- },
53
- onTranscriptPartial: canStreamPartials
90
+ onTranscriptLine: stream.onLine,
91
+ onTranscriptPartial: stream.onPartial
54
92
  ? (chunk) => {
55
93
  partialActive = true;
56
- options.onPartial?.(chunk);
94
+ stream.onPartial?.(chunk);
57
95
  }
58
96
  : undefined,
59
97
  });
98
+ stream.finalize();
60
99
  session.append({ input: line, lines: result.lines });
61
100
  if (!result.streamed) {
62
101
  for (const entry of result.lines) {
@@ -70,19 +109,14 @@ export function createInteractiveController(options) {
70
109
  persistSession();
71
110
  return { exitShell: result.exitShell, exitCode: result.exitCode, streamed: result.streamed };
72
111
  }
112
+ const stream = buildStreamSink(output, options, canStreamPartials);
113
+ stream.reset();
73
114
  const result = await dispatchSlashCommand(session, parsed, {
74
115
  permissionsInteractive: options.interactive === true,
75
- onTranscriptLine: canStreamPartials
76
- ? (entry) => {
77
- output.line(entry);
78
- }
79
- : undefined,
80
- onTranscriptPartial: canStreamPartials
81
- ? (chunk) => {
82
- options.onPartial?.(chunk);
83
- }
84
- : undefined,
116
+ onTranscriptLine: stream.onLine,
117
+ onTranscriptPartial: stream.onPartial,
85
118
  });
119
+ stream.finalize();
86
120
  session.append({ input: redactSensitiveInput(line), lines: result.lines });
87
121
  if (!result.streamed) {
88
122
  for (const entry of result.lines) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../../src/cli/interactive/session-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../../src/cli/interactive/session-controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAMtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CA+EjC"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAMtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CA8EjC"}
@@ -2,7 +2,7 @@ import { createInterface } from "node:readline";
2
2
  import { createBufferWriter, createStdoutWriter } from "../ui/text-writer.js";
3
3
  import { INTERACTIVE_PROMPT } from "./header.js";
4
4
  import { SlashLineEditor } from "./line-editor.js";
5
- import { createInteractiveController } from "./session-controller.js";
5
+ import { prepareInteractiveController } from "./session-controller.js";
6
6
  export async function runInteractiveShell(options = {}) {
7
7
  const cwd = options.cwd ?? process.cwd();
8
8
  const buffer = createBufferWriter();
@@ -15,7 +15,7 @@ export async function runInteractiveShell(options = {}) {
15
15
  };
16
16
  const prompt = options.prompt ?? INTERACTIVE_PROMPT;
17
17
  const interactive = !options.input && Boolean(process.stdin.isTTY && process.stdout.isTTY);
18
- const controller = createInteractiveController({
18
+ const controller = await prepareInteractiveController({
19
19
  cwd,
20
20
  interactive,
21
21
  streamPartials: interactive,
@@ -24,7 +24,6 @@ export async function runInteractiveShell(options = {}) {
24
24
  for (const line of controller.renderHeaderLines()) {
25
25
  output.line(line);
26
26
  }
27
- output.line("");
28
27
  let exitCode = 0;
29
28
  const processLine = async (rawLine) => {
30
29
  const result = await controller.processLine(rawLine, output);
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type ParsedTranscriptLine = {
2
+ kind: "user" | "assistant" | "tool" | "status" | "info";
3
+ label: string;
4
+ text: string;
5
+ continuation: boolean;
6
+ };
7
+ export declare function parseTranscriptLine(raw: string): ParsedTranscriptLine | null;
8
+ //# sourceMappingURL=transcript-line-parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-line-parse.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/transcript-line-parse.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAyC5E"}
@@ -0,0 +1,39 @@
1
+ const LABEL_WIDTH = 7;
2
+ export function parseTranscriptLine(raw) {
3
+ const line = raw.replace(/\x1b\[[0-9;]*m/g, "");
4
+ if (!line.trim()) {
5
+ return null;
6
+ }
7
+ if (line.startsWith(" ".repeat(LABEL_WIDTH))) {
8
+ return {
9
+ kind: "assistant",
10
+ label: "",
11
+ text: line.slice(LABEL_WIDTH),
12
+ continuation: true,
13
+ };
14
+ }
15
+ const match = line.match(/^(you|agent|tool|run)\s*(.*)$/i);
16
+ if (!match) {
17
+ return {
18
+ kind: "info",
19
+ label: "info",
20
+ text: line,
21
+ continuation: false,
22
+ };
23
+ }
24
+ const role = match[1].toLowerCase();
25
+ const kind = role === "you"
26
+ ? "user"
27
+ : role === "tool"
28
+ ? "tool"
29
+ : role === "run"
30
+ ? "status"
31
+ : "assistant";
32
+ return {
33
+ kind,
34
+ label: role,
35
+ text: match[2] ?? "",
36
+ continuation: false,
37
+ };
38
+ }
39
+ //# sourceMappingURL=transcript-line-parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-line-parse.js","sourceRoot":"","sources":["../../../src/cli/interactive/transcript-line-parse.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,CAAC,CAAA;AASrB,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;IAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAC7B,YAAY,EAAE,IAAI;SACnB,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,KAAK;SACpB,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACnC,MAAM,IAAI,GACR,IAAI,KAAK,KAAK;QACZ,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI,KAAK,MAAM;YACf,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,KAAK,KAAK;gBACd,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,WAAW,CAAA;IAErB,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QACpB,YAAY,EAAE,KAAK;KACpB,CAAA;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { TextWriter } from "../ui/text-writer.js";
2
+ export type TtyLiveFeedWriter = TextWriter & {
3
+ emitPartial: (chunk: string) => void;
4
+ flushPartials: () => void;
5
+ resetStream: () => void;
6
+ };
7
+ /**
8
+ * Cookbook-style live transcript on Node TTY: tool/run upserts + agent text deltas.
9
+ */
10
+ export declare function createTtyLiveFeedWriter(base: TextWriter, stdout?: NodeJS.WriteStream): TtyLiveFeedWriter;
11
+ export declare function shouldUseTtyLiveFeed(interactive: boolean | undefined): boolean;
12
+ //# sourceMappingURL=tty-live-feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tty-live-feed.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/tty-live-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAMtD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,IAAI,CAAA;CACxB,CAAA;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,MAAM,GAAE,MAAM,CAAC,WAA4B,GAC1C,iBAAiB,CA8DnB;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAE9E"}
@@ -0,0 +1,64 @@
1
+ import { deriveTranscriptUpsertKey } from "./transcript-upsert.js";
2
+ import { parseTranscriptLine } from "./transcript-line-parse.js";
3
+ const LABEL_WIDTH = 7;
4
+ /**
5
+ * Cookbook-style live transcript on Node TTY: tool/run upserts + agent text deltas.
6
+ */
7
+ export function createTtyLiveFeedWriter(base, stdout = process.stdout) {
8
+ const upsertRows = new Map();
9
+ let agentStreaming = false;
10
+ const flushPartials = () => {
11
+ if (agentStreaming) {
12
+ stdout.write("\n");
13
+ agentStreaming = false;
14
+ }
15
+ };
16
+ const resetStream = () => {
17
+ flushPartials();
18
+ upsertRows.clear();
19
+ };
20
+ const emitPartial = (chunk) => {
21
+ if (!stdout.isTTY || !chunk) {
22
+ return;
23
+ }
24
+ if (!agentStreaming) {
25
+ stdout.write(`${"agent".padEnd(LABEL_WIDTH)}`);
26
+ agentStreaming = true;
27
+ }
28
+ stdout.write(chunk);
29
+ };
30
+ return {
31
+ line(text = "") {
32
+ const parsed = parseTranscriptLine(text);
33
+ if (!parsed) {
34
+ flushPartials();
35
+ base.line(text);
36
+ return;
37
+ }
38
+ if (parsed.continuation) {
39
+ flushPartials();
40
+ base.line(text);
41
+ return;
42
+ }
43
+ const upsertKey = deriveTranscriptUpsertKey(parsed.kind, parsed.label, parsed.text);
44
+ flushPartials();
45
+ if (upsertKey && stdout.isTTY && upsertRows.has(upsertKey)) {
46
+ const rows = upsertRows.get(upsertKey) ?? 1;
47
+ for (let i = 0; i < rows; i += 1) {
48
+ stdout.write("\x1b[1A\x1b[2K");
49
+ }
50
+ }
51
+ base.line(text);
52
+ if (upsertKey) {
53
+ upsertRows.set(upsertKey, 1);
54
+ }
55
+ },
56
+ emitPartial,
57
+ flushPartials,
58
+ resetStream,
59
+ };
60
+ }
61
+ export function shouldUseTtyLiveFeed(interactive) {
62
+ return interactive === true && Boolean(process.stdout.isTTY) && !process.env.NO_COLOR;
63
+ }
64
+ //# sourceMappingURL=tty-live-feed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tty-live-feed.js","sourceRoot":"","sources":["../../../src/cli/interactive/tty-live-feed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,MAAM,WAAW,GAAG,CAAC,CAAA;AAQrB;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAgB,EAChB,SAA6B,OAAO,CAAC,MAAM;IAE3C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC5C,IAAI,cAAc,GAAG,KAAK,CAAA;IAE1B,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAClB,cAAc,GAAG,KAAK,CAAA;QACxB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,aAAa,EAAE,CAAA;QACf,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,KAAa,EAAQ,EAAE;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC9C,cAAc,GAAG,IAAI,CAAA;QACvB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC,CAAA;IAED,OAAO;QACL,IAAI,CAAC,IAAI,GAAG,EAAE;YACZ,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,aAAa,EAAE,CAAA;gBACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACf,OAAM;YACR,CAAC;YAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,aAAa,EAAE,CAAA;gBACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACf,OAAM;YACR,CAAC;YAED,MAAM,SAAS,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YACnF,aAAa,EAAE,CAAA;YAEf,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;gBAChC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEf,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QACD,WAAW;QACX,aAAa;QACb,WAAW;KACZ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAgC;IACnE,OAAO,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;AACvF,CAAC"}
@@ -39,7 +39,7 @@ These are **intentional** for the current slice. Do not treat them as bugs unles
39
39
  | One-shot argv / stdin | **Implemented (0.13+)** — `patze "task"`, `patze agent`, piped stdin |
40
40
  | `/model` picker | **Implemented (0.13+)** — session override + `PATZE_CODE_MODEL` / config |
41
41
  | `/run` replay | **Implemented (0.13+)** — SSE replay or stored trace fallback |
42
- | Live text deltas in-place | **Partial (0.12+)** — assistant stream_delta on TTY; tool/thinking upsert (0.13+) |
42
+ | Live text deltas in-place | **Implemented (0.18+)** — Node TTY live feed + OpenTUI upsert stream |
43
43
 
44
44
  ## Session and persistence
45
45
 
@@ -227,17 +227,17 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
227
227
  slashMenuModule = await importPatzeDist("cli/interactive/slash-menu.js")
228
228
  setSlashMenuReady(true)
229
229
 
230
- const mod = await importPatzeDist<typeof import("../../dist/cli/interactive/session-controller.js")>(
231
- "cli/interactive/session-controller.js"
232
- )
233
- const controller = mod.createInteractiveController({
230
+ const sessionMod = await importPatzeDist<
231
+ typeof import("../../dist/cli/interactive/session-controller.js")
232
+ >("cli/interactive/session-controller.js")
233
+ const controller = (await sessionMod.prepareInteractiveController({
234
234
  cwd,
235
235
  interactive: true,
236
236
  streamPartials: true,
237
237
  onPartial: (chunk: string) => {
238
238
  upsertStreaming(chunk)
239
239
  },
240
- }) as InteractiveController
240
+ })) as InteractiveController
241
241
 
242
242
  if (cancelled) {
243
243
  return
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patze/code-cli",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "Patze Code — local terminal coding agent client for PatzeAgents",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",