@relace-ai/jacq 0.1.2-beta.5 → 0.1.2-beta.7

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.
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Model Picker Component — overlay for switching LLM models
3
+ */
4
+ import { drawText, drawHLine } from './primitives.js';
5
+ import { markDirty } from '../state.js';
6
+ import { setModel } from '../protocol.js';
7
+ const MIN_HEIGHT = 6;
8
+ const modelPicker = {
9
+ height(state) {
10
+ const models = state.availableModels || [];
11
+ return Math.max(MIN_HEIGHT, models.length + 5);
12
+ },
13
+ draw(screen, y, state, layout, styles) {
14
+ const width = layout.width;
15
+ const models = state.availableModels || [];
16
+ drawHLine(screen, 0, y, width, styles.border);
17
+ drawText(screen, 2, y + 1, 'Select Model', styles.title);
18
+ if (models.length === 0) {
19
+ drawText(screen, 4, y + 3, 'No models available', styles.dim);
20
+ return;
21
+ }
22
+ for (let i = 0; i < models.length; i++) {
23
+ const model = models[i];
24
+ const isSelected = state.modelPickerIndex === i;
25
+ const isCurrent = model.id === state.currentModelId;
26
+ const row = y + 3 + i;
27
+ const prefix = isSelected ? ' \u276F ' : ' ';
28
+ drawText(screen, 0, row, prefix, styles.value);
29
+ let col = 4;
30
+ if (isCurrent) {
31
+ drawText(screen, col, row, '\u2713 ', styles.value);
32
+ col += 2;
33
+ }
34
+ drawText(screen, col, row, model.name, isSelected ? styles.title : styles.text);
35
+ const modelIdStr = ` (${model.modelId})`;
36
+ drawText(screen, col + model.name.length, row, modelIdStr, styles.dim);
37
+ }
38
+ const footerY = y + 3 + models.length + 1;
39
+ drawText(screen, 2, footerY, 'Enter to select \u00b7 Esc to close', styles.dim);
40
+ },
41
+ handleKey(str, key, state) {
42
+ const models = state.availableModels || [];
43
+ if (key.name === 'escape') {
44
+ state.overlay = null;
45
+ markDirty();
46
+ return { handled: true };
47
+ }
48
+ if (key.name === 'up') {
49
+ if (models.length > 0) {
50
+ state.modelPickerIndex = Math.max(0, state.modelPickerIndex - 1);
51
+ markDirty();
52
+ }
53
+ return { handled: true };
54
+ }
55
+ if (key.name === 'down') {
56
+ if (models.length > 0) {
57
+ state.modelPickerIndex = Math.min(models.length - 1, state.modelPickerIndex + 1);
58
+ markDirty();
59
+ }
60
+ return { handled: true };
61
+ }
62
+ if (key.name === 'return' && models.length > 0) {
63
+ const selected = models[state.modelPickerIndex];
64
+ if (selected) {
65
+ state.overlay = null;
66
+ markDirty();
67
+ setModel(selected.id);
68
+ }
69
+ return { handled: true };
70
+ }
71
+ return { handled: true }; // Consume all keys when overlay is open
72
+ },
73
+ };
74
+ export default modelPicker;
75
+ //# sourceMappingURL=modelPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelPicker.js","sourceRoot":"","sources":["../../src/ui/modelPicker.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,8 @@ const welcome = {
16
16
  return;
17
17
  const width = layout.width;
18
18
  const totalWidth = Math.min(width - 2, 90);
19
- const unitWidth = Math.floor(totalWidth / 10);
20
- const leftWidth = unitWidth * 4;
21
- const midWidth = unitWidth * 3;
22
- const rightWidth = totalWidth - leftWidth - midWidth;
19
+ const leftWidth = Math.floor(totalWidth / 2);
20
+ const midWidth = totalWidth - leftWidth;
23
21
  const startX = 1;
24
22
  // Left box — branding + connection
25
23
  drawBox(screen, startX, y, leftWidth, BOX_HEIGHT, styles.border);
@@ -30,12 +28,13 @@ const welcome = {
30
28
  drawText(screen, titleX, y + 1, title, styles.title);
31
29
  drawText(screen, titleX + title.length, y + 1, subtitle, styles.dim);
32
30
  const infoX = startX + 2;
31
+ const maxValueWidth = leftWidth - 12;
33
32
  drawText(screen, infoX, y + 3, 'Version:', styles.label);
34
33
  drawText(screen, infoX + 9, y + 3, `v${CLIENT_VERSION}`, styles.dim);
35
34
  drawText(screen, infoX, y + 4, 'Status:', styles.label);
36
35
  if (state.authInProgress) {
37
36
  const dot = state.blinkVisible ? '○' : '●';
38
- drawText(screen, infoX + 8, y + 4, `${dot} ${state.authMessage || 'Authenticating...'}`, styles.dim);
37
+ drawText(screen, infoX + 8, y + 4, `${dot} ${state.authMessage || 'Authenticating...'}`, styles.dim, maxValueWidth);
39
38
  }
40
39
  else if (!state.authenticated) {
41
40
  if (state.authDenied) {
@@ -48,6 +47,9 @@ const welcome = {
48
47
  else if (state.connected) {
49
48
  drawText(screen, infoX + 8, y + 4, 'Connected', styles.connected);
50
49
  }
50
+ else if (state.wasConnected) {
51
+ drawText(screen, infoX + 8, y + 4, 'Disconnected', styles.dim);
52
+ }
51
53
  else {
52
54
  const dot = state.blinkVisible ? '○' : '●';
53
55
  drawText(screen, infoX + 8, y + 4, `${dot} Connecting`, styles.dim);
@@ -57,13 +59,13 @@ const welcome = {
57
59
  drawText(screen, infoX + 8, y + 5, 'Type /login', styles.value);
58
60
  }
59
61
  else if (state.userName) {
60
- drawText(screen, infoX + 8, y + 5, state.userName, styles.value);
62
+ drawText(screen, infoX + 8, y + 5, state.userName, styles.value, maxValueWidth);
61
63
  }
62
64
  else {
63
65
  drawText(screen, infoX + 8, y + 5, '—', styles.dim);
64
66
  }
65
67
  drawText(screen, infoX, y + 6, 'Server:', styles.label);
66
- drawText(screen, infoX + 8, y + 6, state.serverUrl.slice(0, leftWidth - infoX - 8 - 2), styles.dim);
68
+ drawText(screen, infoX + 8, y + 6, state.serverUrl, styles.dim, maxValueWidth);
67
69
  if (state.authenticated) {
68
70
  // Middle box — sessions
69
71
  const midX = startX + leftWidth;
@@ -91,30 +93,6 @@ const welcome = {
91
93
  else {
92
94
  drawText(screen, midX + 2, y + 3, 'No chats yet', styles.dim);
93
95
  }
94
- // Right box — widgets
95
- const rightX = midX + midWidth;
96
- drawBox(screen, rightX, y, rightWidth, BOX_HEIGHT, styles.border);
97
- drawText(screen, rightX + 2, y + 1, 'Widgets', styles.title);
98
- drawText(screen, rightX + rightWidth - 2 - 2, y + 1, '^W', styles.dim);
99
- const widgets = state.widgets || [];
100
- if (widgets.length > 0) {
101
- const showWidgets = widgets.length <= maxSlots ? widgets.length : maxSlots - 1;
102
- let ty = 3;
103
- for (const widget of widgets.slice(0, showWidgets)) {
104
- const widgetTitle = (widget.title || 'Untitled').slice(0, rightWidth - 6);
105
- drawText(screen, rightX + 2, y + ty, widgetTitle, styles.value);
106
- ty++;
107
- }
108
- if (widgets.length > showWidgets) {
109
- drawText(screen, rightX + 2, y + ty, `+${widgets.length - showWidgets} more`, styles.dim);
110
- }
111
- }
112
- else if (!state.connected) {
113
- drawText(screen, rightX + 2, y + 3, 'Loading...', styles.dim);
114
- }
115
- else {
116
- drawText(screen, rightX + 2, y + 3, 'No widgets yet', styles.dim);
117
- }
118
96
  }
119
97
  },
120
98
  handleKey(_str, _key, _state) {
@@ -1 +1 @@
1
- {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/ui/welcome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/ui/welcome.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relace-ai/jacq",
3
- "version": "0.1.2-beta.5",
3
+ "version": "0.1.2-beta.7",
4
4
  "description": "TUI coding agent by Relace",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,7 +0,0 @@
1
- /**
2
- * Widgets Component — full-screen draw() API
3
- * Shows deployed interactive widgets and allows opening them in the browser
4
- */
5
- import type { UIComponent } from '../types.js';
6
- declare const backgroundTasks: UIComponent;
7
- export default backgroundTasks;
@@ -1,192 +0,0 @@
1
- /**
2
- * Widgets Component — full-screen draw() API
3
- * Shows deployed interactive widgets and allows opening them in the browser
4
- */
5
- import { drawText, drawHLine } from './primitives.js';
6
- import { markDirty } from '../state.js';
7
- import { connection } from '../connection.js';
8
- import { fetchWidgets, fetchWidgetUrl } from '../protocol.js';
9
- import { exec } from 'child_process';
10
- const MIN_HEIGHT = 10;
11
- const WIDGETS_PER_PAGE = 9;
12
- const backgroundTasks = {
13
- height(state) {
14
- const widgets = state.widgets || [];
15
- const totalPages = Math.ceil(widgets.length / WIDGETS_PER_PAGE) || 1;
16
- const widgetRows = Math.min(widgets.length, WIDGETS_PER_PAGE);
17
- const paginationRow = totalPages > 1 ? 2 : 1;
18
- const contentHeight = 5 + widgetRows + paginationRow;
19
- return Math.max(MIN_HEIGHT, contentHeight);
20
- },
21
- draw(screen, y, state, layout, styles) {
22
- const width = layout.width;
23
- const widgets = state.widgets || [];
24
- const componentHeight = this.height(state);
25
- const totalPages = Math.ceil(widgets.length / WIDGETS_PER_PAGE) || 1;
26
- const currentPage = state.widgetsPage || 0;
27
- const idx = state.widgetsIndex || 0;
28
- // Top separator
29
- drawHLine(screen, 0, y, width, styles.border);
30
- // Title row
31
- if (widgets.length > 0) {
32
- const summary = `${widgets.length} widget${widgets.length === 1 ? '' : 's'}`;
33
- drawText(screen, 2, y + 1, 'Widgets', styles.title);
34
- drawText(screen, width - summary.length - 2, y + 1, summary, styles.dim);
35
- }
36
- else {
37
- drawText(screen, 2, y + 1, 'Widgets', styles.title);
38
- }
39
- // Content
40
- if (!state.widgetsLoaded) {
41
- drawText(screen, 4, y + 3, 'Loading...', styles.dim);
42
- }
43
- else if (widgets.length === 0) {
44
- drawText(screen, 4, y + 3, 'No widgets yet', styles.dim);
45
- }
46
- else {
47
- const pageStart = currentPage * WIDGETS_PER_PAGE;
48
- const pageEnd = Math.min(pageStart + WIDGETS_PER_PAGE, widgets.length);
49
- const pageWidgets = widgets.slice(pageStart, pageEnd);
50
- for (let i = 0; i < pageWidgets.length; i++) {
51
- const widget = pageWidgets[i];
52
- const displayIndex = i + 1;
53
- const isSelected = idx === displayIndex;
54
- const row = y + 3 + i;
55
- const prefix = isSelected ? ' \u276F ' : ' ';
56
- drawText(screen, 0, row, prefix, styles.value);
57
- drawText(screen, 4, row, `${displayIndex}.`, styles.dim);
58
- drawText(screen, 7, row, widget.title || 'Untitled', isSelected ? styles.title : styles.value);
59
- }
60
- // Pagination
61
- if (totalPages > 1) {
62
- const paginationY = y + 3 + pageWidgets.length + 1;
63
- drawText(screen, 2, paginationY, `\u2190 Page ${currentPage + 1}/${totalPages} \u2192`, styles.dim);
64
- }
65
- }
66
- // Bottom separator
67
- const bottomY = y + componentHeight - 2;
68
- drawHLine(screen, 0, bottomY, width, styles.border);
69
- // Hints
70
- const hy = bottomY + 1;
71
- let hx = 2;
72
- const gap = ' ';
73
- if (totalPages > 1) {
74
- drawText(screen, hx, hy, '\u2191\u2193', styles.value);
75
- hx += 2;
76
- drawText(screen, hx, hy, ' navigate', styles.hint);
77
- hx += 9 + gap.length;
78
- drawText(screen, hx, hy, '\u2190\u2192', styles.value);
79
- hx += 2;
80
- drawText(screen, hx, hy, ' page', styles.hint);
81
- hx += 5 + gap.length;
82
- }
83
- else {
84
- drawText(screen, hx, hy, '\u2191\u2193', styles.value);
85
- hx += 2;
86
- drawText(screen, hx, hy, ' navigate', styles.hint);
87
- hx += 9 + gap.length;
88
- }
89
- drawText(screen, hx, hy, 'Enter', styles.value);
90
- hx += 5;
91
- drawText(screen, hx, hy, ' open', styles.hint);
92
- hx += 5 + gap.length;
93
- drawText(screen, hx, hy, '#0-9', styles.value);
94
- hx += 4;
95
- drawText(screen, hx, hy, ' quick', styles.hint);
96
- hx += 6 + gap.length;
97
- drawText(screen, hx, hy, 'Bksp', styles.value);
98
- hx += 4;
99
- drawText(screen, hx, hy, ' delete', styles.hint);
100
- hx += 7 + gap.length;
101
- drawText(screen, hx, hy, '^W/Esc', styles.value);
102
- hx += 6;
103
- drawText(screen, hx, hy, ' close', styles.hint);
104
- },
105
- handleKey(str, key, state) {
106
- const widgets = state.widgets || [];
107
- const totalPages = Math.ceil(widgets.length / WIDGETS_PER_PAGE) || 1;
108
- const currentPage = state.widgetsPage || 0;
109
- const pageStart = currentPage * WIDGETS_PER_PAGE;
110
- const pageEnd = Math.min(pageStart + WIDGETS_PER_PAGE, widgets.length);
111
- const pageWidgets = widgets.slice(pageStart, pageEnd);
112
- const idx = state.widgetsIndex || 0;
113
- const maxIndex = pageWidgets.length;
114
- if (key.name === 'escape') {
115
- state.overlay = null;
116
- markDirty();
117
- return { handled: true };
118
- }
119
- if (key.name === 'left' && totalPages > 1) {
120
- state.widgetsPage = currentPage > 0 ? currentPage - 1 : totalPages - 1;
121
- state.widgetsIndex = 1;
122
- markDirty();
123
- return { handled: true };
124
- }
125
- if (key.name === 'right' && totalPages > 1) {
126
- state.widgetsPage = currentPage < totalPages - 1 ? currentPage + 1 : 0;
127
- state.widgetsIndex = 1;
128
- markDirty();
129
- return { handled: true };
130
- }
131
- if (key.name === 'up') {
132
- state.widgetsIndex = idx > 1 ? idx - 1 : maxIndex;
133
- markDirty();
134
- return { handled: true };
135
- }
136
- if (key.name === 'down') {
137
- state.widgetsIndex = idx < maxIndex ? idx + 1 : 1;
138
- markDirty();
139
- return { handled: true };
140
- }
141
- if (key.name === 'return' && idx >= 1 && idx <= pageWidgets.length) {
142
- const widget = pageWidgets[idx - 1];
143
- if (widget) {
144
- openWidgetInBrowser(widget.id);
145
- }
146
- return { handled: true };
147
- }
148
- if (key.name === 'backspace' && idx >= 1 && idx <= pageWidgets.length) {
149
- const widget = pageWidgets[idx - 1];
150
- if (widget) {
151
- deleteWidget(widget.id);
152
- if (idx > maxIndex - 1 && idx > 1) {
153
- state.widgetsIndex = idx - 1;
154
- }
155
- }
156
- return { handled: true };
157
- }
158
- const num = parseInt(str || '', 10);
159
- if (num >= 1 && num <= 9 && num <= pageWidgets.length) {
160
- state.widgetsIndex = num;
161
- markDirty();
162
- return { handled: true };
163
- }
164
- return { handled: false };
165
- }
166
- };
167
- async function openWidgetInBrowser(widgetId) {
168
- try {
169
- const url = await fetchWidgetUrl(widgetId);
170
- const cmd = process.platform === 'darwin' ? 'open'
171
- : process.platform === 'win32' ? 'start'
172
- : 'xdg-open';
173
- exec(`${cmd} "${url}"`);
174
- }
175
- catch {
176
- // Silent — signed URL fetch failed
177
- }
178
- }
179
- async function deleteWidget(widgetId) {
180
- try {
181
- await connection.request({
182
- type: 'widgets.delete',
183
- payload: { widgetId },
184
- }, 5000);
185
- fetchWidgets();
186
- }
187
- catch {
188
- // Silently fail
189
- }
190
- }
191
- export default backgroundTasks;
192
- //# sourceMappingURL=backgroundTasks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backgroundTasks.js","sourceRoot":"","sources":["../../src/ui/backgroundTasks.ts"],"names":[],"mappings":"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"}