tabby-agentdeck 1.2.0 → 1.2.2

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 (61) hide show
  1. package/CHANGELOG.md +167 -150
  2. package/LICENSE +21 -21
  3. package/README.ko.md +52 -42
  4. package/README.md +52 -42
  5. package/dist/accountBrowser.d.ts +4 -0
  6. package/dist/accountSession.d.ts +22 -0
  7. package/dist/accounts.d.ts +55 -0
  8. package/dist/agents.d.ts +29 -0
  9. package/dist/codexKeys.d.ts +3 -0
  10. package/dist/config.d.ts +12 -20
  11. package/dist/deck.service.d.ts +32 -10
  12. package/dist/i18n/sidebar/af.d.ts +95 -0
  13. package/dist/i18n/sidebar/bg.d.ts +95 -0
  14. package/dist/i18n/sidebar/cs.d.ts +95 -0
  15. package/dist/i18n/sidebar/da.d.ts +95 -0
  16. package/dist/i18n/sidebar/de.d.ts +95 -0
  17. package/dist/i18n/sidebar/es.d.ts +95 -0
  18. package/dist/i18n/sidebar/fr.d.ts +95 -0
  19. package/dist/i18n/sidebar/hr.d.ts +95 -0
  20. package/dist/i18n/sidebar/id.d.ts +95 -0
  21. package/dist/i18n/sidebar/it.d.ts +95 -0
  22. package/dist/i18n/sidebar/ja.d.ts +95 -0
  23. package/dist/i18n/sidebar/pl.d.ts +95 -0
  24. package/dist/i18n/sidebar/pt.d.ts +95 -0
  25. package/dist/i18n/sidebar/ru.d.ts +95 -0
  26. package/dist/i18n/sidebar/sr.d.ts +95 -0
  27. package/dist/i18n/sidebar/sv.d.ts +95 -0
  28. package/dist/i18n/sidebar/tr.d.ts +95 -0
  29. package/dist/i18n/sidebar/uk.d.ts +95 -0
  30. package/dist/i18n/sidebar/zh-CN.d.ts +95 -0
  31. package/dist/i18n/sidebar/zh-TW.d.ts +95 -0
  32. package/dist/i18n.d.ts +20 -4
  33. package/dist/index.d.ts +2 -1
  34. package/dist/index.js +109 -1
  35. package/dist/notify.service.d.ts +16 -0
  36. package/dist/performance.d.ts +13 -0
  37. package/dist/profile.service.d.ts +2 -0
  38. package/dist/runtimeMigration.d.ts +3 -0
  39. package/dist/sessionLedger.service.d.ts +6 -3
  40. package/dist/sessionMailbox.d.ts +31 -0
  41. package/dist/sessionSearch.d.ts +41 -0
  42. package/dist/sessionSearchPanel.d.ts +36 -0
  43. package/dist/sessionSlots.d.ts +9 -0
  44. package/dist/settings.component.d.ts +14 -1
  45. package/dist/sidebarI18n.d.ts +9 -0
  46. package/dist/sidebarLocales.d.ts +1 -0
  47. package/dist/storageEnvironment.d.ts +6 -0
  48. package/dist/storageI18n.d.ts +1 -0
  49. package/dist/storagePaths.d.ts +19 -0
  50. package/dist/storageSettings.d.ts +28 -0
  51. package/dist/viewer.d.ts +2 -0
  52. package/hooks/agentdeck-codex-notify.ps1 +69 -28
  53. package/hooks/agentdeck-hook-trace.ps1 +57 -0
  54. package/hooks/agentdeck-label.js +53 -53
  55. package/hooks/agentdeck-mailbox.mjs +143 -0
  56. package/hooks/agentdeck-notify.ps1 +87 -8
  57. package/hooks/agentdeck-runtime.cjs +20 -0
  58. package/hooks/agentdeck-status.ps1 +33 -33
  59. package/hooks/agentdeck-statusline.mjs +349 -351
  60. package/package.json +75 -70
  61. package/updater/agentdeck-update.ps1 +153 -153
package/CHANGELOG.md CHANGED
@@ -1,150 +1,167 @@
1
- # Changelog
2
-
3
- Every entry below is a released version with a `vX.Y.Z` tag in this repository.
4
- The tag points at the commit that first introduced that version, and `test/tags.test.js` keeps that true.
5
-
6
- Korean release notes for the current version are at the top of [`docs/REFERENCE.ko.md`](docs/REFERENCE.ko.md).
7
-
8
- ## 1.2.0 — 2026-09-17
9
-
10
- - **Shortcuts are editable in the settings window.** Settings → AgentDeck → *Shortcuts* lists the keys
11
- from the front page; press *Change*, then the key. If Tabby itself or AgentDeck already uses it you are
12
- told **what it clashes with** and can pick again or take the key over (it is removed from the other
13
- binding). Names come from every hotkey provider, so stock Tabby actions are named, not just ours.
14
- - **Screen repair is `Ctrl+Shift+R`** (was `Ctrl+Shift+U`). It replaces Tabby's own `rename-tab` the way
15
- new-tab replaces `Ctrl+Shift+T` — rename by double-clicking the sidebar row. A saved `Ctrl-Shift-U`
16
- (the old default, untouched) is migrated; `claimRepairKey: false` undoes the takeover.
17
- - **`Ctrl+Shift+Q` closes the focused split pane.** Tabby ships `close-pane` unbound; on startup it is
18
- filled from `closePaneKey` while empty. Split side by side / top-bottom (`Ctrl+Shift+S` / `D`) are listed
19
- alongside it.
20
- - The front page (README, npm) is now a full-window screenshot plus the shortcut table; the long
21
- document moved to `docs/REFERENCE.md` (Korean: `docs/REFERENCE.ko.md`).
22
- - **Stale hook pins expire.** A hook-reported status is pinned so auto-detection cannot overwrite it,
23
- but hooks have no "session ended" event — Ctrl+C, closing the window or a CLI crash used to leave a
24
- row stuck on `running` forever. The pin now expires after `staleAfterMs` (5 min default) of no
25
- hook report, no output and no working marker. `waiting` and `limited` are exempt.
26
- - **`Ctrl+1` … `Ctrl+9` jump to the Nth session in sidebar order** — not the tab bar order that
27
- Tabby's own `Alt+1…` uses, which differs once sorting, grouping or search is on.
28
- - Guide screenshots are generated by a script, so they can be rebuilt with one command.
29
- - Release builds no longer ship a source map.
30
-
31
- ## 1.1.3 — 2026-09-14
32
-
33
- - Improved the Codex status-notification hook, and session resume/fork handling.
34
- - Fixed cursor display for Codex on Windows, `Shift+Enter` newline, and scrolling the transcript with the mouse wheel.
35
- - Codex detection now survives a child process changing the console title, and recovers by checking the current
36
- input box, status line and running processes.
37
- - The test run covers the existing suite and the Codex regression suite together.
38
-
39
- ## 1.1.2 — 2026-09-11
40
-
41
- - The updater waits only on **its own instance's PID**. Counting Tabby processes by name meant one other
42
- open window could block updates indefinitely.
43
-
44
- ## 1.1.1 — 2026-09-11
45
-
46
- - Auto-update: closes Tabby, installs, and starts itself back up. Development installs (a link to a source tree)
47
- are detected and left untouched.
48
-
49
- ## 1.1.0 — 2026-09-11
50
-
51
- - **Resume a past session.** Closed Claude Code sessions are listed by the prompt you actually typed, and reopen
52
- with `claude --resume` in their own working folder.
53
- - Version handling unified — `package.json` became the single source and everything else is derived from it.
54
-
55
- ## 0.17.0 — 2026-09-10
56
-
57
- - The preview panel is opened and closed by the user, not by itself. What used to be one follow-mode became
58
- separate `preload` and `auto-open` toggles.
59
-
60
- ## 0.16.0 — 2026-09-10
61
-
62
- - The status hook is exercised for real in tests; pure modules got their own test path; temp-folder leftovers cleaned up.
63
-
64
- ## 0.15.0 — 2026-09-10
65
-
66
- - Fixed a row-width defect in top/bottom docking that had been there since 0.1.0.
67
-
68
- ## 0.14.0 — 2026-09-09
69
-
70
- - The list scrolls by itself when you hold a dragged row at its edge, so off-screen positions are reachable in one gesture.
71
- - New settings surfaced in the settings window.
72
-
73
- ## 0.13.0 — 2026-09-09
74
-
75
- - Keyboard control for the sidebar (`Ctrl+Shift+L`).
76
- - Subagent count on a row (`❖3`).
77
-
78
- ## 0.12.0 — 2026-09-09
79
-
80
- - Drag to reorder, with Tabby's own tab order following.
81
- - A search result inside a collapsed group opens it temporarily.
82
-
83
- ## 0.11.0 — 2026-09-09
84
-
85
- - Regression suite down to zero failures; isolated logs separated; `file:line` reference finished.
86
-
87
- ## 0.10.0 — 2026-09-09
88
-
89
- - Rate-limited state and approval reasons judged from screen text, so they work without a hook.
90
-
91
- ## 0.9.0 — 2026-09-09
92
-
93
- - Gemini CLI support, verified against the real thing.
94
- - Multi-group regression coverage, and a confirmation step when dropping a file on the terminal.
95
-
96
- ## 0.8.0 — 2026-09-08
97
-
98
- - **Session groups** by project.
99
- - **Stage and commit** from the `Changes` tab.
100
-
101
- ## 0.7.0 — 2026-09-08
102
-
103
- - Regression coverage widened from 37 to 74 items.
104
-
105
- ## 0.6.3 — 2026-09-08
106
-
107
- - Fixed a character dropping onto the next line when `Shift+Enter` was pressed mid-composition.
108
-
109
- ## 0.6.2 — 2026-09-08
110
-
111
- - The full regression suite (R1–R37) runs from one command.
112
-
113
- ## 0.6.1 — 2026-09-08
114
-
115
- - Agent profile wiring completed, plus a regression probe (`tools/probe.js`).
116
-
117
- ## 0.6.0 — 2026-09-08
118
-
119
- - **Agent profiles** (Claude Code · Codex · Gemini) — detection rules gathered into one place.
120
-
121
- ## 0.5.0 — 2026-09-08
122
-
123
- - **`Changes` tab** showing the working tree's `git diff`.
124
- - IME composition ordering fixed when writing to the pty.
125
-
126
- ## 0.4.0 — 2026-09-08
127
-
128
- - **Preview panel** — markdown, images, tables and code.
129
-
130
- ## 0.3.0 — 2026-09-08
131
-
132
- - **Rate-limited status**, and returning to `running` after an approval.
133
- - Fixed Korean IME behaviour with `Shift+Enter`, `Home` and `End`.
134
-
135
- ## 0.2.2 — 2026-09-02
136
-
137
- - Removed the UAC/elevation-related code, tooling and documentation.
138
-
139
- ## 0.2.1 — 2026-09-02
140
-
141
- - Hook reports are matched to a tab by process ancestry (PID). Guessing the active tab is gone —
142
- it made every restored session pile onto one tab.
143
-
144
- ## 0.2.0 — 2026-09-02
145
-
146
- - First npm publish.
147
-
148
- ## 0.1.0 — 2026-09-02
149
-
150
- - Initial shape: 4:3 terminal, session sidebar, status detection.
1
+ # Changelog
2
+
3
+ Every entry below is a released version with a `vX.Y.Z` tag in this repository.
4
+ The tag points at the commit that first introduced that version, and `test/tags.test.js` keeps that true.
5
+
6
+ Korean release notes for the current version are at the top of [`docs/REFERENCE.ko.md`](docs/REFERENCE.ko.md).
7
+
8
+ ## 1.2.2 — 2026-09-27
9
+
10
+ - Stabilize Windows Codex screen repair with row-only redraw, duplicate-request
11
+ suppression and guards against stale work reaching replacement sessions.
12
+ - Prevent duplicate session resumes while a tab starts; release pending state
13
+ and subscriptions after startup failure, session replacement or tab closure.
14
+ - Improve named account management, account verification and CLI discovery when
15
+ Tabby inherits an outdated Windows PATH.
16
+ - Add configurable storage locations, runtime migration and Windows environment
17
+ synchronization; protect private account files and populated templates.
18
+ - Improve prompt-time session context, mailbox access without MCP, Codex queued
19
+ question shortcuts, approval detection, hook diagnostics and performance.
20
+ - Display the installed version in the sidebar. Expand isolated regression
21
+ coverage, including real clipboard attachment and live Claude session navigation.
22
+ - Keep PowerShell hook status and diagnostics in the same runtime folder as Node
23
+ when Windows supplies a short (8.3) profile path.
24
+
25
+ ## 1.2.0 — 2026-09-17
26
+
27
+ - **Shortcuts are editable in the settings window.** Settings → AgentDeck → *Shortcuts* lists the keys
28
+ from the front page; press *Change*, then the key. If Tabby itself or AgentDeck already uses it you are
29
+ told **what it clashes with** and can pick again or take the key over (it is removed from the other
30
+ binding). Names come from every hotkey provider, so stock Tabby actions are named, not just ours.
31
+ - **Screen repair is `Ctrl+Shift+R`** (was `Ctrl+Shift+U`). It replaces Tabby's own `rename-tab` the way
32
+ new-tab replaces `Ctrl+Shift+T` — rename by double-clicking the sidebar row. A saved `Ctrl-Shift-U`
33
+ (the old default, untouched) is migrated; `claimRepairKey: false` undoes the takeover.
34
+ - **`Ctrl+Shift+Q` closes the focused split pane.** Tabby ships `close-pane` unbound; on startup it is
35
+ filled from `closePaneKey` while empty. Split side by side / top-bottom (`Ctrl+Shift+S` / `D`) are listed
36
+ alongside it.
37
+ - The front page (README, npm) is now a full-window screenshot plus the shortcut table; the long
38
+ document moved to `docs/REFERENCE.md` (Korean: `docs/REFERENCE.ko.md`).
39
+ - **Stale hook pins expire.** A hook-reported status is pinned so auto-detection cannot overwrite it,
40
+ but hooks have no "session ended" event — Ctrl+C, closing the window or a CLI crash used to leave a
41
+ row stuck on `running` forever. The pin now expires after `staleAfterMs` (5 min default) of no
42
+ hook report, no output and no working marker. `waiting` and `limited` are exempt.
43
+ - **`Ctrl+1` … `Ctrl+9` jump to the Nth session in sidebar order** — not the tab bar order that
44
+ Tabby's own `Alt+1…` uses, which differs once sorting, grouping or search is on.
45
+ - Guide screenshots are generated by a script, so they can be rebuilt with one command.
46
+ - Release builds no longer ship a source map.
47
+
48
+ ## 1.1.3 — 2026-09-14
49
+
50
+ - Improved the Codex status-notification hook, and session resume/fork handling.
51
+ - Fixed cursor display for Codex on Windows, `Shift+Enter` newline, and scrolling the transcript with the mouse wheel.
52
+ - Codex detection now survives a child process changing the console title, and recovers by checking the current
53
+ input box, status line and running processes.
54
+ - The test run covers the existing suite and the Codex regression suite together.
55
+
56
+ ## 1.1.2 — 2026-09-11
57
+
58
+ - The updater waits only on **its own instance's PID**. Counting Tabby processes by name meant one other
59
+ open window could block updates indefinitely.
60
+
61
+ ## 1.1.1 — 2026-09-11
62
+
63
+ - Auto-update: closes Tabby, installs, and starts itself back up. Development installs (a link to a source tree)
64
+ are detected and left untouched.
65
+
66
+ ## 1.1.0 — 2026-09-11
67
+
68
+ - **Resume a past session.** Closed Claude Code sessions are listed by the prompt you actually typed, and reopen
69
+ with `claude --resume` in their own working folder.
70
+ - Version handling unified — `package.json` became the single source and everything else is derived from it.
71
+
72
+ ## 0.17.0 — 2026-09-10
73
+
74
+ - The preview panel is opened and closed by the user, not by itself. What used to be one follow-mode became
75
+ separate `preload` and `auto-open` toggles.
76
+
77
+ ## 0.16.0 — 2026-09-10
78
+
79
+ - The status hook is exercised for real in tests; pure modules got their own test path; temp-folder leftovers cleaned up.
80
+
81
+ ## 0.15.0 — 2026-09-10
82
+
83
+ - Fixed a row-width defect in top/bottom docking that had been there since 0.1.0.
84
+
85
+ ## 0.14.0 — 2026-09-09
86
+
87
+ - The list scrolls by itself when you hold a dragged row at its edge, so off-screen positions are reachable in one gesture.
88
+ - New settings surfaced in the settings window.
89
+
90
+ ## 0.13.0 — 2026-09-09
91
+
92
+ - Keyboard control for the sidebar (`Ctrl+Shift+L`).
93
+ - Subagent count on a row (`❖3`).
94
+
95
+ ## 0.12.0 — 2026-09-09
96
+
97
+ - Drag to reorder, with Tabby's own tab order following.
98
+ - A search result inside a collapsed group opens it temporarily.
99
+
100
+ ## 0.11.0 — 2026-09-09
101
+
102
+ - Regression suite down to zero failures; isolated logs separated; `file:line` reference finished.
103
+
104
+ ## 0.10.0 — 2026-09-09
105
+
106
+ - Rate-limited state and approval reasons judged from screen text, so they work without a hook.
107
+
108
+ ## 0.9.0 — 2026-09-09
109
+
110
+ - Gemini CLI support, verified against the real thing.
111
+ - Multi-group regression coverage, and a confirmation step when dropping a file on the terminal.
112
+
113
+ ## 0.8.0 — 2026-09-08
114
+
115
+ - **Session groups** by project.
116
+ - **Stage and commit** from the `Changes` tab.
117
+
118
+ ## 0.7.0 — 2026-09-08
119
+
120
+ - Regression coverage widened from 37 to 74 items.
121
+
122
+ ## 0.6.3 — 2026-09-08
123
+
124
+ - Fixed a character dropping onto the next line when `Shift+Enter` was pressed mid-composition.
125
+
126
+ ## 0.6.2 — 2026-09-08
127
+
128
+ - The full regression suite (R1–R37) runs from one command.
129
+
130
+ ## 0.6.1 — 2026-09-08
131
+
132
+ - Agent profile wiring completed, plus a regression probe (`tools/probe.js`).
133
+
134
+ ## 0.6.0 — 2026-09-08
135
+
136
+ - **Agent profiles** (Claude Code · Codex · Gemini) — detection rules gathered into one place.
137
+
138
+ ## 0.5.0 — 2026-09-08
139
+
140
+ - **`Changes` tab** showing the working tree's `git diff`.
141
+ - IME composition ordering fixed when writing to the pty.
142
+
143
+ ## 0.4.0 — 2026-09-08
144
+
145
+ - **Preview panel** — markdown, images, tables and code.
146
+
147
+ ## 0.3.0 — 2026-09-08
148
+
149
+ - **Rate-limited status**, and returning to `running` after an approval.
150
+ - Fixed Korean IME behaviour with `Shift+Enter`, `Home` and `End`.
151
+
152
+ ## 0.2.2 — 2026-09-02
153
+
154
+ - Removed the UAC/elevation-related code, tooling and documentation.
155
+
156
+ ## 0.2.1 — 2026-09-02
157
+
158
+ - Hook reports are matched to a tab by process ancestry (PID). Guessing the active tab is gone —
159
+ it made every restored session pile onto one tab.
160
+
161
+ ## 0.2.0 — 2026-09-02
162
+
163
+ - First npm publish.
164
+
165
+ ## 0.1.0 — 2026-09-02
166
+
167
+ - Initial shape: 4:3 terminal, session sidebar, status detection.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 junggon
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 junggon
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.ko.md CHANGED
@@ -1,42 +1,52 @@
1
- # tabby-agentdeck
2
-
3
- [![npm](https://img.shields.io/npm/v/tabby-agentdeck)](https://www.npmjs.com/package/tabby-agentdeck)
4
- [![downloads](https://img.shields.io/npm/dm/tabby-agentdeck)](https://www.npmjs.com/package/tabby-agentdeck)
5
- [![CI](https://github.com/jghwang2/tabby-agentdeck/actions/workflows/ci.yml/badge.svg)](https://github.com/jghwang2/tabby-agentdeck/actions/workflows/ci.yml)
6
- [![license](https://img.shields.io/npm/l/tabby-agentdeck)](LICENSE)
7
-
8
- **[웹사이트](https://jghwang2.github.io/tabby-agentdeck/ko.html) · [사용 설명서](https://jghwang2.github.io/tabby-agentdeck/guide/ko.html) · [전체 레퍼런스](docs/REFERENCE.ko.md) · [English](README.md)**
9
-
10
- **Claude Code · Codex · Gemini CLI 를 탭 여러 개에 띄워 두고 쓰는 사람**을 위한 [Tabby](https://tabby.sh) 플러그인.
11
- 4:3 터미널, 상태가 실시간으로 보이는 세션 목록, 에이전트 결과물 미리보기 패널.
12
-
13
- ![tabby-agentdeck — 터미널, 미리보기 패널, 세션 목록](docs/guide/img/00-full.png)
14
-
15
- ## 단축키
16
-
17
- | 키 | 동작 |
18
- |---|---|
19
- | `Ctrl+Shift+T` (⌘+T) | 작업 루트에 새 탭. Tabby 순정 새 탭을 대체 |
20
- | `Ctrl+1` … `Ctrl+9` | 사이드바 순서로 N 번째 세션으로 바로 이동 |
21
- | `Ctrl+Shift+L` | 세션 목록에 포커스 / 같은 키로 터미널 복귀. 이어서 `↑↓` 이동, `Enter` 선택, `Esc` 나가기 |
22
- | `Ctrl+W` | 지금 탭 닫기 (목록이 키보드를 가졌으면 포커스 줄) |
23
- | `Ctrl+Shift+O` | 미리보기 패널 여닫기 |
24
- | `Ctrl+Shift+R` | 화면 복구 (`↻` 와 같다). 순정 탭 이름 바꾸기를 대체 — 이름은 줄 더블클릭으로 |
25
- | `Ctrl+Shift+S` | 좌우로 분할 (Tabby 순정) |
26
- | `Ctrl+Shift+D` | 위아래로 분할 (Tabby 순정) |
27
- | `Ctrl+Shift+Q` | 포커스된 분할 패널 닫기 |
28
- | `Ctrl+Enter` / `Shift+Enter` | 전송하지 않고 줄바꿈 |
29
- | `Ctrl+V` | 붙여넣기. 클립보드에 이미지만 있으면 이미지로 에이전트에 넘긴다 |
30
- | 우클릭 | 선택이 있으면 복사, 없으면 붙여넣기. 길게 누르면 컨텍스트 메뉴 |
31
- | `Ctrl+F` / `Ctrl+S` | 미리보기 패널 안에서 찾기 / 저장 |
32
-
33
- 배정되지 않은 것은 둘: `agentdeck-toggle`(사이드바 / 4:3 즉시 on-off), `agentdeck-view-mode`(파일 ↔ 변경).
34
- **설정 → AgentDeck → 단축키** 에서 바꾼다 — Tabby 순정이나 AgentDeck 이 이미 쓰는 키면 적용 전에 무엇과 겹치는지 알려 준다. Tabby 설정 → 단축키 → `agentdeck-*` 로도 된다.
35
-
36
- ## 설치
37
-
38
- Tabby 안에서: 설정 → 플러그인 → `agentdeck` 검색 → 설치 → Tabby 재시작.
39
- 그 외 — 상태·그룹·미리보기 패널·diff 와 커밋·지난 세션 이어받기·설정 — 은
40
- [사용 설명서](https://jghwang2.github.io/tabby-agentdeck/guide/ko.html)와 [전체 레퍼런스](docs/REFERENCE.ko.md)에 있다.
41
-
42
- Windows 에서 만들고 검증했다. MIT.
1
+ # tabby-agentdeck
2
+
3
+ [![npm](https://img.shields.io/npm/v/tabby-agentdeck)](https://www.npmjs.com/package/tabby-agentdeck)
4
+ [![downloads](https://img.shields.io/npm/dm/tabby-agentdeck)](https://www.npmjs.com/package/tabby-agentdeck)
5
+ [![CI](https://github.com/jghwang2/tabby-agentdeck/actions/workflows/ci.yml/badge.svg)](https://github.com/jghwang2/tabby-agentdeck/actions/workflows/ci.yml)
6
+ [![license](https://img.shields.io/npm/l/tabby-agentdeck)](LICENSE)
7
+
8
+ **[웹사이트](https://jghwang2.github.io/tabby-agentdeck/ko.html) · [사용 설명서](https://jghwang2.github.io/tabby-agentdeck/guide/ko.html) · [전체 레퍼런스](docs/REFERENCE.ko.md) · [English](README.md)**
9
+
10
+ **Claude Code · Codex · Gemini CLI 를 탭 여러 개에 띄워 두고 쓰는 사람**을 위한 [Tabby](https://tabby.sh) 플러그인.
11
+ 4:3 터미널, 상태가 실시간으로 보이는 세션 목록, 에이전트 결과물 미리보기 패널.
12
+
13
+ ![tabby-agentdeck — 터미널, 미리보기 패널, 세션 목록](docs/guide/img/00-full.png)
14
+
15
+ ## 단축키
16
+
17
+ | 키 | 동작 |
18
+ |---|---|
19
+ | `Ctrl+T` (⌘+T) | 작업 루트에 새 탭 |
20
+ | `Ctrl+1` … `Ctrl+9` | 고정 세션 번호 1~9로 이동 (필터·다른 세션 종료에도 번호 유지) |
21
+ | `Ctrl+L` | 세션 목록에 포커스 / 같은 키로 터미널 복귀. 이어서 `↑↓` 이동, `Enter` 선택, `Esc` 나가기 |
22
+ | `Ctrl+W` | 지금 탭 닫기 (목록이 키보드를 가졌으면 포커스 줄) |
23
+ | `Ctrl+O` | 미리보기 패널 여닫기 |
24
+ | `Ctrl+R` | 화면 복구 (`↻` 와 같다). 탭 이름은 줄 더블클릭으로 변경 |
25
+ | `Ctrl+S` | 좌우로 분할 (Tabby 순정) |
26
+ | `Ctrl+D` | 위아래로 분할 (Tabby 순정) |
27
+ | `Ctrl+Q` | 포커스된 분할 패널 닫기 |
28
+ | `Ctrl+Enter` / `Shift+Enter` | 전송하지 않고 줄바꿈 |
29
+ | `Ctrl+V` | 붙여넣기. 클립보드에 이미지만 있으면 이미지로 에이전트에 넘긴다 |
30
+ | 우클릭 | 선택이 있으면 복사, 없으면 붙여넣기. 길게 누르면 컨텍스트 메뉴 |
31
+ | `Ctrl+F` / `Ctrl+S` | 미리보기 패널 안에서 찾기 / 저장 |
32
+
33
+ 배정되지 않은 것은 둘: `agentdeck-toggle`(사이드바 / 4:3 즉시 on-off), `agentdeck-view-mode`(파일 ↔ 변경).
34
+ **설정 → AgentDeck → 단축키** 에서 바꾼다 — Tabby 순정이나 AgentDeck 이 이미 쓰는 키면 적용 전에 무엇과 겹치는지 알려 준다. Tabby 설정 → 단축키 → `agentdeck-*` 로도 된다.
35
+ 위 표는 새 설치의 기본값이다. 기존 AgentDeck 단축키는 저장된 값을 유지하며, 각 항목의 **기본값** 버튼으로 새 키를 적용한다. 순정 분할 키 `Ctrl+Shift+S` / `Ctrl+Shift+D`는 `Ctrl+S` / `Ctrl+D`로 바꾸고, 직접 지정한 분할 키는 유지한다.
36
+
37
+ ## 지난 대화 검색
38
+
39
+ **지난 세션**을 펼치고 전용 검색창에 함수명·오류코드·파일명·세션 ID를 입력한다. 저장된 Claude·Codex 대화의 질문과 답변에서 대소문자 구분 없이 입력한 문자열 그대로 찾는다. 결과를 누르면 일치한 대화가 미리 열리고, **이어서 대화**를 눌러 재개한다. 현재 탭 검색과는 별도다.
40
+
41
+ 검색은 로컬 Node.js 백그라운드 프로세스로 실행하고, 기록이 바뀌면 디스크 캐시를 갱신한다. PATH에서 Node.js를 실행할 수 있어야 한다. MCP 연결이나 AI 요청은 필요 없다. 도구 출력과 시스템 안내는 제외한다. 범위와 저장 위치는 [검색 안내](docs/HISTORY-SEARCH.md)를 참고한다.
42
+
43
+ ## 설치
44
+
45
+ Tabby 안에서: 설정 → 플러그인 → `agentdeck` 검색 → 설치 → Tabby 재시작.
46
+ 세션은 1~9 고정 번호를 사용하며 빈 번호를 재사용합니다. 자동 정렬과 드래그 순서 이동은 사용하지 않습니다.
47
+ 선택적으로 연결하는 [세션 통신 MCP](docs/SESSION-COMMUNICATION.md)는 실제 세션 ID로만 송수신합니다. 사람용 번호는 MCP 주소가 아닙니다.
48
+
49
+ 그 외 — 상태·미리보기 패널·diff 와 커밋·지난 세션 이어받기·설정 — 은
50
+ [사용 설명서](https://jghwang2.github.io/tabby-agentdeck/guide/ko.html)와 [전체 레퍼런스](docs/REFERENCE.ko.md)에 있다.
51
+
52
+ Windows 에서 만들고 검증했다. MIT.
package/README.md CHANGED
@@ -1,42 +1,52 @@
1
- # tabby-agentdeck
2
-
3
- [![npm](https://img.shields.io/npm/v/tabby-agentdeck)](https://www.npmjs.com/package/tabby-agentdeck)
4
- [![downloads](https://img.shields.io/npm/dm/tabby-agentdeck)](https://www.npmjs.com/package/tabby-agentdeck)
5
- [![CI](https://github.com/jghwang2/tabby-agentdeck/actions/workflows/ci.yml/badge.svg)](https://github.com/jghwang2/tabby-agentdeck/actions/workflows/ci.yml)
6
- [![license](https://img.shields.io/npm/l/tabby-agentdeck)](LICENSE)
7
-
8
- **[Website](https://jghwang2.github.io/tabby-agentdeck/) · [User guide](https://jghwang2.github.io/tabby-agentdeck/guide/) · [Full reference](docs/REFERENCE.md) · [한국어](README.ko.md)**
9
-
10
- A [Tabby](https://tabby.sh) plugin for people who keep **Claude Code, Codex and Gemini CLI open in several tabs at once**.
11
- A 4:3 terminal, a session deck with live status, and a preview panel for what the agents produce.
12
-
13
- ![tabby-agentdeck — terminal, preview panel and session deck](docs/guide/img/00-full.png)
14
-
15
- ## Keys
16
-
17
- | Key | What it does |
18
- |---|---|
19
- | `Ctrl+Shift+T` (⌘+T) | New tab in the work root. Replaces Tabby's own new-tab |
20
- | `Ctrl+1` … `Ctrl+9` | Jump to the Nth session in sidebar order |
21
- | `Ctrl+Shift+L` | Focus the session list / same key returns to the terminal. Then `↑↓` walk, `Enter` picks, `Esc` leaves |
22
- | `Ctrl+W` | Close the current tab (the focused row when the list has the keyboard) |
23
- | `Ctrl+Shift+O` | Open / close the preview panel |
24
- | `Ctrl+Shift+R` | Screen repair (same as `↻`). Replaces Tabby's own rename-tab — rename by double-clicking the row |
25
- | `Ctrl+Shift+S` | Split side by side (Tabby's own) |
26
- | `Ctrl+Shift+D` | Split top / bottom (Tabby's own) |
27
- | `Ctrl+Shift+Q` | Close the focused split pane |
28
- | `Ctrl+Enter` / `Shift+Enter` | Newline without sending |
29
- | `Ctrl+V` | Paste. An image-only clipboard is handed to the agent as an image |
30
- | Right-click | Copy with a selection, paste without one. Hold for the context menu |
31
- | `Ctrl+F` / `Ctrl+S` | Find / save inside the preview panel |
32
-
33
- Two actions ship unbound: `agentdeck-toggle` (sidebar / 4:3 on-off) and `agentdeck-view-mode` (Files ↔ Changes).
34
- Change any of them under **Settings → AgentDeck → Shortcuts** — a key already used by Tabby or AgentDeck is flagged before it is applied. Tabby Settings → Hotkeys → `agentdeck-*` works too.
35
-
36
- ## Install
37
-
38
- Inside Tabby: Settings → Plugins → search `agentdeck` → Install → restart Tabby.
39
- Everything else — status, groups, preview panel, diff and commit, resuming sessions, settings — is in the
40
- [user guide](https://jghwang2.github.io/tabby-agentdeck/guide/) and the [full reference](docs/REFERENCE.md).
41
-
42
- Built and verified on Windows. MIT.
1
+ # tabby-agentdeck
2
+
3
+ [![npm](https://img.shields.io/npm/v/tabby-agentdeck)](https://www.npmjs.com/package/tabby-agentdeck)
4
+ [![downloads](https://img.shields.io/npm/dm/tabby-agentdeck)](https://www.npmjs.com/package/tabby-agentdeck)
5
+ [![CI](https://github.com/jghwang2/tabby-agentdeck/actions/workflows/ci.yml/badge.svg)](https://github.com/jghwang2/tabby-agentdeck/actions/workflows/ci.yml)
6
+ [![license](https://img.shields.io/npm/l/tabby-agentdeck)](LICENSE)
7
+
8
+ **[Website](https://jghwang2.github.io/tabby-agentdeck/) · [User guide](https://jghwang2.github.io/tabby-agentdeck/guide/) · [Full reference](docs/REFERENCE.md) · [한국어](README.ko.md)**
9
+
10
+ A [Tabby](https://tabby.sh) plugin for people who keep **Claude Code, Codex and Gemini CLI open in several tabs at once**.
11
+ A 4:3 terminal, a session deck with live status, and a preview panel for what the agents produce.
12
+
13
+ ![tabby-agentdeck — terminal, preview panel and session deck](docs/guide/img/00-full.png)
14
+
15
+ ## Keys
16
+
17
+ | Key | What it does |
18
+ |---|---|
19
+ | `Ctrl+T` (⌘+T) | New tab in the work root |
20
+ | `Ctrl+1` … `Ctrl+9` | Select fixed session slot 1–9 (unchanged by filtering or closing another session) |
21
+ | `Ctrl+L` | Focus the session list / same key returns to the terminal. Then `↑↓` walk, `Enter` picks, `Esc` leaves |
22
+ | `Ctrl+W` | Close the current tab (the focused row when the list has the keyboard) |
23
+ | `Ctrl+O` | Open / close the preview panel |
24
+ | `Ctrl+R` | Screen repair (same as `↻`). Rename tabs by double-clicking the row |
25
+ | `Ctrl+S` | Split side by side (Tabby's own) |
26
+ | `Ctrl+D` | Split top / bottom (Tabby's own) |
27
+ | `Ctrl+Q` | Close the focused split pane |
28
+ | `Ctrl+Enter` / `Shift+Enter` | Newline without sending |
29
+ | `Ctrl+V` | Paste. An image-only clipboard is handed to the agent as an image |
30
+ | Right-click | Copy with a selection, paste without one. Hold for the context menu |
31
+ | `Ctrl+F` / `Ctrl+S` | Find / save inside the preview panel |
32
+
33
+ Two actions ship unbound: `agentdeck-toggle` (sidebar / 4:3 on-off) and `agentdeck-view-mode` (Files ↔ Changes).
34
+ Change any of them under **Settings → AgentDeck → Shortcuts** — a key already used by Tabby or AgentDeck is flagged before it is applied. Tabby Settings → Hotkeys → `agentdeck-*` works too.
35
+ These are the defaults for new installs. Existing AgentDeck shortcuts stay as saved; use **Default** beside an action to adopt its new binding. Stock split shortcuts `Ctrl+Shift+S` / `Ctrl+Shift+D` switch to `Ctrl+S` / `Ctrl+D`; custom split bindings are preserved.
36
+
37
+ ## Search past conversations
38
+
39
+ Expand **Past sessions** and use its search box to find a function name, error code, file name, or session ID. Search matches literal text without case sensitivity in saved Claude/Codex questions and answers. Select a result to preview the matching conversation; **Resume conversation** continues it. The active-tab filter remains separate.
40
+
41
+ Search runs locally in a background Node.js process, with a disk cache refreshed when transcripts change. Node.js must be available on PATH. It requires no MCP connection or AI request. Tool output and system instructions are excluded. See [history search](docs/HISTORY-SEARCH.md) for scope and storage.
42
+
43
+ ## Install
44
+
45
+ Inside Tabby: Settings → Plugins → search `agentdeck` → Install → restart Tabby.
46
+ Sessions use reusable fixed slots 1–9; automatic sorting and drag reordering are disabled.
47
+ The optional [session communication MCP](docs/SESSION-COMMUNICATION.md) sends and receives by actual session ID only. Human numbers never address the MCP server.
48
+
49
+ Everything else — status, preview panel, diff and commit, resuming sessions, settings — is in the
50
+ [user guide](https://jghwang2.github.io/tabby-agentdeck/guide/) and the [full reference](docs/REFERENCE.md).
51
+
52
+ Built and verified on Windows. MIT.
@@ -0,0 +1,4 @@
1
+ import { LoginBrowser } from './accounts';
2
+ export declare function loginOriginAllowed(provider: string, raw: string): boolean;
3
+ /** Use the real browser so SSO, passkeys and additional verification remain available. */
4
+ export declare const openAccountBrowser: LoginBrowser;
@@ -0,0 +1,22 @@
1
+ import { SavedAccount, AccountQuota } from './accounts';
2
+ import { MetaInput } from './meta';
3
+ export interface QuotaSnapshot {
4
+ values: AccountQuota[];
5
+ ts: number;
6
+ stale: boolean;
7
+ }
8
+ export declare function registerAccountSource(account: SavedAccount, home?: string): void;
9
+ /** Select only identity-checked credentials. A newer live CLI token wins over an old private copy. */
10
+ export declare function synchronizeClaudeAuth(account: SavedAccount): string;
11
+ export declare function ensureAccountSession(account: SavedAccount, forceRefresh?: boolean): Promise<void>;
12
+ export declare function cachedAccountQuotas(account: SavedAccount): QuotaSnapshot | null;
13
+ export declare function recordAccountUsage(account: SavedAccount, meta: MetaInput & {
14
+ ts?: number;
15
+ configDir?: string;
16
+ }): void;
17
+ export declare function getAccountQuotas(account: SavedAccount): Promise<QuotaSnapshot>;
18
+ /** Runs without opening login windows or issuing usage requests; the CLI remains the live source of truth. */
19
+ export declare function maintainAccountSessions(metas?: (MetaInput & {
20
+ ts?: number;
21
+ configDir?: string;
22
+ })[]): Promise<void>;