clitrigger 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +124 -100
  2. package/README_KR.md +243 -0
  3. package/dist/client/assets/index-BiXO2oR3.js +541 -0
  4. package/dist/client/assets/index-tGOot928.css +1 -0
  5. package/dist/client/index.html +2 -2
  6. package/dist/server/data/cli-models-registry.json +34 -0
  7. package/dist/server/db/queries.d.ts +95 -48
  8. package/dist/server/db/queries.d.ts.map +1 -1
  9. package/dist/server/db/queries.js +328 -129
  10. package/dist/server/db/queries.js.map +1 -1
  11. package/dist/server/db/schema.d.ts.map +1 -1
  12. package/dist/server/db/schema.js +67 -35
  13. package/dist/server/db/schema.js.map +1 -1
  14. package/dist/server/index.d.ts.map +1 -1
  15. package/dist/server/index.js +27 -13
  16. package/dist/server/index.js.map +1 -1
  17. package/dist/server/lib/git.d.ts +3 -0
  18. package/dist/server/lib/git.d.ts.map +1 -0
  19. package/dist/server/lib/git.js +7 -0
  20. package/dist/server/lib/git.js.map +1 -0
  21. package/dist/server/routes/{pipelines.d.ts → analytics.d.ts} +1 -1
  22. package/dist/server/routes/analytics.d.ts.map +1 -0
  23. package/dist/server/routes/analytics.js +102 -0
  24. package/dist/server/routes/analytics.js.map +1 -0
  25. package/dist/server/routes/cli-status.d.ts +3 -0
  26. package/dist/server/routes/cli-status.d.ts.map +1 -0
  27. package/dist/server/routes/cli-status.js +28 -0
  28. package/dist/server/routes/cli-status.js.map +1 -0
  29. package/dist/server/routes/discussions.js +5 -5
  30. package/dist/server/routes/discussions.js.map +1 -1
  31. package/dist/server/routes/execution.d.ts.map +1 -1
  32. package/dist/server/routes/execution.js +9 -5
  33. package/dist/server/routes/execution.js.map +1 -1
  34. package/dist/server/routes/images.d.ts +21 -0
  35. package/dist/server/routes/images.d.ts.map +1 -1
  36. package/dist/server/routes/images.js +163 -1
  37. package/dist/server/routes/images.js.map +1 -1
  38. package/dist/server/routes/logs.js +3 -3
  39. package/dist/server/routes/logs.js.map +1 -1
  40. package/dist/server/routes/models.d.ts.map +1 -1
  41. package/dist/server/routes/models.js +2 -0
  42. package/dist/server/routes/models.js.map +1 -1
  43. package/dist/server/routes/planner.d.ts +3 -0
  44. package/dist/server/routes/planner.d.ts.map +1 -0
  45. package/dist/server/routes/planner.js +344 -0
  46. package/dist/server/routes/planner.js.map +1 -0
  47. package/dist/server/routes/projects.d.ts.map +1 -1
  48. package/dist/server/routes/projects.js +159 -1
  49. package/dist/server/routes/projects.js.map +1 -1
  50. package/dist/server/routes/schedules.d.ts.map +1 -1
  51. package/dist/server/routes/schedules.js +39 -0
  52. package/dist/server/routes/schedules.js.map +1 -1
  53. package/dist/server/routes/sessions.d.ts +3 -0
  54. package/dist/server/routes/sessions.d.ts.map +1 -0
  55. package/dist/server/routes/sessions.js +200 -0
  56. package/dist/server/routes/sessions.js.map +1 -0
  57. package/dist/server/routes/todos.d.ts.map +1 -1
  58. package/dist/server/routes/todos.js +16 -4
  59. package/dist/server/routes/todos.js.map +1 -1
  60. package/dist/server/services/claude-manager.d.ts.map +1 -1
  61. package/dist/server/services/claude-manager.js +63 -28
  62. package/dist/server/services/claude-manager.js.map +1 -1
  63. package/dist/server/services/cli-adapters.d.ts +60 -0
  64. package/dist/server/services/cli-adapters.d.ts.map +1 -1
  65. package/dist/server/services/cli-adapters.js +123 -5
  66. package/dist/server/services/cli-adapters.js.map +1 -1
  67. package/dist/server/services/cli-status.d.ts +8 -0
  68. package/dist/server/services/cli-status.d.ts.map +1 -0
  69. package/dist/server/services/cli-status.js +57 -0
  70. package/dist/server/services/cli-status.js.map +1 -0
  71. package/dist/server/services/discussion-orchestrator.d.ts.map +1 -1
  72. package/dist/server/services/discussion-orchestrator.js +33 -6
  73. package/dist/server/services/discussion-orchestrator.js.map +1 -1
  74. package/dist/server/services/log-streamer.d.ts +12 -0
  75. package/dist/server/services/log-streamer.d.ts.map +1 -1
  76. package/dist/server/services/log-streamer.js +117 -31
  77. package/dist/server/services/log-streamer.js.map +1 -1
  78. package/dist/server/services/model-sync.d.ts +22 -0
  79. package/dist/server/services/model-sync.d.ts.map +1 -0
  80. package/dist/server/services/model-sync.js +181 -0
  81. package/dist/server/services/model-sync.js.map +1 -0
  82. package/dist/server/services/orchestrator.d.ts +18 -0
  83. package/dist/server/services/orchestrator.d.ts.map +1 -1
  84. package/dist/server/services/orchestrator.js +81 -11
  85. package/dist/server/services/orchestrator.js.map +1 -1
  86. package/dist/server/services/pty-output-filter.d.ts.map +1 -1
  87. package/dist/server/services/pty-output-filter.js +91 -8
  88. package/dist/server/services/pty-output-filter.js.map +1 -1
  89. package/dist/server/services/session-manager.d.ts +22 -0
  90. package/dist/server/services/session-manager.d.ts.map +1 -0
  91. package/dist/server/services/session-manager.js +249 -0
  92. package/dist/server/services/session-manager.js.map +1 -0
  93. package/dist/server/services/worktree-manager.d.ts +11 -1
  94. package/dist/server/services/worktree-manager.d.ts.map +1 -1
  95. package/dist/server/services/worktree-manager.js +128 -32
  96. package/dist/server/services/worktree-manager.js.map +1 -1
  97. package/dist/server/websocket/events.d.ts +13 -22
  98. package/dist/server/websocket/events.d.ts.map +1 -1
  99. package/dist/server/websocket/index.d.ts.map +1 -1
  100. package/dist/server/websocket/index.js +17 -1
  101. package/dist/server/websocket/index.js.map +1 -1
  102. package/package.json +3 -3
  103. package/README_EN.md +0 -219
  104. package/dist/client/assets/index-B4peRpUi.js +0 -134
  105. package/dist/client/assets/index-Bjyoy6lB.css +0 -1
  106. package/dist/server/routes/pipelines.d.ts.map +0 -1
  107. package/dist/server/routes/pipelines.js +0 -315
  108. package/dist/server/routes/pipelines.js.map +0 -1
  109. package/dist/server/services/pipeline-orchestrator.d.ts +0 -43
  110. package/dist/server/services/pipeline-orchestrator.d.ts.map +0 -1
  111. package/dist/server/services/pipeline-orchestrator.js +0 -503
  112. package/dist/server/services/pipeline-orchestrator.js.map +0 -1
@@ -6,13 +6,15 @@ export function createPtyFilterState() {
6
6
  return { lineBuffer: '', recentLines: [], inResponseBlock: false };
7
7
  }
8
8
  // ── Noise detection patterns ──
9
+ const SPINNER_CHARS = '✶✻✽✢✧✦✱·⊹◈⟡⋆✸✹✺⊛⊕⊗*++*✚✕✖';
9
10
  const NOISE_PATTERNS = [
10
11
  // Box drawing / separator lines (allow trailing prompt chars like > $ %)
11
12
  /^[\s─━│┃╭╮╰╯┌┐└┘┬┴├┤┼╋═║╔╗╚╝╠╣╦╩╬░█▓▒>$%›]+$/,
12
13
  // Claude banner frame
13
14
  /╭.*Claude|╰─/,
14
- // Status bar: model/team info
15
+ // Status bar: model/team info (with or without brackets)
15
16
  /^\[.*(?:Haiku|Sonnet|Opus|Claude).*\]\s*│/i,
17
+ /(?:Haiku|Sonnet|Opus)\s+\d+(?:\.\d+)?.*(?:Team|Plan|Pro|Max)/i,
16
18
  // Context/Usage progress bars
17
19
  /(?:Context|Usage)\s+[█░▓▒]+/,
18
20
  // Hook count line
@@ -21,12 +23,16 @@ const NOISE_PATTERNS = [
21
23
  /⏵/,
22
24
  // TUI hints
23
25
  /(?:ctrl|shift)\+\w+\s+to\s+/i,
24
- // Tip lines
25
- /^⎿\s*Tip:/,
26
+ // Ink status sub-line (⎿ followed by short status word: Tip, Hmm, Loading, etc.)
27
+ /^⎿\s*(?:Tip|Hmm|Loading|Processing|Running|Waiting|Thinking|Done|Working)/i,
28
+ // Ink short status line on its own (Hmm…, Loading…)
29
+ /^(?:Hmm|Thinking|Loading|Processing|Running|Waiting|Working)\s*…?$/i,
26
30
  // Spinner frames: allow optional (thinking)/(thought for Ns) suffix after …
27
- /^[✶✻✽✢✧✦✱·⊹◈⟡⋆✸✹✺⊛⊕⊗*]\s*.{0,60}…/,
31
+ /^[✶✻✽✢✧✦✱·⊹◈⟡⋆✸✹✺⊛⊕⊗*++*✚✕✖]\s*.{0,60}…/,
32
+ // Thinking animation chars mixed with (thinking) text (e.g. "✶(thinking)(thinking) ✻(thinking)✻")
33
+ /^[✶✻✽✢✧✦✱·⊹◈⟡⋆✸✹✺⊛⊕⊗*++*✚✕✖\s]*\(?think(?:ing)?\)?[✶✻✽✢✧✦✱·⊹◈⟡⋆✸✹✺⊛⊕⊗*++*✚✕✖\s(thinking)]*$/,
28
34
  // Thinking indicators
29
- /^\(?think(?:ing)?\)?(?:\(?think(?:ing)?\))*$/,
35
+ /^\(?think(?:ing)?\)?(?:\s*\(?think(?:ing)?\)?)*$/,
30
36
  /^\(thought for \d+/,
31
37
  /thought? (?:for )?\d+s?\)/,
32
38
  // Welcome screen elements
@@ -35,10 +41,20 @@ const NOISE_PATTERNS = [
35
41
  /^No\s+recent\s+activity/i,
36
42
  /^Recent\s+activity/i,
37
43
  /^Run\s+\/init\s+to\s+create/i,
38
- // Claude logo chars (short lines with block chars)
44
+ // Claude logo chars (standalone or mixed with sidebar text via pipe)
39
45
  /^[▐▛▜▌▝▘█▀▄▓░▒\s]+$/,
46
+ /^[▐▛▜▌▝▘█▀▄▓░▒\s]+\|/,
40
47
  // User input echo (already logged as [>>>] via WebSocket)
41
48
  /^>\s/,
49
+ // Numbered prompt echo (e.g. "3> 뭐해?" or "3 > 뭐해?" — CLI echoes user input with prompt number)
50
+ /^\d+\s*>\s/,
51
+ // CLI status bar / prompt line (e.g. "────...──> [Haiku 4.5 | Team] │ repo git:(main)")
52
+ /^[─━]+.*\bgit:\(/,
53
+ // Working directory path line (e.g. "C:\path\.worktrees\branch..." or "/path/.worktrees/...")
54
+ /^[A-Z]:[\\\/].*[\\\/]\.?worktrees?\b/i,
55
+ /^\/.*\/\.?worktrees?\b/,
56
+ // TUI menu/mode indicators (☰ ○ etc.)
57
+ /^[☰○⏵◉◎●○\s]+$/,
42
58
  // Cost display
43
59
  /^\$\d+\.\d+/,
44
60
  // CLITrigger prompt template echo (repeated back by TUI)
@@ -48,6 +64,61 @@ const NOISE_PATTERNS = [
48
64
  /^After completing the task.*commit/,
49
65
  /^IMPORTANT.*(?:working directory|Do NOT access)/i,
50
66
  ];
67
+ /**
68
+ * Detects lines that are animation-frame collisions — typically produced when
69
+ * multiple spinner refreshes concatenate without a real line break. Such lines
70
+ * are composed almost entirely of spinner chars, "(thinking)" markers,
71
+ * whitespace, `…`, and short character fragments.
72
+ */
73
+ function isAnimationCollision(line) {
74
+ // Strip all pure-noise tokens and see what meaningful content remains.
75
+ const stripped = line
76
+ .replace(/\(thought for \d+s?\)/gi, '')
77
+ .replace(/\(?think(?:ing)?\)?/gi, '')
78
+ .replace(new RegExp(`[${SPINNER_CHARS}…\\s]`, 'g'), '');
79
+ // If nothing or only punctuation remains, it's pure noise.
80
+ if (stripped.length === 0)
81
+ return true;
82
+ // Keep lines with real response signals.
83
+ if (/[●\[\]]/.test(line))
84
+ return false;
85
+ // Multiple "(thinking)" occurrences on one line = animation collision.
86
+ const thinkingCount = (line.match(/\(thinking\)/gi) || []).length;
87
+ if (thinkingCount >= 2)
88
+ return true;
89
+ // Three or more spinner chars interspersed with text = collision.
90
+ const spinnerCount = (line.match(new RegExp(`[${SPINNER_CHARS}]`, 'g')) || []).length;
91
+ if (spinnerCount >= 3)
92
+ return true;
93
+ // Single leading spinner char followed by fragmented short-word content
94
+ // (e.g. "✶ r P ec", "* t i a n" — spinner frames where cursor repositioning
95
+ // became spaces). Require ≥3 tokens, all ≤3 chars, to avoid catching real
96
+ // markdown bullets like "* First item".
97
+ const spinnerLeadMatch = line.match(new RegExp(`^[${SPINNER_CHARS}]\\s+(.+)$`));
98
+ if (spinnerLeadMatch) {
99
+ // Strip trailing (thinking)/(thought for Ns) markers so the remaining
100
+ // tokens represent only the fragmented word content.
101
+ const suffix = spinnerLeadMatch[1]
102
+ .replace(/\(thought for \d+s?\)/gi, '')
103
+ .replace(/\(thinking\)/gi, '')
104
+ .trim();
105
+ const tokens = suffix.length > 0 ? suffix.split(/\s+/) : [];
106
+ if (tokens.length >= 3 && tokens.every((t) => t.length <= 3))
107
+ return true;
108
+ // Shorter fragments (≥2 tokens) need a stricter bound to avoid
109
+ // swallowing real markdown bullets like "* Go now".
110
+ if (tokens.length >= 2 && tokens.every((t) => t.length <= 2))
111
+ return true;
112
+ // Single short-word fragment (e.g. "* Lea", "* Le") — spinner word redraw
113
+ // caught mid-animation. Rare as a real markdown bullet.
114
+ if (tokens.length === 1 && tokens[0].length <= 3)
115
+ return true;
116
+ // All content was "(thinking)" noise — suppress.
117
+ if (tokens.length === 0)
118
+ return true;
119
+ }
120
+ return false;
121
+ }
51
122
  /** Returns true if the line is TUI noise that should be suppressed. */
52
123
  export function isNoiseLine(line) {
53
124
  const trimmed = line.trim();
@@ -69,6 +140,9 @@ export function isNoiseLine(line) {
69
140
  if (pattern.test(trimmed))
70
141
  return true;
71
142
  }
143
+ // Detect concatenated animation frames (multiple spinners / (thinking) on one line)
144
+ if (isAnimationCollision(trimmed))
145
+ return true;
72
146
  return false;
73
147
  }
74
148
  const DEDUP_CAPACITY = 20;
@@ -78,9 +152,18 @@ const DEDUP_CAPACITY = 20;
78
152
  */
79
153
  export function filterInteractivePtyOutput(chunk, state) {
80
154
  state.lineBuffer += chunk;
81
- const segments = state.lineBuffer.split(/\r?\n/);
82
- // Last segment is incomplete (no trailing newline) keep in buffer
155
+ // Split on any line boundary — including bare \r, which TUI animations use
156
+ // to overwrite the current line. Without this, spinner frames concatenate
157
+ // into one long line and bypass the per-line noise filter.
158
+ const segments = state.lineBuffer.split(/\r\n|\r|\n/);
159
+ // Last segment is incomplete (no trailing separator) — keep in buffer
83
160
  state.lineBuffer = segments.pop() || '';
161
+ // Runaway buffer guard: if no line break has arrived in a very long time,
162
+ // force-process the buffer so we don't accumulate indefinitely.
163
+ if (state.lineBuffer.length > 4096) {
164
+ segments.push(state.lineBuffer);
165
+ state.lineBuffer = '';
166
+ }
84
167
  const kept = [];
85
168
  for (const raw of segments) {
86
169
  const line = raw.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"pty-output-filter.js","sourceRoot":"","sources":["../../../src/server/services/pty-output-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty-output-filter.js","sourceRoot":"","sources":["../../../src/server/services/pty-output-filter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,UAAU,oBAAoB;IAClC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;AACrE,CAAC;AAED,iCAAiC;AAEjC,MAAM,aAAa,GAAG,2BAA2B,CAAC;AAElD,MAAM,cAAc,GAAa;IAC/B,yEAAyE;IACzE,8CAA8C;IAC9C,sBAAsB;IACtB,cAAc;IACd,yDAAyD;IACzD,4CAA4C;IAC5C,+DAA+D;IAC/D,8BAA8B;IAC9B,6BAA6B;IAC7B,kBAAkB;IAClB,gBAAgB;IAChB,wBAAwB;IACxB,GAAG;IACH,YAAY;IACZ,8BAA8B;IAC9B,iFAAiF;IACjF,4EAA4E;IAC5E,oDAAoD;IACpD,qEAAqE;IACrE,4EAA4E;IAC5E,yCAAyC;IACzC,kGAAkG;IAClG,6FAA6F;IAC7F,sBAAsB;IACtB,kDAAkD;IAClD,oBAAoB;IACpB,2BAA2B;IAC3B,0BAA0B;IAC1B,oBAAoB;IACpB,mCAAmC;IACnC,0BAA0B;IAC1B,qBAAqB;IACrB,8BAA8B;IAC9B,qEAAqE;IACrE,qBAAqB;IACrB,sBAAsB;IACtB,0DAA0D;IAC1D,MAAM;IACN,+FAA+F;IAC/F,YAAY;IACZ,wFAAwF;IACxF,kBAAkB;IAClB,8FAA8F;IAC9F,uCAAuC;IACvC,wBAAwB;IACxB,sCAAsC;IACtC,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,yDAAyD;IACzD,oCAAoC;IACpC,wCAAwC;IACxC,iBAAiB;IACjB,oCAAoC;IACpC,kDAAkD;CACnD,CAAC;AAEF;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,uEAAuE;IACvE,MAAM,QAAQ,GAAG,IAAI;SAClB,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC;SACtC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACpC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,aAAa,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,2DAA2D;IAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,yCAAyC;IACzC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,uEAAuE;IACvE,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAClE,IAAI,aAAa,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,kEAAkE;IAClE,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,aAAa,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACtF,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,wEAAwE;IACxE,4EAA4E;IAC5E,0EAA0E;IAC1E,wCAAwC;IACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CACjC,IAAI,MAAM,CAAC,KAAK,aAAa,YAAY,CAAC,CAC3C,CAAC;IACF,IAAI,gBAAgB,EAAE,CAAC;QACrB,sEAAsE;QACtE,qDAAqD;QACrD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;aAC/B,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC;aACtC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;aAC7B,IAAI,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1E,+DAA+D;QAC/D,oDAAoD;QACpD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1E,0EAA0E;QAC1E,wDAAwD;QACxD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9D,iDAAiD;QACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE5B,0BAA0B;IAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,6CAA6C;IAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,4CAA4C,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7E,2EAA2E;IAC3E,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhE,2BAA2B;IAC3B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;IACzC,CAAC;IAED,oFAAoF;IACpF,IAAI,oBAAoB,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAa,EAAE,KAAqB;IAC7E,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC;IAE1B,2EAA2E;IAC3E,0EAA0E;IAC1E,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACtD,sEAAsE;IACtE,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAExC,0EAA0E;IAC1E,gEAAgE;IAChE,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,qBAAqB;QACrB,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,gCAAgC;YAChC,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;YAChC,CAAC;YACD,SAAS;QACX,CAAC;QAED,sCAAsC;QACtC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,SAAS;QACX,CAAC;QAED,qBAAqB;QACrB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YAC9C,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,yFAAyF;AACzF,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,oCAAoC,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,IAAI,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,22 @@
1
+ export declare class SessionManager {
2
+ /**
3
+ * Start a session (always interactive mode).
4
+ */
5
+ startSession(sessionId: string): Promise<void>;
6
+ /**
7
+ * Stop a running session.
8
+ */
9
+ stopSession(sessionId: string): Promise<void>;
10
+ /**
11
+ * Classify a filtered PTY output line into a log type.
12
+ * Heuristic: ● prefix = assistant response, [Tool: ...] = tool call, else = output.
13
+ */
14
+ private classifyPtyLine;
15
+ /**
16
+ * Stream PTY output to session logs with heuristic classification.
17
+ * Accumulates consecutive assistant lines into a single log entry.
18
+ */
19
+ private streamToSessionLogs;
20
+ }
21
+ export declare const sessionManager: SessionManager;
22
+ //# sourceMappingURL=session-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../src/server/services/session-manager.ts"],"names":[],"mappings":"AAMA,qBAAa,cAAc;IACzB;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2GpD;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenD;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsBvB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAkF5B;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,249 @@
1
+ import { claudeManager } from './claude-manager.js';
2
+ import { worktreeManager } from './worktree-manager.js';
3
+ import { getAdapter, supportsInteractiveMode } from './cli-adapters.js';
4
+ import { broadcaster } from '../websocket/broadcaster.js';
5
+ import * as queries from '../db/queries.js';
6
+ export class SessionManager {
7
+ /**
8
+ * Start a session (always interactive mode).
9
+ */
10
+ async startSession(sessionId) {
11
+ const session = queries.getSessionById(sessionId);
12
+ if (!session)
13
+ throw new Error('Session not found');
14
+ const project = queries.getProjectById(session.project_id);
15
+ if (!project)
16
+ throw new Error('Project not found');
17
+ const cliTool = (session.cli_tool || project.cli_tool || 'claude');
18
+ if (!supportsInteractiveMode(cliTool)) {
19
+ throw new Error(`${cliTool} does not support interactive mode`);
20
+ }
21
+ const adapter = getAdapter(cliTool);
22
+ const cliModel = session.cli_model || project.claude_model || undefined;
23
+ const prompt = session.description || '';
24
+ const useWorktree = !!session.use_worktree && !!project.is_git_repo;
25
+ // Mark as running
26
+ queries.updateSessionStatus(sessionId, 'running');
27
+ let workDir = project.path;
28
+ let worktreePath = null;
29
+ let branchName = null;
30
+ // Worktree setup
31
+ if (useWorktree) {
32
+ // Reuse existing worktree if available
33
+ if (session.worktree_path && session.branch_name && await worktreeManager.isValidWorktree(session.worktree_path)) {
34
+ worktreePath = session.worktree_path;
35
+ branchName = session.branch_name;
36
+ workDir = worktreePath;
37
+ queries.createSessionLog(sessionId, 'output', `Reusing existing worktree on branch ${branchName}`);
38
+ }
39
+ else {
40
+ branchName = worktreeManager.sanitizeBranchName(`session-${session.title}`);
41
+ try {
42
+ worktreePath = await worktreeManager.createWorktree(project.path, branchName);
43
+ workDir = worktreePath;
44
+ queries.createSessionLog(sessionId, 'output', `Created worktree on branch ${branchName}`);
45
+ }
46
+ catch (err) {
47
+ const message = err instanceof Error ? err.message : String(err);
48
+ queries.updateSessionStatus(sessionId, 'failed');
49
+ queries.createSessionLog(sessionId, 'error', `Failed to create worktree: ${message}`);
50
+ broadcaster.broadcast({ type: 'session:status-changed', sessionId, status: 'failed' });
51
+ return;
52
+ }
53
+ }
54
+ }
55
+ let pid;
56
+ let exitPromise;
57
+ try {
58
+ const result = await claudeManager.startClaude(workDir, prompt, cliModel, undefined, 'interactive', cliTool, undefined, project.path, undefined, false);
59
+ pid = result.pid;
60
+ exitPromise = result.exitPromise;
61
+ // Stream stdout/stderr to session_logs
62
+ this.streamToSessionLogs(sessionId, result.stdout, result.stderr);
63
+ }
64
+ catch (err) {
65
+ const message = err instanceof Error ? err.message : String(err);
66
+ queries.updateSessionStatus(sessionId, 'failed');
67
+ queries.createSessionLog(sessionId, 'error', `Failed to start ${adapter.displayName}: ${message}`);
68
+ // Clean up worktree on failure
69
+ if (useWorktree && worktreePath && !session.worktree_path) {
70
+ try {
71
+ await worktreeManager.removeWorktree(project.path, worktreePath);
72
+ }
73
+ catch { /* ignore */ }
74
+ }
75
+ broadcaster.broadcast({ type: 'session:status-changed', sessionId, status: 'failed' });
76
+ return;
77
+ }
78
+ queries.updateSession(sessionId, { process_pid: pid, branch_name: branchName, worktree_path: worktreePath });
79
+ const logMsg = useWorktree
80
+ ? `Started ${adapter.displayName} (PID: ${pid}) on branch ${branchName} [interactive]`
81
+ : `Started ${adapter.displayName} (PID: ${pid}) [interactive]`;
82
+ queries.createSessionLog(sessionId, 'output', logMsg);
83
+ broadcaster.broadcast({ type: 'session:status-changed', sessionId, status: 'running' });
84
+ // Handle process exit
85
+ exitPromise.then((exitCode) => {
86
+ const current = queries.getSessionById(sessionId);
87
+ if (current && current.status === 'running') {
88
+ const status = exitCode === 0 ? 'completed' : 'failed';
89
+ const msg = exitCode === 0
90
+ ? `${adapter.displayName} session completed.`
91
+ : `${adapter.displayName} exited with code ${exitCode}.`;
92
+ try {
93
+ queries.updateSessionStatus(sessionId, status);
94
+ queries.createSessionLog(sessionId, exitCode === 0 ? 'output' : 'error', msg);
95
+ queries.updateSession(sessionId, { process_pid: 0 });
96
+ }
97
+ catch {
98
+ try {
99
+ queries.updateSessionStatus(sessionId, status);
100
+ }
101
+ catch { /* ignore */ }
102
+ }
103
+ broadcaster.broadcast({ type: 'session:log', sessionId, message: msg, logType: exitCode === 0 ? 'output' : 'error' });
104
+ broadcaster.broadcast({ type: 'session:status-changed', sessionId, status });
105
+ }
106
+ }).catch(() => {
107
+ try {
108
+ queries.updateSessionStatus(sessionId, 'failed');
109
+ queries.updateSession(sessionId, { process_pid: 0 });
110
+ }
111
+ catch { /* ignore */ }
112
+ broadcaster.broadcast({ type: 'session:status-changed', sessionId, status: 'failed' });
113
+ });
114
+ }
115
+ /**
116
+ * Stop a running session.
117
+ */
118
+ async stopSession(sessionId) {
119
+ const session = queries.getSessionById(sessionId);
120
+ if (!session)
121
+ throw new Error('Session not found');
122
+ if (session.process_pid) {
123
+ await claudeManager.stopClaude(session.process_pid);
124
+ }
125
+ queries.updateSessionStatus(sessionId, 'stopped');
126
+ queries.updateSession(sessionId, { process_pid: 0 });
127
+ queries.createSessionLog(sessionId, 'output', 'Session stopped by user.');
128
+ broadcaster.broadcast({ type: 'session:status-changed', sessionId, status: 'stopped' });
129
+ }
130
+ /**
131
+ * Classify a filtered PTY output line into a log type.
132
+ * Heuristic: ● prefix = assistant response, [Tool: ...] = tool call, else = output.
133
+ */
134
+ classifyPtyLine(line) {
135
+ // Claude TUI response lines start with ● (bullet)
136
+ if (/^●\s/.test(line)) {
137
+ return { logType: 'assistant', message: line.replace(/^●\s*/, '') };
138
+ }
139
+ // Tool call lines: [Tool: Read], ⏺ Read(file_path: ...), etc.
140
+ if (/^\[Tool:\s*\w+\]/.test(line)) {
141
+ const match = line.match(/^\[Tool:\s*(\w+)\]\s*(.*)/);
142
+ if (match) {
143
+ return { logType: 'tool_use', message: JSON.stringify({ tool: match[1], summary: match[2].trim() }) };
144
+ }
145
+ }
146
+ // Tool call variant: ⏺ ToolName (shown in some TUI versions)
147
+ if (/^⏺\s+\w+/.test(line)) {
148
+ const match = line.match(/^⏺\s+(\w+)\s*(.*)/);
149
+ if (match) {
150
+ return { logType: 'tool_use', message: JSON.stringify({ tool: match[1], summary: match[2].trim() }) };
151
+ }
152
+ }
153
+ return { logType: 'output', message: line };
154
+ }
155
+ /**
156
+ * Stream PTY output to session logs with heuristic classification.
157
+ * Accumulates consecutive assistant lines into a single log entry.
158
+ */
159
+ streamToSessionLogs(sessionId, stdout, stderr) {
160
+ stdout.setEncoding('utf8');
161
+ stderr.setEncoding('utf8');
162
+ // Accumulator for consecutive assistant lines (merged into one block)
163
+ let assistantBuffer = [];
164
+ let assistantFlushTimer = null;
165
+ const flushAssistant = () => {
166
+ if (assistantBuffer.length === 0)
167
+ return;
168
+ const text = assistantBuffer.join('\n');
169
+ assistantBuffer = [];
170
+ try {
171
+ queries.createSessionLog(sessionId, 'assistant', text);
172
+ broadcaster.broadcast({ type: 'session:log', sessionId, message: text, logType: 'assistant' });
173
+ }
174
+ catch { /* session may have been deleted */ }
175
+ };
176
+ const processStdoutLine = (line) => {
177
+ const { logType, message } = this.classifyPtyLine(line);
178
+ if (logType === 'assistant') {
179
+ // Accumulate assistant lines; flush after 300ms gap or on non-assistant line
180
+ assistantBuffer.push(message);
181
+ if (assistantFlushTimer)
182
+ clearTimeout(assistantFlushTimer);
183
+ assistantFlushTimer = setTimeout(flushAssistant, 300);
184
+ return;
185
+ }
186
+ // Non-assistant line: flush any buffered assistant text first
187
+ if (assistantBuffer.length > 0) {
188
+ if (assistantFlushTimer) {
189
+ clearTimeout(assistantFlushTimer);
190
+ assistantFlushTimer = null;
191
+ }
192
+ flushAssistant();
193
+ }
194
+ try {
195
+ queries.createSessionLog(sessionId, logType, message);
196
+ broadcaster.broadcast({ type: 'session:log', sessionId, message, logType });
197
+ }
198
+ catch { /* session may have been deleted */ }
199
+ };
200
+ let stdoutBuffer = '';
201
+ stdout.on('data', (chunk) => {
202
+ stdoutBuffer += chunk;
203
+ const lines = stdoutBuffer.split('\n');
204
+ stdoutBuffer = lines.pop() || '';
205
+ for (const line of lines) {
206
+ if (!line.trim())
207
+ continue;
208
+ processStdoutLine(line.trim());
209
+ }
210
+ });
211
+ stdout.on('end', () => {
212
+ if (stdoutBuffer.trim()) {
213
+ processStdoutLine(stdoutBuffer.trim());
214
+ }
215
+ // Flush remaining assistant buffer
216
+ if (assistantFlushTimer) {
217
+ clearTimeout(assistantFlushTimer);
218
+ assistantFlushTimer = null;
219
+ }
220
+ flushAssistant();
221
+ });
222
+ let stderrBuffer = '';
223
+ stderr.on('data', (chunk) => {
224
+ stderrBuffer += chunk;
225
+ const lines = stderrBuffer.split('\n');
226
+ stderrBuffer = lines.pop() || '';
227
+ for (const line of lines) {
228
+ if (!line.trim())
229
+ continue;
230
+ try {
231
+ queries.createSessionLog(sessionId, 'error', line.trim());
232
+ broadcaster.broadcast({ type: 'session:log', sessionId, message: line.trim(), logType: 'error' });
233
+ }
234
+ catch { /* ignore */ }
235
+ }
236
+ });
237
+ stderr.on('end', () => {
238
+ if (stderrBuffer.trim()) {
239
+ try {
240
+ queries.createSessionLog(sessionId, 'error', stderrBuffer.trim());
241
+ broadcaster.broadcast({ type: 'session:log', sessionId, message: stderrBuffer.trim(), logType: 'error' });
242
+ }
243
+ catch { /* ignore */ }
244
+ }
245
+ });
246
+ }
247
+ }
248
+ export const sessionManager = new SessionManager();
249
+ //# sourceMappingURL=session-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/server/services/session-manager.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ export declare class WorktreeManager {
36
36
  * Remove a worktree, delete its branch, and clean up the DB record.
37
37
  * Returns info about what was cleaned up.
38
38
  */
39
- cleanupWorktree(projectPath: string, worktreePath: string, branchName: string): Promise<{
39
+ cleanupWorktree(projectPath: string, worktreePath: string, branchName: string, deleteBranch?: boolean): Promise<{
40
40
  worktreeRemoved: boolean;
41
41
  branchDeleted: boolean;
42
42
  }>;
@@ -105,7 +105,17 @@ export declare class WorktreeManager {
105
105
  gitDiscardAll(dirPath: string): Promise<void>;
106
106
  gitCreateTag(dirPath: string, tagName: string, message?: string, commit?: string): Promise<void>;
107
107
  gitDeleteTag(dirPath: string, tagName: string): Promise<void>;
108
+ gitRenameBranch(dirPath: string, oldName: string, newName: string): Promise<void>;
109
+ gitRebase(dirPath: string, onto: string): Promise<string>;
108
110
  gitDiff(dirPath: string, file?: string, staged?: boolean): Promise<string>;
111
+ getCommitFiles(dirPath: string, commitHash: string): Promise<Array<{
112
+ path: string;
113
+ status: string;
114
+ additions: number;
115
+ deletions: number;
116
+ oldPath?: string;
117
+ }>>;
118
+ getCommitDiff(dirPath: string, commitHash: string, file?: string): Promise<string>;
109
119
  getGitStatus(dirPath: string): Promise<{
110
120
  branch: string;
111
121
  tracking: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-manager.d.ts","sourceRoot":"","sources":["../../../src/server/services/worktree-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-manager.d.ts","sourceRoot":"","sources":["../../../src/server/services/worktree-manager.ts"],"names":[],"mappings":"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"}