koneck 2.28.0 → 2.29.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/dist/ink-chat.d.ts +2 -0
- package/dist/ink-chat.d.ts.map +1 -1
- package/dist/ink-chat.js +169 -20
- package/dist/ink-chat.js.map +1 -1
- package/dist/web/api.d.ts.map +1 -1
- package/dist/web/api.js +37 -21
- package/dist/web/api.js.map +1 -1
- package/dist/web/events.d.ts +15 -0
- package/dist/web/events.d.ts.map +1 -1
- package/dist/web/events.js.map +1 -1
- package/dist/web/search.d.ts +12 -0
- package/dist/web/search.d.ts.map +1 -1
- package/dist/web/search.js +38 -0
- package/dist/web/search.js.map +1 -1
- package/dist/web/sessions.d.ts +61 -2
- package/dist/web/sessions.d.ts.map +1 -1
- package/dist/web/sessions.js +94 -4
- package/dist/web/sessions.js.map +1 -1
- package/dist/web/ui-client.d.ts.map +1 -1
- package/dist/web/ui-client.js +0 -0
- package/dist/web/ui-client.js.map +1 -1
- package/dist/web/ui-css.d.ts.map +1 -1
- package/dist/web/ui-css.js +22 -0
- package/dist/web/ui-css.js.map +1 -1
- package/dist/web/ui.d.ts.map +1 -1
- package/dist/web/ui.js +13 -1
- package/dist/web/ui.js.map +1 -1
- package/dist/workspace-trust.d.ts +2 -0
- package/dist/workspace-trust.d.ts.map +1 -1
- package/dist/workspace-trust.js +12 -0
- package/dist/workspace-trust.js.map +1 -1
- package/package.json +1 -1
package/dist/web/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/web/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAGrC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA6BD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/web/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAGrC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA6BD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAsTpG"}
|
package/dist/web/api.js
CHANGED
|
@@ -18,11 +18,11 @@ import { SessionRegistry } from './sessions.js';
|
|
|
18
18
|
import { PROVIDERS, resolveProvider, needsNoCredential } from '../providers.js';
|
|
19
19
|
import { page } from './ui.js';
|
|
20
20
|
import { listPast, readPast } from './history.js';
|
|
21
|
-
import { snapshot, compare, summarise as summariseChanges } from './changes.js';
|
|
22
21
|
import { summarise as summariseTrajectory } from '../trajectory.js';
|
|
23
22
|
import { listDir, viewFile } from './files.js';
|
|
24
|
-
import { searchSessions } from './search.js';
|
|
23
|
+
import { searchSessions, searchAllWorkspaces } from './search.js';
|
|
25
24
|
import { trustedWorkspaces, isWorkspaceTrusted } from '../workspace-trust.js';
|
|
25
|
+
import { MODES } from '../permissions.js';
|
|
26
26
|
export const DEFAULT_WEB_PORT = 4300;
|
|
27
27
|
const LOOPBACK = '127.0.0.1';
|
|
28
28
|
function tokenMatches(expected, given) {
|
|
@@ -69,14 +69,6 @@ export async function startWeb(baseConfig, options = {}) {
|
|
|
69
69
|
*/
|
|
70
70
|
let workspace = baseConfig.cwd;
|
|
71
71
|
const registry = new SessionRegistry();
|
|
72
|
-
/**
|
|
73
|
-
* How the workspace looked when each session started.
|
|
74
|
-
*
|
|
75
|
-
* Taken once, at creation, so the diff view answers "what has this session changed" rather than
|
|
76
|
-
* "what is different from some arbitrary moment". Captured off the critical path: a session
|
|
77
|
-
* should not wait on a directory walk before its first message.
|
|
78
|
-
*/
|
|
79
|
-
const baselines = new Map();
|
|
80
72
|
const isLocal = host === LOOPBACK || host === '::1';
|
|
81
73
|
const html = page();
|
|
82
74
|
/** Event streams currently open, so shutting down does not wait on them for ever. */
|
|
@@ -119,6 +111,7 @@ export async function startWeb(baseConfig, options = {}) {
|
|
|
119
111
|
name: p.name, label: p.displayName, defaultModel: p.defaultModel,
|
|
120
112
|
keyless: needsNoCredential(p),
|
|
121
113
|
})),
|
|
114
|
+
modes: MODES.map((m) => ({ name: m.name, label: m.label, blurb: m.blurb })),
|
|
122
115
|
provider: baseConfig.provider,
|
|
123
116
|
model: baseConfig.model,
|
|
124
117
|
endpoint: resolveProvider(baseConfig.provider, baseConfig.baseURL).baseURL,
|
|
@@ -162,7 +155,14 @@ export async function startWeb(baseConfig, options = {}) {
|
|
|
162
155
|
if (route === '/api/search' && req.method === 'GET') {
|
|
163
156
|
if (!mayRead)
|
|
164
157
|
return json(res, 401, { error: 'token required' });
|
|
165
|
-
|
|
158
|
+
const q = url.searchParams.get('q') ?? '';
|
|
159
|
+
// Everywhere by default. "When did I deal with this before" is rarely a question about the
|
|
160
|
+
// directory KONECK happens to be pointed at right now.
|
|
161
|
+
if (url.searchParams.get('scope') === 'workspace') {
|
|
162
|
+
return json(res, 200, await searchSessions(workspace, q));
|
|
163
|
+
}
|
|
164
|
+
const trusted = await trustedWorkspaces().catch(() => []);
|
|
165
|
+
return json(res, 200, await searchAllWorkspaces([workspace, baseConfig.cwd, ...trusted], q));
|
|
166
166
|
}
|
|
167
167
|
if (route === '/api/sessions' && req.method === 'GET') {
|
|
168
168
|
if (!mayRead)
|
|
@@ -187,13 +187,14 @@ export async function startWeb(baseConfig, options = {}) {
|
|
|
187
187
|
const session = registry.get(url.searchParams.get('session') ?? '');
|
|
188
188
|
if (!session)
|
|
189
189
|
return json(res, 404, { error: 'no such session' });
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
190
|
+
// Per turn, or the whole session. Both, because they answer different questions: a file
|
|
191
|
+
// written in turn two and rewritten in turn five is two changes and one net difference.
|
|
192
|
+
const whole = await session.changesSinceStart();
|
|
193
|
+
return json(res, 200, {
|
|
194
|
+
...(whole ?? { changes: [], totals: { files: 0, added: 0, removed: 0 } }),
|
|
195
|
+
...(whole ? {} : { note: 'the opening snapshot is still being taken' }),
|
|
196
|
+
turns: session.turnChanges,
|
|
197
|
+
});
|
|
197
198
|
}
|
|
198
199
|
// Where the time went. The live session's own record, or a past one's from its file.
|
|
199
200
|
if (route === '/api/timing' && req.method === 'GET') {
|
|
@@ -230,8 +231,7 @@ export async function startWeb(baseConfig, options = {}) {
|
|
|
230
231
|
});
|
|
231
232
|
// Not awaited: the walk is bounded but a large workspace still takes a moment, and the
|
|
232
233
|
// answer here is what the client is waiting on.
|
|
233
|
-
void
|
|
234
|
-
.then(snap => baselines.set(session.id, snap))
|
|
234
|
+
void session.captureBaseline()
|
|
235
235
|
.catch(() => { });
|
|
236
236
|
return json(res, 201, session.info());
|
|
237
237
|
}
|
|
@@ -286,7 +286,7 @@ export async function startWeb(baseConfig, options = {}) {
|
|
|
286
286
|
const session = registry.get(body.session ?? '');
|
|
287
287
|
if (!session)
|
|
288
288
|
return json(res, 404, { error: 'no such session' });
|
|
289
|
-
const ok = session.answer(body.ask ?? '', body.allow === true);
|
|
289
|
+
const ok = session.answer(body.ask ?? '', body.allow === true, body.always === true);
|
|
290
290
|
return json(res, ok ? 200 : 409, { answered: ok });
|
|
291
291
|
}
|
|
292
292
|
if (route === '/api/abort' && req.method === 'POST') {
|
|
@@ -299,6 +299,22 @@ export async function startWeb(baseConfig, options = {}) {
|
|
|
299
299
|
session.abort();
|
|
300
300
|
return json(res, 200, { aborted: true });
|
|
301
301
|
}
|
|
302
|
+
// The permission mode, which decides what gets asked about at all.
|
|
303
|
+
if (route === '/api/mode' && req.method === 'POST') {
|
|
304
|
+
if (!mayAct)
|
|
305
|
+
return json(res, 401, { error: 'token required' });
|
|
306
|
+
const body = await readBody(req);
|
|
307
|
+
const session = registry.get(body.session ?? '');
|
|
308
|
+
if (!session)
|
|
309
|
+
return json(res, 404, { error: 'no such session' });
|
|
310
|
+
const wanted = String(body.mode ?? '');
|
|
311
|
+
const names = MODES.map((m) => m.name);
|
|
312
|
+
if (!names.includes(wanted)) {
|
|
313
|
+
return json(res, 400, { error: `mode must be one of ${names.join(', ')}` });
|
|
314
|
+
}
|
|
315
|
+
session.setMode(wanted);
|
|
316
|
+
return json(res, 200, session.info());
|
|
317
|
+
}
|
|
302
318
|
if (route === '/api/model' && req.method === 'POST') {
|
|
303
319
|
if (!mayAct)
|
|
304
320
|
return json(res, 401, { error: 'token required' });
|
package/dist/web/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/web/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/web/api.ts"],"names":[],"mappings":"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"}
|
package/dist/web/events.d.ts
CHANGED
|
@@ -117,6 +117,21 @@ export type WebEvent =
|
|
|
117
117
|
level: 'info' | 'warn';
|
|
118
118
|
text: string;
|
|
119
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* A turn changed files on disk.
|
|
122
|
+
*
|
|
123
|
+
* Emitted so a badge can appear without the client polling for it, and so the Changes view knows
|
|
124
|
+
* a new turn's worth of diff exists.
|
|
125
|
+
*/
|
|
126
|
+
| {
|
|
127
|
+
t: 'changed';
|
|
128
|
+
at: number;
|
|
129
|
+
seq: number;
|
|
130
|
+
turn: number;
|
|
131
|
+
files: number;
|
|
132
|
+
added: number;
|
|
133
|
+
removed: number;
|
|
134
|
+
}
|
|
120
135
|
/** The turn ended. */
|
|
121
136
|
| {
|
|
122
137
|
t: 'turn-end';
|
package/dist/web/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/web/events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/web/events.ts"],"names":[],"mappings":"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"}
|
package/dist/web/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/web/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/web/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyCH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAalC,MAAM,OAAO,QAAQ;IACF,GAAG,GAAe,EAAE,CAAC;IACrB,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACpD,GAAG,GAAG,CAAC,CAAC;IAEhB,oEAAoE;IACpE,IAAI,CAAC,KAAc;QACjB,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAc,CAAC;QACnF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,YAAY;YAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACrD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,4EAA4E;YAC5E,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,KAAK,GAAG,CAAC;QACb,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,SAAS,CAAC,EAAyB;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3C"}
|
package/dist/web/search.d.ts
CHANGED
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
* worse than one that admits it.
|
|
13
13
|
*/
|
|
14
14
|
export interface SearchHit {
|
|
15
|
+
/** The workspace it was found in, so a hit from elsewhere can be opened. */
|
|
16
|
+
workspace: string;
|
|
17
|
+
workspaceName: string;
|
|
15
18
|
/** The transcript this came from. */
|
|
16
19
|
file: string;
|
|
17
20
|
task: string;
|
|
@@ -42,4 +45,13 @@ export declare const MAX_HITS_PER_FILE = 8;
|
|
|
42
45
|
* hangs on a bad one, and nobody typing into a sidebar means `(a+)+b`.
|
|
43
46
|
*/
|
|
44
47
|
export declare function searchSessions(cwd: string, query: string): Promise<SearchResult>;
|
|
48
|
+
/**
|
|
49
|
+
* The same search, over more than one workspace.
|
|
50
|
+
*
|
|
51
|
+
* Scoping search to the directory KONECK happens to be pointed at was the wrong default: the
|
|
52
|
+
* question is "when did I deal with this before", and before was often somewhere else. Each
|
|
53
|
+
* workspace keeps its own budget so one enormous history cannot starve the rest, and every hit
|
|
54
|
+
* says which workspace it came from because opening it means going there.
|
|
55
|
+
*/
|
|
56
|
+
export declare function searchAllWorkspaces(workspaces: readonly string[], query: string): Promise<SearchResult>;
|
|
45
57
|
//# sourceMappingURL=search.d.ts.map
|
package/dist/web/search.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/web/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,qFAAqF;IACrF,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AA6CnC;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/web/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,MAAM,WAAW,SAAS;IACxB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,qFAAqF;IACrF,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AA6CnC;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAgEtF;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CA0BvB"}
|
package/dist/web/search.js
CHANGED
|
@@ -127,6 +127,7 @@ export async function searchSessions(cwd, query) {
|
|
|
127
127
|
continue;
|
|
128
128
|
const { snippet, offset } = snippetAround(part.text, found, needle.length);
|
|
129
129
|
hits.push({
|
|
130
|
+
workspace: cwd, workspaceName: path.basename(cwd) || cwd,
|
|
130
131
|
file, task, at, role: part.role,
|
|
131
132
|
...(part.tool ? { tool: part.tool } : {}),
|
|
132
133
|
snippet: redactSecrets(snippet), offset,
|
|
@@ -144,4 +145,41 @@ export async function searchSessions(cwd, query) {
|
|
|
144
145
|
}
|
|
145
146
|
return { hits, filesSearched, capped: capped || hits.length >= MAX_HITS, ms: Date.now() - started };
|
|
146
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* The same search, over more than one workspace.
|
|
150
|
+
*
|
|
151
|
+
* Scoping search to the directory KONECK happens to be pointed at was the wrong default: the
|
|
152
|
+
* question is "when did I deal with this before", and before was often somewhere else. Each
|
|
153
|
+
* workspace keeps its own budget so one enormous history cannot starve the rest, and every hit
|
|
154
|
+
* says which workspace it came from because opening it means going there.
|
|
155
|
+
*/
|
|
156
|
+
export async function searchAllWorkspaces(workspaces, query) {
|
|
157
|
+
const started = Date.now();
|
|
158
|
+
const seen = new Set();
|
|
159
|
+
const hits = [];
|
|
160
|
+
let filesSearched = 0;
|
|
161
|
+
let capped = false;
|
|
162
|
+
for (const workspace of workspaces) {
|
|
163
|
+
const dir = path.resolve(workspace);
|
|
164
|
+
if (seen.has(dir))
|
|
165
|
+
continue; // the launch directory is usually also in the trust store
|
|
166
|
+
seen.add(dir);
|
|
167
|
+
if (hits.length >= MAX_HITS) {
|
|
168
|
+
capped = true;
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
const result = await searchSessions(dir, query);
|
|
172
|
+
hits.push(...result.hits);
|
|
173
|
+
filesSearched += result.filesSearched;
|
|
174
|
+
capped = capped || result.capped;
|
|
175
|
+
}
|
|
176
|
+
// Newest first across all of them, which is the order that makes a mixed list readable.
|
|
177
|
+
hits.sort((a, b) => b.at - a.at);
|
|
178
|
+
return {
|
|
179
|
+
hits: hits.slice(0, MAX_HITS),
|
|
180
|
+
filesSearched,
|
|
181
|
+
capped: capped || hits.length > MAX_HITS,
|
|
182
|
+
ms: Date.now() - started,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
147
185
|
//# sourceMappingURL=search.js.map
|
package/dist/web/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/web/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/web/search.ts"],"names":[],"mappings":"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"}
|
package/dist/web/sessions.d.ts
CHANGED
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { AgentConfig } from '../types.js';
|
|
12
12
|
import { EventBus } from './events.js';
|
|
13
|
+
import { summarise as summariseChanges, type FileChange } from './changes.js';
|
|
13
14
|
import type { TrajectoryEvent } from '../trajectory.js';
|
|
15
|
+
import { type ModeName } from '../permissions.js';
|
|
14
16
|
export interface WebSessionInfo {
|
|
17
|
+
/** Which permission mode this session is running in. */
|
|
18
|
+
mode: ModeName;
|
|
15
19
|
id: string;
|
|
16
20
|
cwd: string;
|
|
17
21
|
title: string;
|
|
@@ -23,6 +27,18 @@ export interface WebSessionInfo {
|
|
|
23
27
|
busy: boolean;
|
|
24
28
|
watchers: number;
|
|
25
29
|
}
|
|
30
|
+
/** What one turn changed on disk. */
|
|
31
|
+
export interface TurnChanges {
|
|
32
|
+
turn: number;
|
|
33
|
+
at: number;
|
|
34
|
+
ms: number;
|
|
35
|
+
changes: FileChange[];
|
|
36
|
+
totals: {
|
|
37
|
+
files: number;
|
|
38
|
+
added: number;
|
|
39
|
+
removed: number;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
26
42
|
export declare class WebSession {
|
|
27
43
|
readonly id: string;
|
|
28
44
|
private config;
|
|
@@ -46,10 +62,39 @@ export declare class WebSession {
|
|
|
46
62
|
private toolCounter;
|
|
47
63
|
/** Start times by tool call, so a duration can be reported without the engine providing one. */
|
|
48
64
|
private readonly toolStarted;
|
|
65
|
+
/**
|
|
66
|
+
* How the workspace looked when this session began, and when the last turn ended.
|
|
67
|
+
*
|
|
68
|
+
* Two snapshots rather than one. The whole-session view needs the first — a sum of per-turn
|
|
69
|
+
* diffs is not the same thing, because a file written in turn two and reverted in turn five is
|
|
70
|
+
* two changes and no net change. The per-turn view needs the second.
|
|
71
|
+
*/
|
|
72
|
+
private baseline;
|
|
73
|
+
private previous;
|
|
74
|
+
/** What each turn changed, in order. */
|
|
75
|
+
readonly turnChanges: TurnChanges[];
|
|
76
|
+
/**
|
|
77
|
+
* The permission mode, and what the user has already agreed to.
|
|
78
|
+
*
|
|
79
|
+
* The engine asks the interface about every tool call and does not decide itself, so an interface
|
|
80
|
+
* that asks about all of them asks about reading a directory — which is what this did, and it made
|
|
81
|
+
* every turn stop dead waiting for a click on something nobody needs to approve. The CLI has had
|
|
82
|
+
* the answer all along in permissions.ts: a mode, a risk per tool, and rules the user has already
|
|
83
|
+
* accepted. Same machinery here, same default.
|
|
84
|
+
*/
|
|
85
|
+
mode: ModeName;
|
|
86
|
+
private readonly rules;
|
|
49
87
|
constructor(id: string, config: AgentConfig);
|
|
50
88
|
info(): WebSessionInfo;
|
|
51
|
-
/**
|
|
52
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Answers a permission request.
|
|
91
|
+
*
|
|
92
|
+
* `always` records a rule, so agreeing to a tool once does not mean agreeing to it forty times —
|
|
93
|
+
* which is the difference between a permission prompt and an obstacle.
|
|
94
|
+
*/
|
|
95
|
+
answer(askId: string, allowed: boolean, always?: boolean): boolean;
|
|
96
|
+
/** Changes the permission mode from the browser. */
|
|
97
|
+
setMode(mode: ModeName): void;
|
|
53
98
|
/** Every request still waiting, so a reconnecting client can show them again. */
|
|
54
99
|
outstandingAsks(): string[];
|
|
55
100
|
/**
|
|
@@ -60,8 +105,22 @@ export declare class WebSession {
|
|
|
60
105
|
*/
|
|
61
106
|
trajectory(): readonly TrajectoryEvent[];
|
|
62
107
|
private ensureAgent;
|
|
108
|
+
/**
|
|
109
|
+
* Takes the opening snapshot.
|
|
110
|
+
*
|
|
111
|
+
* Called once, off the critical path, when the session is created: the walk is bounded but a
|
|
112
|
+
* large workspace still takes a moment, and nothing should wait on a diff view to start working.
|
|
113
|
+
*/
|
|
114
|
+
captureBaseline(): Promise<void>;
|
|
115
|
+
/** Everything this session has changed, against how the workspace looked when it began. */
|
|
116
|
+
changesSinceStart(): Promise<{
|
|
117
|
+
changes: FileChange[];
|
|
118
|
+
totals: ReturnType<typeof summariseChanges>;
|
|
119
|
+
} | null>;
|
|
63
120
|
/** Runs one message. Rejects if a turn is already in flight. */
|
|
64
121
|
send(text: string): Promise<void>;
|
|
122
|
+
/** Snapshots the workspace and records the difference from the previous turn. */
|
|
123
|
+
private recordTurnChanges;
|
|
65
124
|
/** Stops a run in progress, if the engine supports it. */
|
|
66
125
|
abort(): void;
|
|
67
126
|
/** Changes the model or endpoint, which means a new agent on the next message. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/web/sessions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/web/sessions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AACtD,OAAO,EAAqB,SAAS,IAAI,gBAAgB,EACjC,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAoC,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGpF,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAUD,qBAAa,UAAU;IA+CT,QAAQ,CAAC,EAAE,EAAE,MAAM;IAAE,OAAO,CAAC,MAAM;IA9C/C,QAAQ,CAAC,GAAG,WAAkB;IAC9B,QAAQ,CAAC,SAAS,SAAc;IAChC;;;;;;OAMG;IACH,KAAK,SAAK;IACV,KAAK,SAAiB;IACtB,KAAK,SAAK;IACV,WAAW,SAAK;IAChB,IAAI,UAAS;IAEb,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IACxB,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,QAAQ,CAAyB;IACzC,wCAAwC;IACxC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAM;IAEzC;;;;;;;;OAQG;IACH,IAAI,EAAE,QAAQ,CAAU;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;gBAEpB,EAAE,EAAE,MAAM,EAAU,MAAM,EAAE,WAAW;IAE5D,IAAI,IAAI,cAAc;IAUtB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAQ,GAAG,OAAO;IAUhE,oDAAoD;IACpD,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAM7B,iFAAiF;IACjF,eAAe,IAAI,MAAM,EAAE;IAE3B;;;;;OAKG;IACH,UAAU,IAAI,SAAS,eAAe,EAAE;YAI1B,WAAW;IA4EzB;;;;;OAKG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtC,2FAA2F;IACrF,iBAAiB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAOjH,gEAAgE;IAC1D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BvC,iFAAiF;YACnE,iBAAiB;IAa/B,0DAA0D;IAC1D,KAAK,IAAI,IAAI;IAIb,kFAAkF;IAClF,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;CAM/C;AAED,iCAAiC;AACjC,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAC1D,OAAO,CAAC,OAAO,CAAK;IAEpB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU;IAUvC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IACvC,IAAI,IAAI,cAAc,EAAE;IAKxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAC3B,IAAI,IAAI,IAAI,MAAM,CAA+B;CAClD;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
package/dist/web/sessions.js
CHANGED
|
@@ -12,6 +12,8 @@ import path from 'path';
|
|
|
12
12
|
import { createAgentSession } from '../engine.js';
|
|
13
13
|
import { estimateCost } from '../pricing.js';
|
|
14
14
|
import { EventBus } from './events.js';
|
|
15
|
+
import { snapshot, compare, summarise as summariseChanges } from './changes.js';
|
|
16
|
+
import { decide, modeSpec } from '../permissions.js';
|
|
15
17
|
import { redactSecrets } from '../redact.js';
|
|
16
18
|
export class WebSession {
|
|
17
19
|
id;
|
|
@@ -36,28 +38,64 @@ export class WebSession {
|
|
|
36
38
|
toolCounter = 0;
|
|
37
39
|
/** Start times by tool call, so a duration can be reported without the engine providing one. */
|
|
38
40
|
toolStarted = new Map();
|
|
41
|
+
/**
|
|
42
|
+
* How the workspace looked when this session began, and when the last turn ended.
|
|
43
|
+
*
|
|
44
|
+
* Two snapshots rather than one. The whole-session view needs the first — a sum of per-turn
|
|
45
|
+
* diffs is not the same thing, because a file written in turn two and reverted in turn five is
|
|
46
|
+
* two changes and no net change. The per-turn view needs the second.
|
|
47
|
+
*/
|
|
48
|
+
baseline = null;
|
|
49
|
+
previous = null;
|
|
50
|
+
/** What each turn changed, in order. */
|
|
51
|
+
turnChanges = [];
|
|
52
|
+
/**
|
|
53
|
+
* The permission mode, and what the user has already agreed to.
|
|
54
|
+
*
|
|
55
|
+
* The engine asks the interface about every tool call and does not decide itself, so an interface
|
|
56
|
+
* that asks about all of them asks about reading a directory — which is what this did, and it made
|
|
57
|
+
* every turn stop dead waiting for a click on something nobody needs to approve. The CLI has had
|
|
58
|
+
* the answer all along in permissions.ts: a mode, a risk per tool, and rules the user has already
|
|
59
|
+
* accepted. Same machinery here, same default.
|
|
60
|
+
*/
|
|
61
|
+
mode = 'auto';
|
|
62
|
+
rules = [];
|
|
39
63
|
constructor(id, config) {
|
|
40
64
|
this.id = id;
|
|
41
65
|
this.config = config;
|
|
42
66
|
}
|
|
43
67
|
info() {
|
|
44
68
|
return {
|
|
69
|
+
mode: this.mode,
|
|
45
70
|
id: this.id, cwd: this.config.cwd, title: this.title,
|
|
46
71
|
provider: this.config.provider, model: this.config.model,
|
|
47
72
|
createdAt: this.createdAt, turns: this.turns, totalTokens: this.totalTokens,
|
|
48
73
|
busy: this.busy, watchers: this.bus.watchers,
|
|
49
74
|
};
|
|
50
75
|
}
|
|
51
|
-
/**
|
|
52
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Answers a permission request.
|
|
78
|
+
*
|
|
79
|
+
* `always` records a rule, so agreeing to a tool once does not mean agreeing to it forty times —
|
|
80
|
+
* which is the difference between a permission prompt and an obstacle.
|
|
81
|
+
*/
|
|
82
|
+
answer(askId, allowed, always = false) {
|
|
53
83
|
const waiting = this.pending.get(askId);
|
|
54
84
|
if (!waiting)
|
|
55
85
|
return false;
|
|
56
86
|
this.pending.delete(askId);
|
|
87
|
+
if (allowed && always && waiting.tool)
|
|
88
|
+
this.rules.push({ tool: waiting.tool });
|
|
57
89
|
waiting.resolve(allowed);
|
|
58
90
|
this.bus.emit({ t: 'ask-done', askId, allowed });
|
|
59
91
|
return true;
|
|
60
92
|
}
|
|
93
|
+
/** Changes the permission mode from the browser. */
|
|
94
|
+
setMode(mode) {
|
|
95
|
+
this.mode = mode;
|
|
96
|
+
this.bus.emit({ t: 'notice', level: 'info',
|
|
97
|
+
text: `Mode: ${modeSpec(mode).label} — ${modeSpec(mode).blurb}` });
|
|
98
|
+
}
|
|
61
99
|
/** Every request still waiting, so a reconnecting client can show them again. */
|
|
62
100
|
outstandingAsks() { return [...this.pending.keys()]; }
|
|
63
101
|
/**
|
|
@@ -80,9 +118,17 @@ export class WebSession {
|
|
|
80
118
|
// block for ever or auto-allow, and auto-allowing a write because the UI is a web page
|
|
81
119
|
// rather than a terminal is not a decision anyone made.
|
|
82
120
|
approve: async (tool, args) => {
|
|
121
|
+
const verdict = decide(this.mode, tool, args, this.rules);
|
|
122
|
+
if (verdict === 'allow')
|
|
123
|
+
return true;
|
|
124
|
+
if (verdict === 'deny') {
|
|
125
|
+
bus.emit({ t: 'notice', level: 'warn',
|
|
126
|
+
text: `${tool} is not allowed in ${modeSpec(this.mode).label} mode.` });
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
83
129
|
const askId = `ask-${++this.askCounter}`;
|
|
84
130
|
return new Promise(resolve => {
|
|
85
|
-
this.pending.set(askId, { id: askId, resolve });
|
|
131
|
+
this.pending.set(askId, { id: askId, tool, resolve });
|
|
86
132
|
bus.emit({ t: 'ask', askId, tool, args: redactSecrets(args),
|
|
87
133
|
waiting: this.pending.size - 1 });
|
|
88
134
|
});
|
|
@@ -126,6 +172,28 @@ export class WebSession {
|
|
|
126
172
|
provider: this.config.provider, model: this.config.model });
|
|
127
173
|
return this.agent;
|
|
128
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Takes the opening snapshot.
|
|
177
|
+
*
|
|
178
|
+
* Called once, off the critical path, when the session is created: the walk is bounded but a
|
|
179
|
+
* large workspace still takes a moment, and nothing should wait on a diff view to start working.
|
|
180
|
+
*/
|
|
181
|
+
async captureBaseline() {
|
|
182
|
+
const snap = await snapshot(this.config.cwd).catch(() => null);
|
|
183
|
+
if (!snap)
|
|
184
|
+
return;
|
|
185
|
+
this.baseline = snap;
|
|
186
|
+
if (!this.previous)
|
|
187
|
+
this.previous = snap;
|
|
188
|
+
}
|
|
189
|
+
/** Everything this session has changed, against how the workspace looked when it began. */
|
|
190
|
+
async changesSinceStart() {
|
|
191
|
+
if (!this.baseline)
|
|
192
|
+
return null;
|
|
193
|
+
const now = await snapshot(this.config.cwd);
|
|
194
|
+
const changes = compare(this.baseline, now);
|
|
195
|
+
return { changes, totals: summariseChanges(changes) };
|
|
196
|
+
}
|
|
129
197
|
/** Runs one message. Rejects if a turn is already in flight. */
|
|
130
198
|
async send(text) {
|
|
131
199
|
if (this.busy)
|
|
@@ -139,7 +207,12 @@ export class WebSession {
|
|
|
139
207
|
const agent = await this.ensureAgent();
|
|
140
208
|
const completed = await agent.send(text);
|
|
141
209
|
this.turns++;
|
|
142
|
-
|
|
210
|
+
const ms = Date.now() - started;
|
|
211
|
+
// What this turn changed, taken while it is still true. Comparing at the end of the session
|
|
212
|
+
// would answer a different question — "what changed overall" hides a file written and then
|
|
213
|
+
// rewritten, which is exactly the thing worth seeing.
|
|
214
|
+
await this.recordTurnChanges(ms).catch(() => { });
|
|
215
|
+
this.bus.emit({ t: 'turn-end', ms, completed });
|
|
143
216
|
}
|
|
144
217
|
catch (err) {
|
|
145
218
|
this.bus.emit({ t: 'error', text: redactSecrets(err.message) });
|
|
@@ -156,6 +229,23 @@ export class WebSession {
|
|
|
156
229
|
this.pending.clear();
|
|
157
230
|
}
|
|
158
231
|
}
|
|
232
|
+
/** Snapshots the workspace and records the difference from the previous turn. */
|
|
233
|
+
async recordTurnChanges(ms) {
|
|
234
|
+
if (!this.previous) {
|
|
235
|
+
await this.captureBaseline();
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const now = await snapshot(this.config.cwd);
|
|
239
|
+
const changes = compare(this.previous, now);
|
|
240
|
+
this.previous = now;
|
|
241
|
+
if (!changes.length)
|
|
242
|
+
return; // a turn that read and reported is not a change
|
|
243
|
+
const entry = {
|
|
244
|
+
turn: this.turns, at: Date.now(), ms, changes, totals: summariseChanges(changes),
|
|
245
|
+
};
|
|
246
|
+
this.turnChanges.push(entry);
|
|
247
|
+
this.bus.emit({ t: 'changed', turn: entry.turn, ...entry.totals });
|
|
248
|
+
}
|
|
159
249
|
/** Stops a run in progress, if the engine supports it. */
|
|
160
250
|
abort() {
|
|
161
251
|
this.agent?.abort?.();
|