genaicode 2.9.1 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/README.md +124 -0
- package/dist/agents/session.d.ts +5 -0
- package/dist/agents/session.js +41 -11
- package/dist/agents/session.js.map +1 -1
- package/dist/react/agent-chat.css +506 -0
- package/dist/react/agent-chat.d.ts +65 -0
- package/dist/react/agent-chat.js +140 -0
- package/dist/react/agent-chat.js.map +1 -0
- package/dist/react/format.d.ts +16 -0
- package/dist/react/format.js +95 -0
- package/dist/react/format.js.map +1 -0
- package/dist/react/markdown.d.ts +6 -0
- package/dist/react/markdown.js +163 -0
- package/dist/react/markdown.js.map +1 -0
- package/dist/react.d.ts +19 -0
- package/dist/react.js +17 -0
- package/dist/react.js.map +1 -0
- package/dist/ui/index.js +78 -136
- package/dist/ui/web-client.js +520 -13
- package/dist/ui.d.ts +71 -0
- package/dist/ui.js +25 -0
- package/dist/ui.js.map +1 -0
- package/dist/vite/overlay.js +132 -8
- package/dist/vite/overlay.js.map +1 -1
- package/docs/agents.md +3 -0
- package/docs/semver.md +2 -0
- package/package.json +18 -3
package/dist/ui.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { AgentSession, SessionState } from './agents/session.js';
|
|
2
|
+
import type { AgentTask, ApprovalDecision, CodingAgent } from './agents/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* `genaicode/ui`: the `genaicode ui` chat served on 127.0.0.1 for a host that shows it in its
|
|
5
|
+
* own page (an iframe) and wants a say in the session: MCP servers, env, a prompt prefix.
|
|
6
|
+
*
|
|
7
|
+
* The UI itself (React, Ink) is bundled in `dist/ui/` and loaded only when
|
|
8
|
+
* `startEmbeddedWeb` runs, so importing this module pulls no UI code. For a chat drawn by the
|
|
9
|
+
* host's own React tree, use `genaicode/react` instead.
|
|
10
|
+
*/
|
|
11
|
+
export interface EmbeddedWebOptions {
|
|
12
|
+
/** Directory the agent works in. */
|
|
13
|
+
cwd: string;
|
|
14
|
+
/** Agents to offer. Default: the same headless drivers as `genaicode ui`. */
|
|
15
|
+
agents?: readonly CodingAgent[];
|
|
16
|
+
/** Agent to start with. Default: the first installed one. */
|
|
17
|
+
agent?: string;
|
|
18
|
+
model?: string;
|
|
19
|
+
effort?: string;
|
|
20
|
+
/** Continue this agent session on the first turn. */
|
|
21
|
+
resume?: string;
|
|
22
|
+
/** Environment for the agent CLIs. Default: `process.env`. */
|
|
23
|
+
env?: NodeJS.ProcessEnv;
|
|
24
|
+
/** Task fields for every turn: `mcpServers`, `timeoutMs`, `maxTurns`, `extraArgs`. */
|
|
25
|
+
task?: Omit<AgentTask, 'prompt' | 'cwd' | 'model' | 'effort' | 'resume' | 'signal' | 'onApproval' | 'env'>;
|
|
26
|
+
/** Rewrites each prompt before it reaches the agent; the transcript shows what was typed. */
|
|
27
|
+
transformPrompt?(prompt: string): string;
|
|
28
|
+
/** Approve every permission request without asking. */
|
|
29
|
+
approveAll?: boolean;
|
|
30
|
+
/** Bark when the agent needs the user or finishes, while the tab is hidden. Default true. */
|
|
31
|
+
bark?: boolean;
|
|
32
|
+
/** Origins of the pages that show the UI in a frame. Read per request. Default: none. */
|
|
33
|
+
frameAncestors?: () => readonly string[];
|
|
34
|
+
/** Port on 127.0.0.1. Default: a free port. */
|
|
35
|
+
port?: number;
|
|
36
|
+
/** Shown in the page header. Default: this package's version. */
|
|
37
|
+
version?: string;
|
|
38
|
+
}
|
|
39
|
+
/** The session behind an embedded UI, for the host to drive alongside the user. */
|
|
40
|
+
export interface EmbeddedChatController {
|
|
41
|
+
/** Send a prompt (or a slash command) as if typed in the UI. */
|
|
42
|
+
submit(text: string): 'ok' | 'quit';
|
|
43
|
+
stop(): void;
|
|
44
|
+
approve(id: string, decision: ApprovalDecision): boolean;
|
|
45
|
+
/** Show a line from the host in the transcript. */
|
|
46
|
+
note(text: string, tone?: 'info' | 'error'): void;
|
|
47
|
+
get(): {
|
|
48
|
+
session: SessionState;
|
|
49
|
+
};
|
|
50
|
+
subscribe(listener: (view: {
|
|
51
|
+
session: SessionState;
|
|
52
|
+
}) => void): () => void;
|
|
53
|
+
readonly session: AgentSession;
|
|
54
|
+
}
|
|
55
|
+
export interface EmbeddedWeb {
|
|
56
|
+
/** The UI with its access token: the iframe's `src`. Keep it out of logs and other pages. */
|
|
57
|
+
url: string;
|
|
58
|
+
controller: EmbeddedChatController;
|
|
59
|
+
close(): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
/** What `startEmbeddedWeb` in the bundle (src/ui/index.tsx) takes, after defaults. */
|
|
62
|
+
export type EmbeddedWebBundleOptions = EmbeddedWebOptions & {
|
|
63
|
+
agents: readonly CodingAgent[];
|
|
64
|
+
version: string;
|
|
65
|
+
frameAncestors: () => readonly string[];
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Start the chat UI on 127.0.0.1 for the host's page. Rejects with an error named
|
|
69
|
+
* `NoAgentError` when no agent CLI is installed (or `agent` is unknown).
|
|
70
|
+
*/
|
|
71
|
+
export declare function startEmbeddedWeb(options: EmbeddedWebOptions): Promise<EmbeddedWeb>;
|
package/dist/ui.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { defaultAgents } from './agents/defaults.js';
|
|
3
|
+
/**
|
|
4
|
+
* Start the chat UI on 127.0.0.1 for the host's page. Rejects with an error named
|
|
5
|
+
* `NoAgentError` when no agent CLI is installed (or `agent` is unknown).
|
|
6
|
+
*/
|
|
7
|
+
export async function startEmbeddedWeb(options) {
|
|
8
|
+
const ui = await loadBundledUi();
|
|
9
|
+
return ui.startEmbeddedWeb({
|
|
10
|
+
...options,
|
|
11
|
+
agents: options.agents ?? defaultAgents(),
|
|
12
|
+
version: options.version ?? packageVersion(),
|
|
13
|
+
frameAncestors: options.frameAncestors ?? (() => []),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/** The front ends are bundled into dist/ui by scripts/build-ui.mjs; the path is kept opaque to tsc. */
|
|
17
|
+
function loadBundledUi() {
|
|
18
|
+
const bundle = new URL('./ui/index.js', import.meta.url).href;
|
|
19
|
+
return import(bundle);
|
|
20
|
+
}
|
|
21
|
+
function packageVersion() {
|
|
22
|
+
const require = createRequire(import.meta.url);
|
|
23
|
+
return require('../package.json').version;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ui.js.map
|
package/dist/ui.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAyErD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA2B;IAChE,MAAM,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;IACjC,OAAO,EAAE,CAAC,gBAAgB,CAAC;QACzB,GAAG,OAAO;QACV,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE;QACzC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,cAAc,EAAE;QAC5C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;KACrD,CAAC,CAAC;AACL,CAAC;AAED,uGAAuG;AACvG,SAAS,aAAa;IACpB,MAAM,MAAM,GAAW,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO,MAAM,CAAC,MAAM,CAAsB,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAQ,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AACrE,CAAC"}
|
package/dist/vite/overlay.js
CHANGED
|
@@ -24,14 +24,19 @@ export function mountOverlay(config, hot) {
|
|
|
24
24
|
.badge { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px;
|
|
25
25
|
background: #c92a2a; color: #fff; font-size: 11px; font-weight: 700; line-height: 20px; text-align: center; }
|
|
26
26
|
.badge[hidden], .panel[hidden], .fix[hidden] { display: none; }
|
|
27
|
-
.panel { position: fixed; right: 18px; bottom: 82px; width: min(460px, calc(100vw - 36px));
|
|
28
|
-
display: flex; flex-direction: column; background: #fff; border: 1px solid #e4e4df; border-radius: 14px; overflow: hidden;
|
|
27
|
+
.panel { position: fixed; right: 18px; bottom: 82px; width: min(var(--width, 460px), calc(100vw - 36px));
|
|
28
|
+
height: min(var(--height, 680px), calc(100vh - 110px)); display: flex; flex-direction: column; background: #fff; border: 1px solid #e4e4df; border-radius: 14px; overflow: hidden;
|
|
29
29
|
box-shadow: 0 8px 40px rgba(0,0,0,.22); }
|
|
30
30
|
.head { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid #e4e4df; background: #f7f7f5; color: #1d1d1b; }
|
|
31
31
|
.head b { flex: 1; }
|
|
32
32
|
.head button { border: 1px solid #e4e4df; background: #fff; color: #1d1d1b; border-radius: 8px; padding: 4px 10px; cursor: pointer; }
|
|
33
33
|
.head .fix { background: #c92a2a; border-color: #c92a2a; color: #fff; font-weight: 600; }
|
|
34
34
|
iframe { flex: 1; width: 100%; border: 0; background: #f7f7f5; }
|
|
35
|
+
.grip { position: absolute; z-index: 1; touch-action: none; outline-offset: -3px; }
|
|
36
|
+
.grip.width { left: 0; top: 0; bottom: 0; width: 6px; cursor: ew-resize; }
|
|
37
|
+
.grip.height { left: 0; right: 0; top: 0; height: 6px; cursor: ns-resize; }
|
|
38
|
+
.grip:hover, .grip:focus-visible, .resizing .grip { background: rgba(127,127,120,.25); }
|
|
39
|
+
.resizing iframe { pointer-events: none; }
|
|
35
40
|
.note { padding: 16px; color: #6b6b66; }
|
|
36
41
|
@media (prefers-color-scheme: dark) {
|
|
37
42
|
.wolf, .panel { background-color: #1d1d1c; border-color: #2e2e2c; }
|
|
@@ -40,16 +45,123 @@ iframe { flex: 1; width: 100%; border: 0; background: #f7f7f5; }
|
|
|
40
45
|
iframe { background: #141414; }
|
|
41
46
|
}
|
|
42
47
|
</style>
|
|
48
|
+
<button class="wolf" title="genaicode" aria-expanded="false"><span class="badge" hidden></span></button>
|
|
43
49
|
<div class="panel" hidden>
|
|
44
50
|
<div class="head"><b>genaicode</b><button class="fix" hidden></button><button class="close" title="Hide">✕</button></div>
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
<div class="grip width" role="separator" aria-orientation="vertical" aria-label="Panel width" tabindex="0"
|
|
52
|
+
aria-keyshortcuts="Enter" title="Drag or use arrow keys to resize · Enter or double-click to reset"></div>
|
|
53
|
+
<div class="grip height" role="separator" aria-orientation="horizontal" aria-label="Panel height" tabindex="0"
|
|
54
|
+
aria-keyshortcuts="Enter" title="Drag or use arrow keys to resize · Enter or double-click to reset"></div>
|
|
55
|
+
</div>`;
|
|
47
56
|
const $ = (selector) => root.querySelector(selector);
|
|
48
57
|
const wolf = $('.wolf');
|
|
49
58
|
const badge = $('.badge');
|
|
50
59
|
const panel = $('.panel');
|
|
51
60
|
const fix = $('.fix');
|
|
52
61
|
let frame;
|
|
62
|
+
// The panel keeps its corner and grows left and up. Its size outlives reloads of the app.
|
|
63
|
+
const SIZE_KEY = 'genaicode-overlay-size';
|
|
64
|
+
const DEFAULT_SIZE = { width: 460, height: 680 };
|
|
65
|
+
const MIN_SIZE = { width: 320, height: 300 };
|
|
66
|
+
const size = { ...DEFAULT_SIZE };
|
|
67
|
+
try {
|
|
68
|
+
const saved = JSON.parse(localStorage.getItem(SIZE_KEY) ?? 'null');
|
|
69
|
+
for (const axis of ['width', 'height']) {
|
|
70
|
+
const value = saved?.[axis];
|
|
71
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
72
|
+
size[axis] = Math.max(MIN_SIZE[axis], Math.round(value));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// No storage, or nothing usable in it: the default size.
|
|
77
|
+
}
|
|
78
|
+
// What the window leaves for the panel; the CSS clamps to the same, even below the minimum.
|
|
79
|
+
const maxSize = () => ({
|
|
80
|
+
width: Math.max(0, innerWidth - 36),
|
|
81
|
+
height: Math.max(0, innerHeight - 110),
|
|
82
|
+
});
|
|
83
|
+
const minOf = (axis) => Math.min(MIN_SIZE[axis], maxSize()[axis]);
|
|
84
|
+
const grips = {
|
|
85
|
+
width: $('.grip.width'),
|
|
86
|
+
height: $('.grip.height'),
|
|
87
|
+
};
|
|
88
|
+
const sync = () => {
|
|
89
|
+
const max = maxSize();
|
|
90
|
+
for (const axis of ['width', 'height']) {
|
|
91
|
+
grips[axis].setAttribute('aria-valuemin', String(minOf(axis)));
|
|
92
|
+
grips[axis].setAttribute('aria-valuemax', String(max[axis]));
|
|
93
|
+
grips[axis].setAttribute('aria-valuenow', String(Math.min(max[axis], size[axis])));
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const resize = (axis, value, save) => {
|
|
97
|
+
size[axis] = Math.round(Math.max(minOf(axis), Math.min(maxSize()[axis], value)));
|
|
98
|
+
panel.style.setProperty(`--${axis}`, `${size[axis]}px`);
|
|
99
|
+
sync();
|
|
100
|
+
if (!save)
|
|
101
|
+
return;
|
|
102
|
+
try {
|
|
103
|
+
localStorage.setItem(SIZE_KEY, JSON.stringify(size));
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// The size just isn't remembered.
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
if (size.width !== DEFAULT_SIZE.width)
|
|
110
|
+
panel.style.setProperty('--width', `${size.width}px`);
|
|
111
|
+
if (size.height !== DEFAULT_SIZE.height)
|
|
112
|
+
panel.style.setProperty('--height', `${size.height}px`);
|
|
113
|
+
sync();
|
|
114
|
+
window.addEventListener('resize', sync);
|
|
115
|
+
for (const axis of ['width', 'height']) {
|
|
116
|
+
const grip = grips[axis];
|
|
117
|
+
const along = (event) => (axis === 'width' ? event.clientX : event.clientY);
|
|
118
|
+
grip.addEventListener('pointerdown', (event) => {
|
|
119
|
+
if (event.button !== 0)
|
|
120
|
+
return;
|
|
121
|
+
event.preventDefault();
|
|
122
|
+
const start = along(event);
|
|
123
|
+
const from = Math.min(maxSize()[axis], size[axis]);
|
|
124
|
+
grip.setPointerCapture?.(event.pointerId);
|
|
125
|
+
// The frame would swallow the pointer moves over it.
|
|
126
|
+
panel.classList.add('resizing');
|
|
127
|
+
const move = (moved) => resize(axis, from + start - along(moved), false);
|
|
128
|
+
const end = () => {
|
|
129
|
+
grip.removeEventListener('pointermove', move);
|
|
130
|
+
grip.removeEventListener('pointerup', end);
|
|
131
|
+
grip.removeEventListener('pointercancel', end);
|
|
132
|
+
panel.classList.remove('resizing');
|
|
133
|
+
resize(axis, size[axis], true);
|
|
134
|
+
};
|
|
135
|
+
grip.addEventListener('pointermove', move);
|
|
136
|
+
grip.addEventListener('pointerup', end);
|
|
137
|
+
grip.addEventListener('pointercancel', end);
|
|
138
|
+
});
|
|
139
|
+
const reset = () => {
|
|
140
|
+
panel.style.removeProperty(`--${axis}`);
|
|
141
|
+
size[axis] = DEFAULT_SIZE[axis];
|
|
142
|
+
sync();
|
|
143
|
+
try {
|
|
144
|
+
localStorage.setItem(SIZE_KEY, JSON.stringify(size));
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
// The size just isn't remembered.
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
grip.addEventListener('keydown', (event) => {
|
|
151
|
+
if (event.key === 'Enter') {
|
|
152
|
+
event.preventDefault();
|
|
153
|
+
reset();
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const keys = axis === 'width' ? { ArrowLeft: 24, ArrowRight: -24 } : { ArrowUp: 24, ArrowDown: -24 };
|
|
157
|
+
const step = keys[event.key];
|
|
158
|
+
if (!step)
|
|
159
|
+
return;
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
resize(axis, Math.min(maxSize()[axis], size[axis]) + step, true);
|
|
162
|
+
});
|
|
163
|
+
grip.addEventListener('dblclick', reset);
|
|
164
|
+
}
|
|
53
165
|
const render = () => {
|
|
54
166
|
badge.hidden = errors.length === 0;
|
|
55
167
|
badge.textContent = String(errors.length);
|
|
@@ -72,9 +184,13 @@ iframe { flex: 1; width: 100%; border: 0; background: #f7f7f5; }
|
|
|
72
184
|
render();
|
|
73
185
|
return session;
|
|
74
186
|
};
|
|
187
|
+
const show = (visible) => {
|
|
188
|
+
panel.hidden = !visible;
|
|
189
|
+
wolf.setAttribute('aria-expanded', String(visible));
|
|
190
|
+
};
|
|
75
191
|
// One frame, even when the wolf and "Fix" are clicked before the session has loaded.
|
|
76
192
|
const open = () => {
|
|
77
|
-
|
|
193
|
+
show(true);
|
|
78
194
|
frame ??= loadSession().then(({ url }) => {
|
|
79
195
|
const iframe = document.createElement('iframe');
|
|
80
196
|
iframe.src = url;
|
|
@@ -88,8 +204,12 @@ iframe { flex: 1; width: 100%; border: 0; background: #f7f7f5; }
|
|
|
88
204
|
});
|
|
89
205
|
return frame;
|
|
90
206
|
};
|
|
91
|
-
wolf.addEventListener('click', () => (panel.hidden ? void open() : (
|
|
92
|
-
$('.close').addEventListener('click', () =>
|
|
207
|
+
wolf.addEventListener('click', () => (panel.hidden ? void open() : show(false)));
|
|
208
|
+
$('.close').addEventListener('click', () => {
|
|
209
|
+
show(false);
|
|
210
|
+
// The focused button is gone with the panel: back to the wolf that opened it.
|
|
211
|
+
wolf.focus();
|
|
212
|
+
});
|
|
93
213
|
fix.addEventListener('click', async () => {
|
|
94
214
|
const sent = errors;
|
|
95
215
|
errors = [];
|
|
@@ -145,9 +265,13 @@ iframe { flex: 1; width: 100%; border: 0; background: #f7f7f5; }
|
|
|
145
265
|
consoleError(...args);
|
|
146
266
|
// Collecting the error must never break the app's own logging.
|
|
147
267
|
try {
|
|
268
|
+
const message = args.map(text).join(' ');
|
|
269
|
+
// Vite's client logs a build error it has no overlay for; 'vite:error' below has it already.
|
|
270
|
+
if (hot && message.startsWith('[vite] Internal Server Error\n'))
|
|
271
|
+
return;
|
|
148
272
|
add({
|
|
149
273
|
source: 'console',
|
|
150
|
-
message
|
|
274
|
+
message,
|
|
151
275
|
stack: args.find((arg) => arg instanceof Error)?.stack,
|
|
152
276
|
});
|
|
153
277
|
}
|
package/dist/vite/overlay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../src/vite/overlay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../src/vite/overlay.ts"],"names":[],"mappings":"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"}
|
package/docs/agents.md
CHANGED
|
@@ -113,6 +113,9 @@ session.send('Now cover it with a test'); // resumes the same agent session
|
|
|
113
113
|
`autoApprove` decides them. `stop()` denies whatever is pending.
|
|
114
114
|
- `setAgent()` switches agents between turns and starts a fresh agent session; `reset()`
|
|
115
115
|
does the same for the current agent.
|
|
116
|
+
- `transformPrompt(text)` rewrites what reaches the agent (a briefing, a context prefix)
|
|
117
|
+
while turns, the queue and steered input keep the text given to `send()`.
|
|
118
|
+
- `<AgentChat>` from `genaicode/react` renders `state` in a React page (see the README).
|
|
116
119
|
|
|
117
120
|
## Drivers
|
|
118
121
|
|
package/docs/semver.md
CHANGED
|
@@ -21,6 +21,8 @@ These are covered by minor/patch compatibility within 2.x:
|
|
|
21
21
|
|
|
22
22
|
- `genaicode/agents` (coding-agent drivers, `AgentEvent`, `CodingAgent`) may change in a
|
|
23
23
|
minor release until this section lists it as stable. See [agents.md](./agents.md).
|
|
24
|
+
- `genaicode/react` (`<AgentChat>` props, its `.gc-*` class names and `--gc-*` custom
|
|
25
|
+
properties) and `genaicode/ui` (`startEmbeddedWeb`), on the same terms.
|
|
24
26
|
|
|
25
27
|
## Additive changes (minor)
|
|
26
28
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genaicode",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.0",
|
|
4
4
|
"description": "A small, provider-neutral TypeScript toolkit for calling LLMs from backend code.",
|
|
5
5
|
"author": "Grzegorz Tańczyk",
|
|
6
6
|
"repository": {
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"toolkit",
|
|
17
17
|
"coding-agent",
|
|
18
18
|
"cli",
|
|
19
|
-
"vite-plugin"
|
|
19
|
+
"vite-plugin",
|
|
20
|
+
"react"
|
|
20
21
|
],
|
|
21
22
|
"type": "module",
|
|
22
23
|
"bin": {
|
|
@@ -26,7 +27,9 @@
|
|
|
26
27
|
"node": ">=20"
|
|
27
28
|
},
|
|
28
29
|
"license": "Apache-2.0",
|
|
29
|
-
"sideEffects":
|
|
30
|
+
"sideEffects": [
|
|
31
|
+
"**/*.css"
|
|
32
|
+
],
|
|
30
33
|
"files": [
|
|
31
34
|
"dist",
|
|
32
35
|
"docs",
|
|
@@ -50,6 +53,15 @@
|
|
|
50
53
|
"./vite": {
|
|
51
54
|
"types": "./dist/vite.d.ts",
|
|
52
55
|
"import": "./dist/vite.js"
|
|
56
|
+
},
|
|
57
|
+
"./react": {
|
|
58
|
+
"types": "./dist/react.d.ts",
|
|
59
|
+
"import": "./dist/react.js"
|
|
60
|
+
},
|
|
61
|
+
"./react/styles.css": "./dist/react/agent-chat.css",
|
|
62
|
+
"./ui": {
|
|
63
|
+
"types": "./dist/ui.d.ts",
|
|
64
|
+
"import": "./dist/ui.js"
|
|
53
65
|
}
|
|
54
66
|
},
|
|
55
67
|
"scripts": {
|
|
@@ -58,6 +70,7 @@
|
|
|
58
70
|
"lint": "eslint . --ext js,ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
59
71
|
"test": "vitest --config vitest.unit.config.ts --run",
|
|
60
72
|
"test:e2e": "vitest --config vitest.e2e.config.ts --run",
|
|
73
|
+
"test:browser": "vitest --config vitest.browser.config.ts --run",
|
|
61
74
|
"test:watch": "vitest --config vitest.unit.config.ts",
|
|
62
75
|
"type-check": "tsc --noEmit",
|
|
63
76
|
"check": "npm run type-check && npm run lint && npm test && npm run build",
|
|
@@ -78,10 +91,12 @@
|
|
|
78
91
|
"esbuild": "^0.28.2",
|
|
79
92
|
"eslint": "^8.54.0",
|
|
80
93
|
"eslint-config-prettier": "^9.0.0",
|
|
94
|
+
"happy-dom": "^20.14.5",
|
|
81
95
|
"husky": "^9.1.1",
|
|
82
96
|
"ink": "^6.8.0",
|
|
83
97
|
"ink-testing-library": "^4.0.0",
|
|
84
98
|
"lint-staged": "^15.2.7",
|
|
99
|
+
"playwright": "^1.56.1",
|
|
85
100
|
"prettier": "^3.1.0",
|
|
86
101
|
"react": "^19.3.0",
|
|
87
102
|
"react-dom": "^19.3.0",
|