@cookielab.io/klovi 3.0.0-beta.21 → 3.0.0-beta.23
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/cli.js +19 -28
- package/dist/server.js +19 -28
- package/dist/web/{index-6620fj3p.js → index-8jyvb2r9.js} +73 -73
- package/dist/web/index.html +1 -1
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -62,6 +62,16 @@ var init_plugin_errors = __esm(() => {
|
|
|
62
62
|
function encodeSessionId(pluginId, rawSessionId) {
|
|
63
63
|
return `${pluginId}${SESSION_ID_SEPARATOR}${rawSessionId}`;
|
|
64
64
|
}
|
|
65
|
+
function parseSessionId(sessionId) {
|
|
66
|
+
const separatorIdx = sessionId.indexOf(SESSION_ID_SEPARATOR);
|
|
67
|
+
if (separatorIdx === -1) {
|
|
68
|
+
return { pluginId: null, rawSessionId: sessionId };
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
pluginId: sessionId.slice(0, separatorIdx),
|
|
72
|
+
rawSessionId: sessionId.slice(separatorIdx + SESSION_ID_SEPARATOR.length)
|
|
73
|
+
};
|
|
74
|
+
}
|
|
65
75
|
var SESSION_ID_SEPARATOR = "::";
|
|
66
76
|
|
|
67
77
|
// ../../packages/plugin-core/src/plugin-registry.ts
|
|
@@ -774,6 +784,7 @@ class ServerConfig extends Context3.Tag("@klovi/ServerConfig")() {
|
|
|
774
784
|
import { Context as Context4, Effect as Effect18, Layer as Layer6 } from "effect";
|
|
775
785
|
|
|
776
786
|
// ../../packages/server/src/services/app-services.ts
|
|
787
|
+
init_src();
|
|
777
788
|
import { access, rm } from "node:fs/promises";
|
|
778
789
|
|
|
779
790
|
// ../../packages/plugin-claude-code/src/index.ts
|
|
@@ -2215,27 +2226,6 @@ var BUILTIN_PLUGIN_DESCRIPTORS = [
|
|
|
2215
2226
|
];
|
|
2216
2227
|
var BUILTIN_PLUGIN_ID_SET = new Set(BUILTIN_PLUGIN_DESCRIPTORS.map((descriptor) => descriptor.plugin.id));
|
|
2217
2228
|
|
|
2218
|
-
// ../../packages/server/src/services/iso-time.ts
|
|
2219
|
-
function sortByIsoDesc2(items, select) {
|
|
2220
|
-
items.sort((a, b) => select(b).localeCompare(select(a)));
|
|
2221
|
-
}
|
|
2222
|
-
|
|
2223
|
-
// ../../packages/server/src/services/session-id.ts
|
|
2224
|
-
var SESSION_ID_SEPARATOR2 = "::";
|
|
2225
|
-
function encodeSessionId3(pluginId, rawSessionId) {
|
|
2226
|
-
return `${pluginId}${SESSION_ID_SEPARATOR2}${rawSessionId}`;
|
|
2227
|
-
}
|
|
2228
|
-
function parseSessionId2(sessionId) {
|
|
2229
|
-
const separatorIdx = sessionId.indexOf(SESSION_ID_SEPARATOR2);
|
|
2230
|
-
if (separatorIdx === -1) {
|
|
2231
|
-
return { pluginId: null, rawSessionId: sessionId };
|
|
2232
|
-
}
|
|
2233
|
-
return {
|
|
2234
|
-
pluginId: sessionId.slice(0, separatorIdx),
|
|
2235
|
-
rawSessionId: sessionId.slice(separatorIdx + SESSION_ID_SEPARATOR2.length)
|
|
2236
|
-
};
|
|
2237
|
-
}
|
|
2238
|
-
|
|
2239
2229
|
// ../../packages/server/src/services/settings.ts
|
|
2240
2230
|
init_src();
|
|
2241
2231
|
import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
|
|
@@ -2278,6 +2268,7 @@ async function saveSettings(path, settings) {
|
|
|
2278
2268
|
}
|
|
2279
2269
|
|
|
2280
2270
|
// ../../packages/server/src/services/stats.ts
|
|
2271
|
+
init_src();
|
|
2281
2272
|
function emptyStats(projects = 0) {
|
|
2282
2273
|
return {
|
|
2283
2274
|
projects,
|
|
@@ -2357,7 +2348,7 @@ async function loadSessionForStats(registry, project, session) {
|
|
|
2357
2348
|
return null;
|
|
2358
2349
|
const plugin = registry.getPlugin(session.pluginId);
|
|
2359
2350
|
const pluginConfig = registry.getPluginConfig(session.pluginId);
|
|
2360
|
-
const { rawSessionId } =
|
|
2351
|
+
const { rawSessionId } = parseSessionId(session.sessionId);
|
|
2361
2352
|
const loaded = await runPluginEffect(plugin.loadSession(source.nativeId, rawSessionId), pluginConfig).catch(() => null);
|
|
2362
2353
|
return loaded?.turns ?? null;
|
|
2363
2354
|
}
|
|
@@ -2417,7 +2408,7 @@ async function getSessions(registry, params) {
|
|
|
2417
2408
|
return { sessions };
|
|
2418
2409
|
}
|
|
2419
2410
|
async function getSession(registry, params) {
|
|
2420
|
-
const parsed =
|
|
2411
|
+
const parsed = parseSessionId(params.sessionId);
|
|
2421
2412
|
if (!parsed.pluginId || !parsed.rawSessionId) {
|
|
2422
2413
|
throw new Error("Invalid sessionId format");
|
|
2423
2414
|
}
|
|
@@ -2434,14 +2425,14 @@ async function getSession(registry, params) {
|
|
|
2434
2425
|
const pluginConfig = registry.getPluginConfig(pluginId);
|
|
2435
2426
|
const sessionDetail = plugin.loadSessionDetail ? await runPluginEffect(plugin.loadSessionDetail(source.nativeId, rawSessionId), pluginConfig) : undefined;
|
|
2436
2427
|
const session = sessionDetail?.session ?? await runPluginEffect(plugin.loadSession(source.nativeId, rawSessionId), pluginConfig);
|
|
2437
|
-
session.sessionId =
|
|
2428
|
+
session.sessionId = encodeSessionId(pluginId, rawSessionId);
|
|
2438
2429
|
session.pluginId = pluginId;
|
|
2439
|
-
session.planSessionId = sessionDetail?.planSessionId ?
|
|
2440
|
-
session.implSessionId = sessionDetail?.implSessionId ?
|
|
2430
|
+
session.planSessionId = sessionDetail?.planSessionId ? encodeSessionId(pluginId, sessionDetail.planSessionId) : undefined;
|
|
2431
|
+
session.implSessionId = sessionDetail?.implSessionId ? encodeSessionId(pluginId, sessionDetail.implSessionId) : undefined;
|
|
2441
2432
|
return { session };
|
|
2442
2433
|
}
|
|
2443
2434
|
async function getSubAgent(registry, params) {
|
|
2444
|
-
const parsed =
|
|
2435
|
+
const parsed = parseSessionId(params.sessionId);
|
|
2445
2436
|
if (!parsed.pluginId || !parsed.rawSessionId) {
|
|
2446
2437
|
throw new Error("Invalid sessionId format");
|
|
2447
2438
|
}
|
|
@@ -2475,7 +2466,7 @@ async function searchSessions(registry) {
|
|
|
2475
2466
|
});
|
|
2476
2467
|
}
|
|
2477
2468
|
}
|
|
2478
|
-
|
|
2469
|
+
sortByIsoDesc(allSessions, (session) => session.timestamp);
|
|
2479
2470
|
return { sessions: allSessions };
|
|
2480
2471
|
}
|
|
2481
2472
|
async function buildPluginSettingsResponse(settingsPath) {
|
package/dist/server.js
CHANGED
|
@@ -61,6 +61,16 @@ var init_plugin_errors = __esm(() => {
|
|
|
61
61
|
function encodeSessionId(pluginId, rawSessionId) {
|
|
62
62
|
return `${pluginId}${SESSION_ID_SEPARATOR}${rawSessionId}`;
|
|
63
63
|
}
|
|
64
|
+
function parseSessionId(sessionId) {
|
|
65
|
+
const separatorIdx = sessionId.indexOf(SESSION_ID_SEPARATOR);
|
|
66
|
+
if (separatorIdx === -1) {
|
|
67
|
+
return { pluginId: null, rawSessionId: sessionId };
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
pluginId: sessionId.slice(0, separatorIdx),
|
|
71
|
+
rawSessionId: sessionId.slice(separatorIdx + SESSION_ID_SEPARATOR.length)
|
|
72
|
+
};
|
|
73
|
+
}
|
|
64
74
|
var SESSION_ID_SEPARATOR = "::";
|
|
65
75
|
|
|
66
76
|
// ../../packages/plugin-core/src/plugin-registry.ts
|
|
@@ -773,6 +783,7 @@ class ServerConfig extends Context3.Tag("@klovi/ServerConfig")() {
|
|
|
773
783
|
import { Context as Context4, Effect as Effect18, Layer as Layer6 } from "effect";
|
|
774
784
|
|
|
775
785
|
// ../../packages/server/src/services/app-services.ts
|
|
786
|
+
init_src();
|
|
776
787
|
import { access, rm } from "node:fs/promises";
|
|
777
788
|
|
|
778
789
|
// ../../packages/plugin-claude-code/src/index.ts
|
|
@@ -2214,27 +2225,6 @@ var BUILTIN_PLUGIN_DESCRIPTORS = [
|
|
|
2214
2225
|
];
|
|
2215
2226
|
var BUILTIN_PLUGIN_ID_SET = new Set(BUILTIN_PLUGIN_DESCRIPTORS.map((descriptor) => descriptor.plugin.id));
|
|
2216
2227
|
|
|
2217
|
-
// ../../packages/server/src/services/iso-time.ts
|
|
2218
|
-
function sortByIsoDesc2(items, select) {
|
|
2219
|
-
items.sort((a, b) => select(b).localeCompare(select(a)));
|
|
2220
|
-
}
|
|
2221
|
-
|
|
2222
|
-
// ../../packages/server/src/services/session-id.ts
|
|
2223
|
-
var SESSION_ID_SEPARATOR2 = "::";
|
|
2224
|
-
function encodeSessionId3(pluginId, rawSessionId) {
|
|
2225
|
-
return `${pluginId}${SESSION_ID_SEPARATOR2}${rawSessionId}`;
|
|
2226
|
-
}
|
|
2227
|
-
function parseSessionId2(sessionId) {
|
|
2228
|
-
const separatorIdx = sessionId.indexOf(SESSION_ID_SEPARATOR2);
|
|
2229
|
-
if (separatorIdx === -1) {
|
|
2230
|
-
return { pluginId: null, rawSessionId: sessionId };
|
|
2231
|
-
}
|
|
2232
|
-
return {
|
|
2233
|
-
pluginId: sessionId.slice(0, separatorIdx),
|
|
2234
|
-
rawSessionId: sessionId.slice(separatorIdx + SESSION_ID_SEPARATOR2.length)
|
|
2235
|
-
};
|
|
2236
|
-
}
|
|
2237
|
-
|
|
2238
2228
|
// ../../packages/server/src/services/settings.ts
|
|
2239
2229
|
init_src();
|
|
2240
2230
|
import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
|
|
@@ -2277,6 +2267,7 @@ async function saveSettings(path, settings) {
|
|
|
2277
2267
|
}
|
|
2278
2268
|
|
|
2279
2269
|
// ../../packages/server/src/services/stats.ts
|
|
2270
|
+
init_src();
|
|
2280
2271
|
function emptyStats(projects = 0) {
|
|
2281
2272
|
return {
|
|
2282
2273
|
projects,
|
|
@@ -2356,7 +2347,7 @@ async function loadSessionForStats(registry, project, session) {
|
|
|
2356
2347
|
return null;
|
|
2357
2348
|
const plugin = registry.getPlugin(session.pluginId);
|
|
2358
2349
|
const pluginConfig = registry.getPluginConfig(session.pluginId);
|
|
2359
|
-
const { rawSessionId } =
|
|
2350
|
+
const { rawSessionId } = parseSessionId(session.sessionId);
|
|
2360
2351
|
const loaded = await runPluginEffect(plugin.loadSession(source.nativeId, rawSessionId), pluginConfig).catch(() => null);
|
|
2361
2352
|
return loaded?.turns ?? null;
|
|
2362
2353
|
}
|
|
@@ -2416,7 +2407,7 @@ async function getSessions(registry, params) {
|
|
|
2416
2407
|
return { sessions };
|
|
2417
2408
|
}
|
|
2418
2409
|
async function getSession(registry, params) {
|
|
2419
|
-
const parsed =
|
|
2410
|
+
const parsed = parseSessionId(params.sessionId);
|
|
2420
2411
|
if (!parsed.pluginId || !parsed.rawSessionId) {
|
|
2421
2412
|
throw new Error("Invalid sessionId format");
|
|
2422
2413
|
}
|
|
@@ -2433,14 +2424,14 @@ async function getSession(registry, params) {
|
|
|
2433
2424
|
const pluginConfig = registry.getPluginConfig(pluginId);
|
|
2434
2425
|
const sessionDetail = plugin.loadSessionDetail ? await runPluginEffect(plugin.loadSessionDetail(source.nativeId, rawSessionId), pluginConfig) : undefined;
|
|
2435
2426
|
const session = sessionDetail?.session ?? await runPluginEffect(plugin.loadSession(source.nativeId, rawSessionId), pluginConfig);
|
|
2436
|
-
session.sessionId =
|
|
2427
|
+
session.sessionId = encodeSessionId(pluginId, rawSessionId);
|
|
2437
2428
|
session.pluginId = pluginId;
|
|
2438
|
-
session.planSessionId = sessionDetail?.planSessionId ?
|
|
2439
|
-
session.implSessionId = sessionDetail?.implSessionId ?
|
|
2429
|
+
session.planSessionId = sessionDetail?.planSessionId ? encodeSessionId(pluginId, sessionDetail.planSessionId) : undefined;
|
|
2430
|
+
session.implSessionId = sessionDetail?.implSessionId ? encodeSessionId(pluginId, sessionDetail.implSessionId) : undefined;
|
|
2440
2431
|
return { session };
|
|
2441
2432
|
}
|
|
2442
2433
|
async function getSubAgent(registry, params) {
|
|
2443
|
-
const parsed =
|
|
2434
|
+
const parsed = parseSessionId(params.sessionId);
|
|
2444
2435
|
if (!parsed.pluginId || !parsed.rawSessionId) {
|
|
2445
2436
|
throw new Error("Invalid sessionId format");
|
|
2446
2437
|
}
|
|
@@ -2474,7 +2465,7 @@ async function searchSessions(registry) {
|
|
|
2474
2465
|
});
|
|
2475
2466
|
}
|
|
2476
2467
|
}
|
|
2477
|
-
|
|
2468
|
+
sortByIsoDesc(allSessions, (session) => session.timestamp);
|
|
2478
2469
|
return { sessions: allSessions };
|
|
2479
2470
|
}
|
|
2480
2471
|
async function buildPluginSettingsResponse(settingsPath) {
|