codesesh 1.0.5 → 1.0.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.
- package/README.md +1 -0
- package/dist/{chunk-PAP2Q3WV.js → chunk-DE6UJMOY.js} +2 -2
- package/dist/{chunk-YQFEGFWD.js → chunk-EYZ73CYP.js} +2 -2
- package/dist/{chunk-NBJJGH5P.js → chunk-QHWSZFRM.js} +118 -74
- package/dist/chunk-QHWSZFRM.js.map +1 -0
- package/dist/{chunk-WUYSZAYR.js → chunk-SII3M66U.js} +13 -6
- package/dist/chunk-SII3M66U.js.map +1 -0
- package/dist/{chunk-TS3IWH5U.js → chunk-VVCSQU5B.js} +120 -20
- package/dist/chunk-VVCSQU5B.js.map +1 -0
- package/dist/{chunk-FCYCBGEL.js → chunk-WIWK7BXS.js} +3 -3
- package/dist/{chunk-XKZSX5BM.js → chunk-YEQTRALH.js} +3 -3
- package/dist/{discovery-D23RV7FY.js → discovery-4WAEYSTR.js} +7 -5
- package/dist/index.js +217 -150
- package/dist/index.js.map +1 -1
- package/dist/project-identity-worker.js +4 -4
- package/dist/scan-refresh-worker.js +6 -6
- package/dist/search-index-worker.js +6 -6
- package/dist/session-detail-worker.js +6 -6
- package/dist/smart-tag-worker.js +3 -3
- package/dist/web/assets/CustomTimeWindowDialog-CVURkiVO.js +1 -0
- package/dist/web/assets/InteractiveReceipt-DGC-xV7U.js +1 -0
- package/dist/web/assets/OverviewScreen-DoXrZ5qp.js +1 -0
- package/dist/web/assets/{PrismHighlighter-LWITDffT.js → PrismHighlighter-02695Lmx.js} +1 -1
- package/dist/web/assets/Projects-DZiYh6hp.js +1 -0
- package/dist/web/assets/SearchResultsPanel-CAQe8Di0.js +1 -0
- package/dist/web/assets/SessionDetail-Da8EBygt.js +53 -0
- package/dist/web/assets/api-ToidoNW6.js +1 -0
- package/dist/web/assets/index-Bl8pbRFj.js +1423 -0
- package/dist/web/assets/index-CRI1m3xN.css +1 -0
- package/dist/web/assets/session-indexes-D5gps7K8.js +4 -0
- package/dist/web/assets/translate-BDFu3ZiK.js +2 -0
- package/dist/web/assets/utils-BIZi2up3.js +1 -0
- package/dist/web/index.html +7 -7
- package/package.json +3 -3
- package/dist/chunk-NBJJGH5P.js.map +0 -1
- package/dist/chunk-TS3IWH5U.js.map +0 -1
- package/dist/chunk-WUYSZAYR.js.map +0 -1
- package/dist/web/assets/CustomTimeWindowDialog-C9XTZRm0.js +0 -1
- package/dist/web/assets/InteractiveReceipt-Sca1smpv.js +0 -1
- package/dist/web/assets/OverviewScreen-Vq6BQR9_.js +0 -1
- package/dist/web/assets/Projects-CwicV3Dk.js +0 -1
- package/dist/web/assets/SearchResultsPanel-DCO0Ak0c.js +0 -1
- package/dist/web/assets/SessionDetail-mdmTQgo1.js +0 -53
- package/dist/web/assets/api-CXVT9XcZ.js +0 -1
- package/dist/web/assets/contract-BS78VBCV.js +0 -2
- package/dist/web/assets/index-C5cyw58A.css +0 -1
- package/dist/web/assets/index-H2cT-6c6.js +0 -1423
- package/dist/web/assets/session-indexes-yyyWpKLf.js +0 -4
- package/dist/web/assets/utils-C7BqyxxV.js +0 -1
- /package/dist/{chunk-PAP2Q3WV.js.map → chunk-DE6UJMOY.js.map} +0 -0
- /package/dist/{chunk-YQFEGFWD.js.map → chunk-EYZ73CYP.js.map} +0 -0
- /package/dist/{chunk-FCYCBGEL.js.map → chunk-WIWK7BXS.js.map} +0 -0
- /package/dist/{chunk-XKZSX5BM.js.map → chunk-YEQTRALH.js.map} +0 -0
- /package/dist/{discovery-D23RV7FY.js.map → discovery-4WAEYSTR.js.map} +0 -0
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
normalizeProjectDirectory,
|
|
9
9
|
normalizeProjectScopePath,
|
|
10
10
|
realFs
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YEQTRALH.js";
|
|
12
12
|
import {
|
|
13
13
|
SessionScanError,
|
|
14
14
|
createAgentScanFailure,
|
|
15
15
|
createRegisteredAgents,
|
|
16
16
|
reportAgentScanFailure
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-SII3M66U.js";
|
|
18
18
|
import {
|
|
19
19
|
SMART_TAG_CLASSIFIER_REVISION,
|
|
20
20
|
assertIdentifiedSessionHead,
|
|
@@ -41,12 +41,12 @@ import {
|
|
|
41
41
|
setUserVersion,
|
|
42
42
|
sortSessionsByActivity,
|
|
43
43
|
tableExists
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-QHWSZFRM.js";
|
|
45
45
|
|
|
46
|
-
// ../core/dist/chunk-
|
|
47
|
-
var CACHE_SCHEMA_VERSION =
|
|
46
|
+
// ../core/dist/chunk-SU7BSXP6.mjs
|
|
47
|
+
var CACHE_SCHEMA_VERSION = 34;
|
|
48
48
|
|
|
49
|
-
// ../core/dist/chunk-
|
|
49
|
+
// ../core/dist/chunk-ETPINEFU.mjs
|
|
50
50
|
import { existsSync } from "fs";
|
|
51
51
|
import { join } from "path";
|
|
52
52
|
import { homedir } from "os";
|
|
@@ -243,6 +243,15 @@ function discardPublicationStaging(db, publicationId, agentName) {
|
|
|
243
243
|
deletePublicationPayloads(db, publicationId, agentName);
|
|
244
244
|
}
|
|
245
245
|
var CACHE_CONTENT_MIGRATIONS = [
|
|
246
|
+
{
|
|
247
|
+
key: "pi_automated_messages_v1",
|
|
248
|
+
apply(db) {
|
|
249
|
+
if (!tableExists(db, "sessions") || !tableExists(db, "pending_reindex")) return;
|
|
250
|
+
db.exec(
|
|
251
|
+
"INSERT OR IGNORE INTO pending_reindex(agent_name, session_id) SELECT agent_name, session_id FROM sessions WHERE agent_name = 'pi'"
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
},
|
|
246
255
|
{
|
|
247
256
|
key: "codex_exec_decode_migrated_v3",
|
|
248
257
|
apply(db) {
|
|
@@ -298,7 +307,8 @@ function messageCursorContentFromCachedRow(row) {
|
|
|
298
307
|
partsJson: String(row.parts_json),
|
|
299
308
|
partsFormatVersion: row.parts_format_version,
|
|
300
309
|
subagentId: row.subagent_id,
|
|
301
|
-
nickname: row.nickname
|
|
310
|
+
nickname: row.nickname,
|
|
311
|
+
automated: row.automated
|
|
302
312
|
};
|
|
303
313
|
}
|
|
304
314
|
function messageCursorContentFromStructuredRecord(record) {
|
|
@@ -317,7 +327,8 @@ function messageCursorContentFromStructuredRecord(record) {
|
|
|
317
327
|
partsJson: record.partsJson,
|
|
318
328
|
partsFormatVersion: MESSAGE_PARTS_FORMAT_VERSION,
|
|
319
329
|
subagentId: record.subagentId,
|
|
320
|
-
nickname: record.nickname
|
|
330
|
+
nickname: record.nickname,
|
|
331
|
+
automated: record.automated
|
|
321
332
|
};
|
|
322
333
|
}
|
|
323
334
|
function stringifyOptionalJson(value) {
|
|
@@ -575,7 +586,8 @@ function messageMetadataFromBackfillRow(row) {
|
|
|
575
586
|
model: row.model ?? null,
|
|
576
587
|
provider: row.provider ?? null,
|
|
577
588
|
subagent_id: row.subagent_id ?? void 0,
|
|
578
|
-
nickname: row.nickname ?? void 0
|
|
589
|
+
nickname: row.nickname ?? void 0,
|
|
590
|
+
...row.automated ? { automated: true } : {}
|
|
579
591
|
};
|
|
580
592
|
}
|
|
581
593
|
function messageMetadataFromCachedRow(row) {
|
|
@@ -738,6 +750,7 @@ function normalizeMessages(session) {
|
|
|
738
750
|
partsJson: JSON.stringify(message.parts),
|
|
739
751
|
subagentId: message.subagent_id ?? null,
|
|
740
752
|
nickname: message.nickname ?? null,
|
|
753
|
+
automated: message.automated ? 1 : 0,
|
|
741
754
|
contentText: buildMessageText(message),
|
|
742
755
|
toolMetadataJson: toolMetadata.length > 0 ? JSON.stringify(toolMetadata) : null,
|
|
743
756
|
toolNames: toolNamesFromMessage(message)
|
|
@@ -858,6 +871,7 @@ function createSessionTables(db) {
|
|
|
858
871
|
content_chain_digest TEXT,
|
|
859
872
|
subagent_id TEXT,
|
|
860
873
|
nickname TEXT,
|
|
874
|
+
automated INTEGER NOT NULL DEFAULT 0,
|
|
861
875
|
content_text TEXT NOT NULL,
|
|
862
876
|
tool_metadata_json TEXT,
|
|
863
877
|
PRIMARY KEY (agent_name, session_id, message_index),
|
|
@@ -868,7 +882,14 @@ function createSessionTables(db) {
|
|
|
868
882
|
|
|
869
883
|
CREATE INDEX IF NOT EXISTS idx_messages_session
|
|
870
884
|
ON messages(agent_name, session_id, message_index);
|
|
871
|
-
|
|
885
|
+
`);
|
|
886
|
+
createMessageUsageIndex(db);
|
|
887
|
+
createSessionModelCostTable(db);
|
|
888
|
+
createSessionCostSummaryTable(db);
|
|
889
|
+
createMessageToolTables(db);
|
|
890
|
+
}
|
|
891
|
+
function createMessageUsageIndex(db) {
|
|
892
|
+
db.exec(`
|
|
872
893
|
CREATE INDEX IF NOT EXISTS idx_messages_usage_time
|
|
873
894
|
ON messages(
|
|
874
895
|
CASE
|
|
@@ -876,12 +897,14 @@ function createSessionTables(db) {
|
|
|
876
897
|
WHEN time_created > 0 THEN time_created
|
|
877
898
|
END,
|
|
878
899
|
agent_name,
|
|
879
|
-
session_id
|
|
900
|
+
session_id,
|
|
901
|
+
message_index,
|
|
902
|
+
model,
|
|
903
|
+
tokens_json,
|
|
904
|
+
cost,
|
|
905
|
+
cost_source
|
|
880
906
|
);
|
|
881
907
|
`);
|
|
882
|
-
createSessionModelCostTable(db);
|
|
883
|
-
createSessionCostSummaryTable(db);
|
|
884
|
-
createMessageToolTables(db);
|
|
885
908
|
}
|
|
886
909
|
function createSessionModelCostTable(db) {
|
|
887
910
|
db.exec(`
|
|
@@ -1217,6 +1240,11 @@ function recreateProjectGroupsView(db) {
|
|
|
1217
1240
|
db.exec("DROP VIEW IF EXISTS project_groups_v");
|
|
1218
1241
|
createProjectGroupsView(db);
|
|
1219
1242
|
}
|
|
1243
|
+
function createUserActivityIndex(db) {
|
|
1244
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_messages_user_activity
|
|
1245
|
+
ON messages(time_created, agent_name, session_id)
|
|
1246
|
+
WHERE role = 'user' AND automated = 0 AND time_created > 0`);
|
|
1247
|
+
}
|
|
1220
1248
|
function runSearchIndexWrite(db, rebuild, write, transaction = "immediate") {
|
|
1221
1249
|
const execute = () => {
|
|
1222
1250
|
if (rebuild) {
|
|
@@ -2033,6 +2061,7 @@ function ensureCacheSchema(db, dbPath) {
|
|
|
2033
2061
|
}
|
|
2034
2062
|
if (currentVersion === 0 && !hasAnyCacheSchema(db)) {
|
|
2035
2063
|
createLatestCacheSchema(db);
|
|
2064
|
+
createUserActivityIndex(db);
|
|
2036
2065
|
createSearchStateIndex(db);
|
|
2037
2066
|
setCacheSchemaVersion(db);
|
|
2038
2067
|
runCacheContentMigrations(db);
|
|
@@ -2116,10 +2145,27 @@ function ensureCacheSchema(db, dbPath) {
|
|
|
2116
2145
|
{ version: 29, migrate: addSessionUsageSummary },
|
|
2117
2146
|
{ version: 30, destructive: true, migrate: dropDerivedSessionSlug },
|
|
2118
2147
|
{ version: 31, migrate: dropDurablePublicationStaging },
|
|
2119
|
-
{ version: 32, migrate: dropLegacyCacheTables }
|
|
2148
|
+
{ version: 32, migrate: dropLegacyCacheTables },
|
|
2149
|
+
{
|
|
2150
|
+
version: 33,
|
|
2151
|
+
migrate(db2) {
|
|
2152
|
+
db2.exec("DROP INDEX IF EXISTS idx_messages_usage_time");
|
|
2153
|
+
createMessageUsageIndex(db2);
|
|
2154
|
+
}
|
|
2155
|
+
},
|
|
2156
|
+
{
|
|
2157
|
+
version: 34,
|
|
2158
|
+
migrate(db2) {
|
|
2159
|
+
if (!columnExists(db2, "messages", "automated")) {
|
|
2160
|
+
db2.exec("ALTER TABLE messages ADD COLUMN automated INTEGER NOT NULL DEFAULT 0");
|
|
2161
|
+
}
|
|
2162
|
+
createUserActivityIndex(db2);
|
|
2163
|
+
}
|
|
2164
|
+
}
|
|
2120
2165
|
]
|
|
2121
2166
|
});
|
|
2122
2167
|
createLatestCacheSchema(db);
|
|
2168
|
+
createUserActivityIndex(db);
|
|
2123
2169
|
createSearchStateIndex(db);
|
|
2124
2170
|
const userVersion = getUserVersion(db);
|
|
2125
2171
|
if (userVersion < CACHE_SCHEMA_VERSION) {
|
|
@@ -2483,6 +2529,7 @@ function updateMessageContent(hash, content) {
|
|
|
2483
2529
|
updateField(hash, content.partsFormatVersion);
|
|
2484
2530
|
updateField(hash, content.subagentId);
|
|
2485
2531
|
updateField(hash, content.nickname);
|
|
2532
|
+
if (content.automated) updateField(hash, "automated");
|
|
2486
2533
|
}
|
|
2487
2534
|
function initialMessageCursorDigest(reference) {
|
|
2488
2535
|
const hash = createHash("sha256");
|
|
@@ -2614,9 +2661,10 @@ function prepareSessionMaterializationWriter(db, agentName) {
|
|
|
2614
2661
|
content_chain_digest,
|
|
2615
2662
|
subagent_id,
|
|
2616
2663
|
nickname,
|
|
2664
|
+
automated,
|
|
2617
2665
|
content_text,
|
|
2618
2666
|
tool_metadata_json
|
|
2619
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
2667
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
2620
2668
|
ON CONFLICT(agent_name, session_id, message_index) DO UPDATE SET
|
|
2621
2669
|
message_id = excluded.message_id,
|
|
2622
2670
|
role = excluded.role,
|
|
@@ -2634,6 +2682,7 @@ function prepareSessionMaterializationWriter(db, agentName) {
|
|
|
2634
2682
|
content_chain_digest = excluded.content_chain_digest,
|
|
2635
2683
|
subagent_id = excluded.subagent_id,
|
|
2636
2684
|
nickname = excluded.nickname,
|
|
2685
|
+
automated = excluded.automated,
|
|
2637
2686
|
content_text = excluded.content_text,
|
|
2638
2687
|
tool_metadata_json = excluded.tool_metadata_json
|
|
2639
2688
|
`);
|
|
@@ -2688,6 +2737,7 @@ function prepareSessionMaterializationWriter(db, agentName) {
|
|
|
2688
2737
|
contentChainDigest,
|
|
2689
2738
|
message.subagentId ?? null,
|
|
2690
2739
|
message.nickname ?? null,
|
|
2740
|
+
message.automated ?? 0,
|
|
2691
2741
|
message.contentText,
|
|
2692
2742
|
message.toolMetadataJson ?? null
|
|
2693
2743
|
);
|
|
@@ -4047,7 +4097,7 @@ function matchesSessionQueryScope(session, scope) {
|
|
|
4047
4097
|
return !scope?.projectScope || matchesProjectScope(session, scope.projectScope);
|
|
4048
4098
|
}
|
|
4049
4099
|
|
|
4050
|
-
// ../core/dist/chunk-
|
|
4100
|
+
// ../core/dist/chunk-COUPH7S3.mjs
|
|
4051
4101
|
import { existsSync as existsSync2, rmSync, unlinkSync } from "fs";
|
|
4052
4102
|
import { availableParallelism } from "os";
|
|
4053
4103
|
import { Worker } from "worker_threads";
|
|
@@ -4340,7 +4390,8 @@ function readCachedSessionMessageRows(db, agentName, sessionId, startIndex) {
|
|
|
4340
4390
|
parts_format_version,
|
|
4341
4391
|
content_chain_digest,
|
|
4342
4392
|
subagent_id,
|
|
4343
|
-
nickname
|
|
4393
|
+
nickname,
|
|
4394
|
+
automated
|
|
4344
4395
|
FROM messages
|
|
4345
4396
|
WHERE agent_name = ? AND session_id = ? AND message_index >= ?
|
|
4346
4397
|
ORDER BY message_index
|
|
@@ -6042,6 +6093,54 @@ function commitDurableSessionPublication(publication, loadSessionData, searchOpt
|
|
|
6042
6093
|
reportPublicationStage(detail, "committed", searchOptions);
|
|
6043
6094
|
return { status: "committed", publicationId, searchIndex };
|
|
6044
6095
|
}
|
|
6096
|
+
function listDashboardActiveHours(options, queryScope) {
|
|
6097
|
+
if (!hasCacheStorage()) return null;
|
|
6098
|
+
const formatter = new Intl.DateTimeFormat("en-US", {
|
|
6099
|
+
timeZone: options.timeZone,
|
|
6100
|
+
weekday: "short",
|
|
6101
|
+
hour: "2-digit",
|
|
6102
|
+
hourCycle: "h23"
|
|
6103
|
+
});
|
|
6104
|
+
const weekdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
6105
|
+
const { clauses, params } = buildSessionQueryScopeFilters(queryScope);
|
|
6106
|
+
clauses.push(
|
|
6107
|
+
"s.publication_id IS NULL",
|
|
6108
|
+
"s.parent_agent_name IS NULL AND s.parent_session_id IS NULL",
|
|
6109
|
+
"m.role = 'user' AND m.automated = 0 AND m.time_created > 0",
|
|
6110
|
+
"m.time_created <= ?"
|
|
6111
|
+
);
|
|
6112
|
+
params.push(options.to);
|
|
6113
|
+
if (options.from != null) {
|
|
6114
|
+
clauses.push("m.time_created >= ?");
|
|
6115
|
+
params.push(options.from);
|
|
6116
|
+
}
|
|
6117
|
+
if (options.agent) {
|
|
6118
|
+
clauses.push("s.agent_name = ?");
|
|
6119
|
+
params.push(options.agent);
|
|
6120
|
+
}
|
|
6121
|
+
if (options.projectKind != null || options.projectKey != null) {
|
|
6122
|
+
clauses.push("s.project_identity_kind = ? AND s.project_identity_key = ?");
|
|
6123
|
+
params.push(options.projectKind ?? null, options.projectKey ?? null);
|
|
6124
|
+
}
|
|
6125
|
+
const read = withCacheDbReadOnly((db) => {
|
|
6126
|
+
const counts = Array(84).fill(0);
|
|
6127
|
+
const rows = db.prepare(`
|
|
6128
|
+
SELECT m.time_created FROM messages m INDEXED BY idx_messages_user_activity
|
|
6129
|
+
JOIN sessions s ON s.agent_name = m.agent_name AND s.session_id = m.session_id
|
|
6130
|
+
WHERE ${clauses.join(" AND ")}
|
|
6131
|
+
`).iterate(...params);
|
|
6132
|
+
for (const row of rows) {
|
|
6133
|
+
const time = Number(row.time_created);
|
|
6134
|
+
if (Number.isNaN(new Date(time).getTime())) continue;
|
|
6135
|
+
const parts = formatter.formatToParts(time);
|
|
6136
|
+
const weekday = weekdays.indexOf(parts.find((part) => part.type === "weekday").value);
|
|
6137
|
+
const hour = Number(parts.find((part) => part.type === "hour").value);
|
|
6138
|
+
counts[weekday * 12 + Math.floor(hour / 2)] += 1;
|
|
6139
|
+
}
|
|
6140
|
+
return { timeZone: options.timeZone, counts };
|
|
6141
|
+
});
|
|
6142
|
+
return read.status === "success" ? read.value : null;
|
|
6143
|
+
}
|
|
6045
6144
|
|
|
6046
6145
|
export {
|
|
6047
6146
|
closeCacheStorage,
|
|
@@ -6092,6 +6191,7 @@ export {
|
|
|
6092
6191
|
listCachedProjectGroups,
|
|
6093
6192
|
listDashboardCostFacts,
|
|
6094
6193
|
listModelCostDistribution,
|
|
6095
|
-
commitDurableSessionPublication
|
|
6194
|
+
commitDurableSessionPublication,
|
|
6195
|
+
listDashboardActiveHours
|
|
6096
6196
|
};
|
|
6097
|
-
//# sourceMappingURL=chunk-
|
|
6197
|
+
//# sourceMappingURL=chunk-VVCSQU5B.js.map
|