saeeol 1.4.1 → 1.4.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
- "version": "1.4.1",
3
+ "version": "1.4.2",
4
4
  "name": "saeeol",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -35,7 +35,7 @@ export const Info = Schema.Struct({
35
35
  export type Info = Types.DeepMutable<Schema.Schema.Type<typeof Info>>
36
36
 
37
37
  const DefaultModelIDs = Schema.Record(Schema.String, Schema.String)
38
- export const ListResult = Schema.Struct({ all: Schema.Array(Info), default: DefaultModelIDs, connected: Schema.Array(Schema.String), failed: Schema.Array(Schema.String) }).pipe(withStatics((s) => ({ zod: zod(s) })))
38
+ export const ListResult = Schema.Struct({ all: Schema.Array(Info), default: DefaultModelIDs, connected: Schema.Array(Schema.String), failed: Schema.Array(Schema.String), gateway: Schema.NullOr(Info) }).pipe(withStatics((s) => ({ zod: zod(s) })))
39
39
  export type ListResult = Types.DeepMutable<Schema.Schema.Type<typeof ListResult>>
40
40
  export const ConfigProvidersResult = Schema.Struct({ providers: Schema.Array(Info), default: DefaultModelIDs }).pipe(withStatics((s) => ({ zod: zod(s) })))
41
41
  export type ConfigProvidersResult = Types.DeepMutable<Schema.Schema.Type<typeof ConfigProvidersResult>>
@@ -39,10 +39,11 @@ export const providerHandlers = HttpApiBuilder.group(InstanceHttpApi, "provider"
39
39
  (item, id) => Object.keys(item.models).length > 0 || id in connected || failedSet.has(id),
40
40
  )
41
41
  return {
42
- all: Object.values(validProviders),
42
+ all: Object.values(validProviders).filter((p) => p.id !== "saeeol"),
43
43
  default: Provider.defaultModelIDs(pickBy(validProviders, (item) => Object.keys(item.models ?? {}).length > 0)),
44
- connected: Object.keys(connected),
45
- failed,
44
+ connected: Object.keys(connected).filter((id) => id !== "saeeol"),
45
+ failed: failed.filter((id) => id !== "saeeol"),
46
+ gateway: validProviders["saeeol"] ?? null,
46
47
  }
47
48
  })
48
49
 
@@ -61,10 +61,11 @@ export const ProviderRoutes = lazy(() =>
61
61
  (item, id) => Object.keys(item.models ?? {}).length > 0 || id in connected || failedSet.has(id),
62
62
  )
63
63
  return {
64
- all: Object.values(validProviders),
64
+ all: Object.values(validProviders).filter((p) => p.id !== "saeeol"),
65
65
  default: Provider.defaultModelIDs(pickBy(validProviders, (item) => Object.keys(item.models ?? {}).length > 0)),
66
- connected: Object.keys(connected),
67
- failed,
66
+ connected: Object.keys(connected).filter((id) => id !== "saeeol"),
67
+ failed: failed.filter((id) => id !== "saeeol"),
68
+ gateway: validProviders["saeeol"] ?? null,
68
69
  }
69
70
  }),
70
71
  )
@@ -102,10 +102,10 @@ export const Key = {
102
102
  ctrlU: "\x15",
103
103
  ctrlV: "\x16",
104
104
  ctrlW: "\x17",
105
- ctrlX: "\x18", // leader
105
+ ctrlX: "\x18",
106
106
  ctrlZ: "\x1a",
107
107
  // ctrl+shift
108
- ctrlShiftA: "\x1b[1;6A", // 실제로는 다를 수 있음 — 터미널에 따라 다름
108
+ ctrlShiftA: "\x1b[1;6A",
109
109
  ctrlShiftD: "\x1b[1;6D",
110
110
  ctrlShiftE: "\x1b[1;6E",
111
111
  ctrlPageUp: "\x1b[5;5~",
@@ -180,7 +180,9 @@ export class TuiDriver {
180
180
  async kill() {
181
181
  try {
182
182
  this.pty.kill()
183
- } catch {}
183
+ } catch {
184
+ // process may have already exited
185
+ }
184
186
  }
185
187
 
186
188
  get isExited() {
@@ -255,7 +255,7 @@ describe("TUI walkthrough: input editing", () => {
255
255
  })
256
256
 
257
257
  test("redo: ctrl+.", async () => {
258
- driver.write(Key.ctrlV) // ctrl+. — 재할당 불가하므로 대략적
258
+ driver.write(Key.ctrlV)
259
259
  await driver.wait(200)
260
260
  driver.snapshot("input-redo")
261
261
  expect(driver.errors()).toHaveLength(0)
@@ -263,12 +263,11 @@ describe("TUI walkthrough: input editing", () => {
263
263
 
264
264
  // ── 새 텍스트 입력 후 엔터 ──
265
265
 
266
- test("submit: enter key (does not crash)", async () => {
267
- driver.write(Key.ctrlC) // 클리어
266
+ test("submit: enter key (no crash with dead LLM)", async () => {
267
+ driver.write(Key.ctrlC)
268
268
  await driver.wait(200)
269
269
  driver.write("test message")
270
270
  await driver.wait(200)
271
- // 엔터 — 실제 전송은 안 됨 (LLM 서버 죽음), 크래시만 안 하면 됨
272
271
  driver.write(Key.enter)
273
272
  await driver.wait(1000)
274
273
  driver.snapshot("input-submit")
@@ -253,7 +253,7 @@ describe("TUI walkthrough: slash commands", () => {
253
253
  expect(driver.errors()).toHaveLength(0)
254
254
  })
255
255
 
256
- // ── 공유 (share/unshare는 provider 없이 에러 처리만) ──
256
+ // ── share ──
257
257
 
258
258
  test("/share → share session", async () => {
259
259
  await driver.slash("share")
@@ -69,11 +69,9 @@ describe("TUI walkthrough: system + boot + exit", () => {
69
69
  await driver.wait(6000)
70
70
  })
71
71
 
72
- // ── 시스템 토글 (커맨드 팔레트로 진입) ──
73
- // 이들은 슬래시 명령이 아니라 커맨드 팔레트(ctrl+p)에서 검색으로 선택
72
+ // ── system toggles via command palette ──
74
73
 
75
74
  test("toggle: notifications via palette", async () => {
76
- // 커맨드 팔레트 열고 명령 검색
77
75
  driver.write(Key.ctrlP)
78
76
  await driver.wait(1000)
79
77
  driver.write("notifications")
@@ -1 +0,0 @@
1
- [?9001h[?1004h[?25l]0;● 새얼[?25h
@@ -1 +0,0 @@
1
- [?9001h[?1004h[?25l[?25h
@@ -1,110 +0,0 @@
1
- === input-typed (280 bytes) ===
2
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
3
-
4
-
5
- === input-cursor-lr (280 bytes) ===
6
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
7
-
8
-
9
- === input-cursor-ud (280 bytes) ===
10
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
11
-
12
-
13
- === input-cursor-home-end (280 bytes) ===
14
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
15
-
16
-
17
- === input-ctrl-a (280 bytes) ===
18
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
19
-
20
-
21
- === input-ctrl-e (280 bytes) ===
22
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
23
-
24
-
25
- === input-ctrl-b (280 bytes) ===
26
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
27
-
28
-
29
- === input-ctrl-f (280 bytes) ===
30
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
31
-
32
-
33
- === input-alt-f (280 bytes) ===
34
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
35
-
36
-
37
- === input-alt-b (280 bytes) ===
38
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
39
-
40
-
41
- === input-ctrl-left (280 bytes) ===
42
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
43
-
44
-
45
- === input-ctrl-right (280 bytes) ===
46
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
47
-
48
-
49
- === input-select-lr (280 bytes) ===
50
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
51
-
52
-
53
- === input-select-ud (280 bytes) ===
54
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
55
-
56
-
57
- === input-alt-a (280 bytes) ===
58
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
59
-
60
-
61
- === input-alt-e (280 bytes) ===
62
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
63
-
64
-
65
- === input-backspace (280 bytes) ===
66
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
67
-
68
-
69
- === input-delete (280 bytes) ===
70
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
71
-
72
-
73
- === input-ctrl-k (280 bytes) ===
74
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
75
-
76
-
77
- === input-ctrl-u (280 bytes) ===
78
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
79
-
80
-
81
- === input-ctrl-w (280 bytes) ===
82
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
83
-
84
-
85
- === input-ctrl-d (280 bytes) ===
86
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
87
-
88
-
89
- === input-alt-d (280 bytes) ===
90
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
91
-
92
-
93
- === input-clear-ctrl-c (280 bytes) ===
94
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
95
-
96
-
97
- === input-undo-ctrl-minus (280 bytes) ===
98
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
99
-
100
-
101
- === input-redo (280 bytes) ===
102
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
103
-
104
-
105
- === input-submit (280 bytes) ===
106
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
107
-
108
-
109
- === input-cleanup (280 bytes) ===
110
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
@@ -1,70 +0,0 @@
1
- === leader-l-session-list (280 bytes) ===
2
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
3
-
4
-
5
- === leader-m-model-list (280 bytes) ===
6
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
7
-
8
-
9
- === leader-a-agent-list (280 bytes) ===
10
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
11
-
12
-
13
- === leader-s-status (280 bytes) ===
14
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
15
-
16
-
17
- === leader-t-theme-list (280 bytes) ===
18
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
19
-
20
-
21
- === leader-g-timeline (280 bytes) ===
22
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
23
-
24
-
25
- === leader-b-sidebar-open (280 bytes) ===
26
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
27
-
28
-
29
- === leader-b-sidebar-close (280 bytes) ===
30
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
31
-
32
-
33
- === leader-n-new-session (280 bytes) ===
34
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
35
-
36
-
37
- === leader-c-compact (280 bytes) ===
38
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
39
-
40
-
41
- === leader-h-conceal-toggle (280 bytes) ===
42
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
43
-
44
-
45
- === leader-eq-feedback-up (280 bytes) ===
46
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
47
-
48
-
49
- === leader-minus-feedback-down (280 bytes) ===
50
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
51
-
52
-
53
- === leader-y-copy (280 bytes) ===
54
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
55
-
56
-
57
- === leader-u-undo (280 bytes) ===
58
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
59
-
60
-
61
- === leader-r-redo (280 bytes) ===
62
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
63
-
64
-
65
- === leader-down-child-first (280 bytes) ===
66
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
67
-
68
-
69
- === leader-q-exit (280 bytes) ===
70
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
@@ -1,66 +0,0 @@
1
- === scroll-page-up (280 bytes) ===
2
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
3
-
4
-
5
- === scroll-page-down (280 bytes) ===
6
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
7
-
8
-
9
- === scroll-ctrl-page-up (280 bytes) ===
10
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
11
-
12
-
13
- === scroll-ctrl-page-down (280 bytes) ===
14
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
15
-
16
-
17
- === scroll-ctrl-up (280 bytes) ===
18
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
19
-
20
-
21
- === scroll-ctrl-down (280 bytes) ===
22
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
23
-
24
-
25
- === scroll-ctrl-g-first (280 bytes) ===
26
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
27
-
28
-
29
- === scroll-home (280 bytes) ===
30
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
31
-
32
-
33
- === scroll-end (280 bytes) ===
34
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
35
-
36
-
37
- === nav-tab-agent-next (280 bytes) ===
38
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
39
-
40
-
41
- === nav-shift-tab-agent-prev (280 bytes) ===
42
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
43
-
44
-
45
- === nav-f2-model-next (280 bytes) ===
46
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
47
-
48
-
49
- === nav-shift-f2-model-prev (280 bytes) ===
50
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
51
-
52
-
53
- === nav-ctrl-p-palette (280 bytes) ===
54
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
55
-
56
-
57
- === nav-ctrl-t-variant (280 bytes) ===
58
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
59
-
60
-
61
- === nav-escape-interrupt (280 bytes) ===
62
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
63
-
64
-
65
- === nav-ctrl-d-exit (280 bytes) ===
66
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
@@ -1,146 +0,0 @@
1
- === slash-help (280 bytes) ===
2
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
3
-
4
-
5
- === slash-status (280 bytes) ===
6
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
7
-
8
-
9
- === slash-themes (280 bytes) ===
10
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
11
-
12
-
13
- === slash-models (280 bytes) ===
14
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
15
-
16
-
17
- === slash-agents (280 bytes) ===
18
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
19
-
20
-
21
- === slash-variants (280 bytes) ===
22
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
23
-
24
-
25
- === slash-sessions (280 bytes) ===
26
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
27
-
28
-
29
- === slash-resume (280 bytes) ===
30
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
31
-
32
-
33
- === slash-continue (280 bytes) ===
34
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
35
-
36
-
37
- === slash-new (280 bytes) ===
38
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
39
-
40
-
41
- === slash-clear (280 bytes) ===
42
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
43
-
44
-
45
- === slash-mcps (280 bytes) ===
46
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
47
-
48
-
49
- === slash-mcp-refresh (280 bytes) ===
50
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
51
-
52
-
53
- === slash-connect (280 bytes) ===
54
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
55
-
56
-
57
- === slash-timeline (280 bytes) ===
58
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
59
-
60
-
61
- === slash-compact (280 bytes) ===
62
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
63
-
64
-
65
- === slash-summarize (280 bytes) ===
66
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
67
-
68
-
69
- === slash-rename (280 bytes) ===
70
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
71
-
72
-
73
- === slash-fork (280 bytes) ===
74
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
75
-
76
-
77
- === slash-editor (280 bytes) ===
78
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
79
-
80
-
81
- === slash-skills (280 bytes) ===
82
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
83
-
84
-
85
- === slash-copy (280 bytes) ===
86
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
87
-
88
-
89
- === slash-export (280 bytes) ===
90
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
91
-
92
-
93
- === slash-timestamps (280 bytes) ===
94
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
95
-
96
-
97
- === slash-toggle-timestamps (280 bytes) ===
98
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
99
-
100
-
101
- === slash-thinking (280 bytes) ===
102
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
103
-
104
-
105
- === slash-toggle-thinking (280 bytes) ===
106
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
107
-
108
-
109
- === slash-pointing (280 bytes) ===
110
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
111
-
112
-
113
- === slash-point (280 bytes) ===
114
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
115
-
116
-
117
- === slash-unpointing (280 bytes) ===
118
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
119
-
120
-
121
- === slash-unpoint (280 bytes) ===
122
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
123
-
124
-
125
- === slash-share (280 bytes) ===
126
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
127
-
128
-
129
- === slash-unshare (280 bytes) ===
130
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
131
-
132
-
133
- === slash-undo (280 bytes) ===
134
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
135
-
136
-
137
- === slash-redo (280 bytes) ===
138
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
139
-
140
-
141
- === slash-logs (280 bytes) ===
142
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
143
-
144
-
145
- === slash-quit (280 bytes) ===
146
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
@@ -1,62 +0,0 @@
1
- === boot (280 bytes) ===
2
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
3
-
4
-
5
- === home (280 bytes) ===
6
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
7
-
8
-
9
- === slash-restart (280 bytes) ===
10
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
11
-
12
-
13
- === slash-rs (280 bytes) ===
14
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
15
-
16
-
17
- === toggle-notifications (280 bytes) ===
18
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
19
-
20
-
21
- === toggle-animations (280 bytes) ===
22
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
23
-
24
-
25
- === toggle-file-context (280 bytes) ===
26
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
27
-
28
-
29
- === toggle-paste-summary (280 bytes) ===
30
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
31
-
32
-
33
- === toggle-diffwrap (280 bytes) ===
34
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
35
-
36
-
37
- === toggle-session-dir-filter (280 bytes) ===
38
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
39
-
40
-
41
- === debug-overlay (280 bytes) ===
42
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
43
-
44
-
45
- === console-toggle (280 bytes) ===
46
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
47
-
48
-
49
- === slash-org (280 bytes) ===
50
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
51
-
52
-
53
- === slash-orgs (280 bytes) ===
54
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
55
-
56
-
57
- === slash-switch-org (280 bytes) ===
58
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
59
-
60
-
61
- === slash-q-exit (280 bytes) ===
62
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
@@ -1,122 +0,0 @@
1
- === boot (280 bytes) ===
2
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
3
-
4
-
5
- === home (280 bytes) ===
6
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
7
-
8
-
9
- === command-palette-open (280 bytes) ===
10
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
11
-
12
-
13
- === command-palette-closed (280 bytes) ===
14
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
15
-
16
-
17
- === session-list (280 bytes) ===
18
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
19
-
20
-
21
- === model-selector (280 bytes) ===
22
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
23
-
24
-
25
- === agent-selector (280 bytes) ===
26
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
27
-
28
-
29
- === status (280 bytes) ===
30
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
31
-
32
-
33
- === theme (280 bytes) ===
34
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
35
-
36
-
37
- === slash-help (280 bytes) ===
38
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
39
-
40
-
41
- === slash-status (280 bytes) ===
42
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
43
-
44
-
45
- === slash-models (280 bytes) ===
46
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
47
-
48
-
49
- === slash-agents (280 bytes) ===
50
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
51
-
52
-
53
- === slash-themes (280 bytes) ===
54
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
55
-
56
-
57
- === slash-sessions (280 bytes) ===
58
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
59
-
60
-
61
- === slash-connect (280 bytes) ===
62
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
63
-
64
-
65
- === slash-mcps (280 bytes) ===
66
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
67
-
68
-
69
- === slash-variants (280 bytes) ===
70
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
71
-
72
-
73
- === slash-new (280 bytes) ===
74
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
75
-
76
-
77
- === prompt-typed (280 bytes) ===
78
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
79
-
80
-
81
- === prompt-cleared (280 bytes) ===
82
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
83
-
84
-
85
- === new-session (280 bytes) ===
86
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
87
-
88
-
89
- === sidebar-open (280 bytes) ===
90
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
91
-
92
-
93
- === sidebar-closed (280 bytes) ===
94
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
95
-
96
-
97
- === scroll (280 bytes) ===
98
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
99
-
100
-
101
- === model-cycle-f2 (280 bytes) ===
102
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
103
-
104
-
105
- === agent-cycle-tab (280 bytes) ===
106
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
107
-
108
-
109
- === session-compact (280 bytes) ===
110
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
111
-
112
-
113
- === session-timeline (280 bytes) ===
114
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
115
-
116
-
117
- === cursor-movement (280 bytes) ===
118
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
119
-
120
-
121
- === slash-quit (280 bytes) ===
122
- s service=default e=Export named 'jsx' not found in module 'C:\Users\PC\Desktop\SAEEOL\node_modules\.bun\@opentui+solid@0.2.2+37848aaf691d3d45\node_modules\@opentui\solid\jsx-runtime.d.ts'. exception
@@ -1,520 +0,0 @@
1
- /**
2
- * tui-walkthrough.test.ts — SAEEOL TUI 전체 워크스루
3
- *
4
- * bun-pty로 TUI를 띄우고 모든 화면/단축키를 자동으로 눌러서:
5
- * 1. 에러 없이 렌더링되는지
6
- * 2. 각 다이얼로그가 열리고 닫히는지
7
- * 3. 슬래시 명령이 동작하는지
8
- * 4. 화면 전환이 정상인지
9
- * 5. 세션 생성 → 메시지 흐름이 되는지
10
- *
11
- * API 호출/비용 발생 없음 — LLM 엔드포인트는 죽은 서버로 설정.
12
- */
13
-
14
- import { describe, expect, test, beforeAll, afterAll } from "bun:test"
15
- import { spawn as PtySpawn, type IPty } from "bun-pty"
16
- import { tmpdir, disposeAllInstances } from "../fixture/fixture"
17
- import * as Log from "@saeeol/core/util/log"
18
- import { Flag } from "@saeeol/core/flag/flag"
19
- import path from "path"
20
-
21
- void Log.init({ print: false })
22
-
23
- const BIN = path.resolve(import.meta.dir, "../../bin/saeeol.cjs")
24
-
25
- // ── 유틸리티 ──
26
-
27
- function stripAnsi(s: string): string {
28
- return s
29
- .replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "")
30
- .replace(/\x1b\].*?\x07/g, "")
31
- .replace(/\x1b\[.*?m/g, "")
32
- .replace(/[\x00-\x09\x0b\x0c\x0e-\x1f]/g, "")
33
- }
34
-
35
- // Known issues — 이 패턴은 무시 (해결되면 제거)
36
- const KNOWN_ISSUES = [
37
- /export named 'jsx' not found in module.*@opentui\/solid\/jsx-runtime/i,
38
- /e=Export named 'jsx' not found.*exception/i,
39
- ]
40
-
41
- function hasError(plain: string): string[] {
42
- return plain
43
- .split("\n")
44
- .filter((l) => {
45
- const t = l.trim()
46
- if (!t) return false
47
- // known issue면 무조건 스킵
48
- if (KNOWN_ISSUES.some((re) => re.test(t))) return false
49
- return (
50
- /unhandled|TypeError|ReferenceError|SyntaxError|Cannot find module|Error:/i.test(t) ||
51
- /exception/i.test(t) ||
52
- /\be=\b.*not found/i.test(t) ||
53
- /crashed|fatal|panic/i.test(t)
54
- )
55
- })
56
- }
57
-
58
- // ── TUI 드라이버 ──
59
-
60
- class TuiDriver {
61
- pty: IPty
62
- output = ""
63
- snapshots: Array<{ name: string; raw: string; plain: string }> = []
64
-
65
- constructor(cwd: string) {
66
- this.pty = PtySpawn("node", [BIN, "tui"], {
67
- name: "xterm-256color",
68
- cols: 120,
69
- rows: 30,
70
- cwd,
71
- env: {
72
- ...process.env,
73
- TERM: "xterm-256color",
74
- FORCE_COLOR: "1",
75
- SAEEOL_LLM_PROVIDER: "custom",
76
- SAEEOL_LLM_BASE_URL: "http://localhost:1",
77
- SAEEOL_LLM_API_KEY: "test",
78
- SAEEOL_LLM_MODEL: "test",
79
- },
80
- })
81
- this.pty.onData((data) => {
82
- this.output += data
83
- })
84
- }
85
-
86
- write(s: string) {
87
- this.pty.write(s)
88
- }
89
-
90
- async wait(ms: number) {
91
- await Bun.sleep(ms)
92
- }
93
-
94
- snapshot(name: string) {
95
- const raw = this.output
96
- const plain = stripAnsi(this.output)
97
- this.snapshots.push({ name, raw, plain })
98
- return { raw, plain }
99
- }
100
-
101
- errors(): string[] {
102
- return hasError(stripAnsi(this.output))
103
- }
104
-
105
- async kill() {
106
- try {
107
- this.pty.kill()
108
- } catch {}
109
- }
110
-
111
- /** 특정 텍스트가 화면에 나타날 때까지 대기 */
112
- async waitFor(text: string, timeoutMs = 10000): Promise<boolean> {
113
- const start = Date.now()
114
- while (Date.now() - start < timeoutMs) {
115
- if (stripAnsi(this.output).includes(text)) return true
116
- await Bun.sleep(200)
117
- }
118
- return false
119
- }
120
-
121
- /** leader 키 (ctrl+x) + 후속 키 */
122
- async leader(key: string, delay = 100) {
123
- this.write("\x18") // ctrl+x
124
- await this.wait(delay)
125
- this.write(key)
126
- }
127
-
128
- /** 에스케이프로 다이얼로그 닫기 */
129
- async dismiss(delay = 500) {
130
- this.write("\x1b") // escape
131
- await this.wait(delay)
132
- }
133
- }
134
-
135
- // ── 테스트 ──
136
-
137
- describe("TUI walkthrough: full interaction", () => {
138
- let driver: TuiDriver
139
- let tmp: Awaited<ReturnType<typeof tmpdir>>
140
-
141
- beforeAll(async () => {
142
- tmp = await tmpdir({ git: true, config: {} })
143
- Flag.SAEEOL_EXPERIMENTAL_HTTPAPI = false
144
- })
145
-
146
- afterAll(async () => {
147
- await driver?.kill()
148
- await disposeAllInstances()
149
- Flag.SAEEOL_EXPERIMENTAL_HTTPAPI = true
150
- })
151
-
152
- // ── 1. 부트스트랩 ──
153
-
154
- test("boot: TUI starts without errors", async () => {
155
- driver = new TuiDriver(tmp.path)
156
-
157
- // 서버 시작 + 초기 렌더링 대기
158
- await driver.wait(6000)
159
- driver.snapshot("boot")
160
-
161
- // 에러 없음
162
- expect(driver.errors()).toHaveLength(0)
163
-
164
- // alternate screen 진입
165
- expect(driver.output).toMatch(/\x1b\[\?9001h|\x1b\[\?1004h/)
166
- })
167
-
168
- // ── 2. Home 화면 ──
169
-
170
- test("home: renders content", async () => {
171
- const { plain } = driver.snapshot("home")
172
- expect(plain.length).toBeGreaterThan(0)
173
- expect(driver.errors()).toHaveLength(0)
174
- })
175
-
176
- // ── 3. 커맨드 팔레트 (ctrl+p) ──
177
-
178
- test("command palette: ctrl+p opens, esc closes", async () => {
179
- driver.write("\x10") // ctrl+p
180
- await driver.wait(1000)
181
- driver.snapshot("command-palette-open")
182
- expect(driver.errors()).toHaveLength(0)
183
-
184
- await driver.dismiss()
185
- driver.snapshot("command-palette-closed")
186
- expect(driver.errors()).toHaveLength(0)
187
- })
188
-
189
- // ── 4. 세션 리스트 (leader+l) ──
190
-
191
- test("session list: leader+l opens dialog", async () => {
192
- await driver.leader("l")
193
- await driver.wait(1500)
194
- driver.snapshot("session-list")
195
- expect(driver.errors()).toHaveLength(0)
196
-
197
- await driver.dismiss()
198
- })
199
-
200
- // ── 5. 모델 선택 (leader+m) ──
201
-
202
- test("model selector: leader+m opens dialog", async () => {
203
- await driver.leader("m")
204
- await driver.wait(1500)
205
- driver.snapshot("model-selector")
206
- expect(driver.errors()).toHaveLength(0)
207
-
208
- await driver.dismiss()
209
- })
210
-
211
- // ── 6. 에이전트 선택 (leader+a) ──
212
-
213
- test("agent selector: leader+a opens dialog", async () => {
214
- await driver.leader("a")
215
- await driver.wait(1500)
216
- driver.snapshot("agent-selector")
217
- expect(driver.errors()).toHaveLength(0)
218
-
219
- await driver.dismiss()
220
- })
221
-
222
- // ── 7. 상태 다이얼로그 (leader+s) ──
223
-
224
- test("status dialog: leader+s opens", async () => {
225
- await driver.leader("s")
226
- await driver.wait(1500)
227
- driver.snapshot("status")
228
- expect(driver.errors()).toHaveLength(0)
229
-
230
- await driver.dismiss()
231
- })
232
-
233
- // ── 8. 테마 선택 (leader+t) ──
234
-
235
- test("theme selector: leader+t opens", async () => {
236
- await driver.leader("t")
237
- await driver.wait(1500)
238
- driver.snapshot("theme")
239
- expect(driver.errors()).toHaveLength(0)
240
-
241
- await driver.dismiss()
242
- })
243
-
244
- // ── 9. 슬래시 명령어 ──
245
-
246
- test("slash /help: opens help dialog", async () => {
247
- driver.write("/help")
248
- await driver.wait(500)
249
- driver.write("\r") // enter
250
- await driver.wait(1500)
251
- driver.snapshot("slash-help")
252
- expect(driver.errors()).toHaveLength(0)
253
-
254
- await driver.dismiss()
255
- })
256
-
257
- test("slash /status: opens status", async () => {
258
- driver.write("/status")
259
- await driver.wait(500)
260
- driver.write("\r")
261
- await driver.wait(1500)
262
- driver.snapshot("slash-status")
263
- expect(driver.errors()).toHaveLength(0)
264
-
265
- await driver.dismiss()
266
- })
267
-
268
- test("slash /models: opens model dialog", async () => {
269
- driver.write("/models")
270
- await driver.wait(500)
271
- driver.write("\r")
272
- await driver.wait(1500)
273
- driver.snapshot("slash-models")
274
- expect(driver.errors()).toHaveLength(0)
275
-
276
- await driver.dismiss()
277
- })
278
-
279
- test("slash /agents: opens agent dialog", async () => {
280
- driver.write("/agents")
281
- await driver.wait(500)
282
- driver.write("\r")
283
- await driver.wait(1500)
284
- driver.snapshot("slash-agents")
285
- expect(driver.errors()).toHaveLength(0)
286
-
287
- await driver.dismiss()
288
- })
289
-
290
- test("slash /themes: opens theme dialog", async () => {
291
- driver.write("/themes")
292
- await driver.wait(500)
293
- driver.write("\r")
294
- await driver.wait(1500)
295
- driver.snapshot("slash-themes")
296
- expect(driver.errors()).toHaveLength(0)
297
-
298
- await driver.dismiss()
299
- })
300
-
301
- test("slash /sessions: opens session list", async () => {
302
- driver.write("/sessions")
303
- await driver.wait(500)
304
- driver.write("\r")
305
- await driver.wait(1500)
306
- driver.snapshot("slash-sessions")
307
- expect(driver.errors()).toHaveLength(0)
308
-
309
- await driver.dismiss()
310
- })
311
-
312
- test("slash /connect: opens provider dialog", async () => {
313
- driver.write("/connect")
314
- await driver.wait(500)
315
- driver.write("\r")
316
- await driver.wait(1500)
317
- driver.snapshot("slash-connect")
318
- expect(driver.errors()).toHaveLength(0)
319
-
320
- await driver.dismiss()
321
- })
322
-
323
- test("slash /mcps: opens MCP dialog", async () => {
324
- driver.write("/mcps")
325
- await driver.wait(500)
326
- driver.write("\r")
327
- await driver.wait(1500)
328
- driver.snapshot("slash-mcps")
329
- expect(driver.errors()).toHaveLength(0)
330
-
331
- await driver.dismiss()
332
- })
333
-
334
- test("slash /variants: opens variant dialog", async () => {
335
- driver.write("/variants")
336
- await driver.wait(500)
337
- driver.write("\r")
338
- await driver.wait(1500)
339
- driver.snapshot("slash-variants")
340
- expect(driver.errors()).toHaveLength(0)
341
-
342
- await driver.dismiss()
343
- })
344
-
345
- test("slash /new: navigates home", async () => {
346
- driver.write("/new")
347
- await driver.wait(500)
348
- driver.write("\r")
349
- await driver.wait(1000)
350
- driver.snapshot("slash-new")
351
- expect(driver.errors()).toHaveLength(0)
352
- })
353
-
354
- // ── 10. 프롬프트 입력 ──
355
-
356
- test("prompt: typing and clearing", async () => {
357
- driver.write("hello world")
358
- await driver.wait(500)
359
- driver.snapshot("prompt-typed")
360
- expect(driver.errors()).toHaveLength(0)
361
-
362
- // ctrl+c로 클리어
363
- driver.write("\x03")
364
- await driver.wait(300)
365
- driver.snapshot("prompt-cleared")
366
- expect(driver.errors()).toHaveLength(0)
367
- })
368
-
369
- // ── 11. 새 세션 (leader+n) ──
370
-
371
- test("new session: leader+n navigates home", async () => {
372
- await driver.leader("n")
373
- await driver.wait(1000)
374
- driver.snapshot("new-session")
375
- expect(driver.errors()).toHaveLength(0)
376
- })
377
-
378
- // ── 12. 사이드바 토글 (leader+b) ──
379
-
380
- test("sidebar: leader+b toggles", async () => {
381
- await driver.leader("b")
382
- await driver.wait(800)
383
- driver.snapshot("sidebar-open")
384
- expect(driver.errors()).toHaveLength(0)
385
-
386
- // 다시 토글
387
- await driver.leader("b")
388
- await driver.wait(500)
389
- driver.snapshot("sidebar-closed")
390
- expect(driver.errors()).toHaveLength(0)
391
- })
392
-
393
- // ── 13. 스크롤 키 ──
394
-
395
- test("scroll: page up/down work", async () => {
396
- driver.write("\x1b[5~") // page up
397
- await driver.wait(300)
398
- driver.write("\x1b[6~") // page down
399
- await driver.wait(300)
400
- driver.snapshot("scroll")
401
- expect(driver.errors()).toHaveLength(0)
402
- })
403
-
404
- // ── 14. 모델 사이클 (f2) ──
405
-
406
- test("model cycle: f2 cycles models", async () => {
407
- // f2 키 시퀀스
408
- driver.write("\x1bOQ") // f2 (xterm)
409
- await driver.wait(500)
410
- driver.snapshot("model-cycle-f2")
411
- expect(driver.errors()).toHaveLength(0)
412
- })
413
-
414
- // ── 15. 에이전트 사이클 (tab) ──
415
-
416
- test("agent cycle: tab cycles agents", async () => {
417
- driver.write("\t") // tab
418
- await driver.wait(500)
419
- driver.snapshot("agent-cycle-tab")
420
- expect(driver.errors()).toHaveLength(0)
421
- })
422
-
423
- // ── 16. 세션 콤팩트 (leader+c) ──
424
-
425
- test("compact: leader+c triggers compact", async () => {
426
- await driver.leader("c")
427
- await driver.wait(1000)
428
- driver.snapshot("session-compact")
429
- expect(driver.errors()).toHaveLength(0)
430
- })
431
-
432
- // ── 17. 세션 타임라인 (leader+g) ──
433
-
434
- test("timeline: leader+g opens timeline", async () => {
435
- await driver.leader("g")
436
- await driver.wait(1000)
437
- driver.snapshot("session-timeline")
438
- expect(driver.errors()).toHaveLength(0)
439
-
440
- await driver.dismiss()
441
- })
442
-
443
- // ── 18. 커서 이동 키 ──
444
-
445
- test("cursor: arrow keys and home/end", async () => {
446
- // 입력창에 텍스트 입력 후 커서 이동
447
- driver.write("test input for cursor movement")
448
- await driver.wait(300)
449
-
450
- driver.write("\x1b[D") // left
451
- await driver.wait(100)
452
- driver.write("\x1b[C") // right
453
- await driver.wait(100)
454
- driver.write("\x1b[H") // home
455
- await driver.wait(100)
456
- driver.write("\x1b[F") // end
457
- await driver.wait(100)
458
-
459
- driver.snapshot("cursor-movement")
460
- expect(driver.errors()).toHaveLength(0)
461
-
462
- // 클리어
463
- driver.write("\x03")
464
- await driver.wait(300)
465
- })
466
-
467
- // ── 19. 슬래시 명령어 — 별칭 ──
468
-
469
- test("slash /quit: alias for /exit", async () => {
470
- driver.write("/quit")
471
- await driver.wait(500)
472
- driver.write("\r")
473
- await driver.wait(2000)
474
- driver.snapshot("slash-quit")
475
-
476
- // /quit이 /exit과 동일하게 동작하면 TUI가 종료되어야 함
477
- // 종료되면 에러 없이 프로세스가 끝남
478
- const exited = await Promise.race([
479
- new Promise<boolean>((resolve) => {
480
- driver.pty.onExit(() => resolve(true))
481
- setTimeout(() => resolve(false), 3000)
482
- }),
483
- ])
484
-
485
- if (exited) {
486
- // 정상 종료 — 드라이버를 다시 만들 필요 없음 (이후 테스트 없음)
487
- expect(driver.errors()).toHaveLength(0)
488
- } else {
489
- // 종료 안 됨 — 에스케이프 후 계속
490
- await driver.dismiss()
491
- expect(driver.errors()).toHaveLength(0)
492
- }
493
- })
494
-
495
- // ── 20. 전체 스냅샷 검증 ──
496
-
497
- test("all snapshots: no errors in any screen", async () => {
498
- const allErrors: string[] = []
499
- for (const snap of driver.snapshots) {
500
- const snapErrors = hasError(snap.plain)
501
- if (snapErrors.length > 0) {
502
- allErrors.push(
503
- `[${snap.name}]: ${snapErrors.join("; ")}`,
504
- )
505
- }
506
- }
507
-
508
- // 디버그: 전체 스냅샷 로그 저장
509
- const reportPath = path.join(import.meta.dir, ".tui-walkthrough-report.txt")
510
- const report = driver.snapshots
511
- .map(
512
- (s) =>
513
- `=== ${s.name} (${s.raw.length} bytes) ===\n${s.plain.slice(-500)}`,
514
- )
515
- .join("\n\n")
516
- await Bun.write(reportPath, report)
517
-
518
- expect(allErrors).toHaveLength(0)
519
- })
520
- })