@mono-agent/web 0.20.7 → 0.20.9
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 +32 -3
- package/dist/contracts.d.ts +31 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/conversation-title.d.ts +6 -0
- package/dist/conversation-title.d.ts.map +1 -0
- package/dist/conversation-title.js +31 -0
- package/dist/conversation-title.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +29 -0
- package/dist/server.js.map +1 -1
- package/dist/service.d.ts +7 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +47 -6
- package/dist/service.js.map +1 -1
- package/dist/store.d.ts +44 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +285 -5
- package/dist/store.js.map +1 -1
- package/package.json +4 -4
- package/webapp/dist/assets/index-BWVWkCJ2.js +152 -0
- package/webapp/dist/assets/index-SugvifaX.css +1 -0
- package/webapp/dist/index.html +2 -2
- package/webapp/dist/sw.js +1 -1
- package/webapp/dist/assets/index-BN-Of26p.css +0 -1
- package/webapp/dist/assets/index-q4yPuGvw.js +0 -152
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -8,7 +8,117 @@ import { WEB_MAX_FILES_PER_TURN, WEB_MAX_LIVE_INPUTS_PER_THREAD, WEB_MAX_TURN_AT
|
|
|
8
8
|
import { WebConsoleError } from "./errors.js";
|
|
9
9
|
import { webPushPreview } from "./push-preview.js";
|
|
10
10
|
import { prepareWebStatePaths } from "./state-paths.js";
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* The searchable text of one message row, derived in SQL so the index cannot
|
|
13
|
+
* drift from `parts_json`: every write path in this store goes through the
|
|
14
|
+
* triggers below rather than remembering to maintain a second copy.
|
|
15
|
+
*
|
|
16
|
+
* Only `text` parts are indexed. Reasoning is the agent's working-out and tool
|
|
17
|
+
* payloads are machine JSON; both would drown a search of what was actually
|
|
18
|
+
* said in a conversation.
|
|
19
|
+
*
|
|
20
|
+
* The two highlight sentinels are stripped here rather than trusted to be
|
|
21
|
+
* absent: a message that quotes one would otherwise come back in a snippet as
|
|
22
|
+
* an unbalanced marker and corrupt the client's highlighting.
|
|
23
|
+
*/
|
|
24
|
+
const MESSAGE_SEARCH_BODY_SQL = `
|
|
25
|
+
SELECT replace(replace(group_concat(json_extract(value, '$.text'), ' '), char(2), ''), char(3), '')
|
|
26
|
+
FROM json_each(%SOURCE%.parts_json)
|
|
27
|
+
WHERE json_extract(value, '$.type') = 'text'
|
|
28
|
+
AND json_extract(value, '$.text') IS NOT NULL`;
|
|
29
|
+
const messageSearchBody = (source) => MESSAGE_SEARCH_BODY_SQL.replaceAll("%SOURCE%", source);
|
|
30
|
+
/**
|
|
31
|
+
* `unicode61 remove_diacritics 2` folds accents, so an unaccented query still
|
|
32
|
+
* finds accented prose. The write triggers are guarded on `json_valid` because
|
|
33
|
+
* an unindexed message is one missing search hit, while a failed insert would
|
|
34
|
+
* be a lost message.
|
|
35
|
+
*/
|
|
36
|
+
const MESSAGE_SEARCH_REINDEX_SQL = `
|
|
37
|
+
DELETE FROM message_search WHERE rowid = old.rowid;
|
|
38
|
+
INSERT INTO message_search(rowid, body)
|
|
39
|
+
SELECT new.rowid, (${messageSearchBody("new")});`;
|
|
40
|
+
/**
|
|
41
|
+
* A streaming answer is rewritten every ~50 ms, and re-extracting a large
|
|
42
|
+
* message's text on each snapshot costs several times the row write itself
|
|
43
|
+
* (measured at ~6x, and ~23 ms per snapshot on the largest real messages). A
|
|
44
|
+
* running message is therefore left out of the index entirely — including at
|
|
45
|
+
* insert, because a cron run is inserted with real prose while still running,
|
|
46
|
+
* and indexing that body once would freeze it: the thread would keep matching
|
|
47
|
+
* narration it no longer contains. It is swept in when it settles, by either
|
|
48
|
+
* statement shape, since some paths write `parts_json` and `status` together and
|
|
49
|
+
* others write only one of them. `reindexUnsettledMessages` closes the remaining
|
|
50
|
+
* hole, a process that dies mid-turn.
|
|
51
|
+
*/
|
|
52
|
+
const MESSAGE_SEARCH_SCHEMA_SQL = `
|
|
53
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS message_search USING fts5(
|
|
54
|
+
body,
|
|
55
|
+
tokenize='unicode61 remove_diacritics 2'
|
|
56
|
+
);
|
|
57
|
+
CREATE TRIGGER IF NOT EXISTS message_search_insert
|
|
58
|
+
AFTER INSERT ON messages
|
|
59
|
+
WHEN json_valid(new.parts_json) AND new.status <> 'running' BEGIN
|
|
60
|
+
INSERT INTO message_search(rowid, body)
|
|
61
|
+
SELECT new.rowid, (${messageSearchBody("new")});
|
|
62
|
+
END;
|
|
63
|
+
CREATE TRIGGER IF NOT EXISTS message_search_update
|
|
64
|
+
AFTER UPDATE OF parts_json ON messages
|
|
65
|
+
WHEN json_valid(new.parts_json) AND new.status <> 'running' BEGIN
|
|
66
|
+
${MESSAGE_SEARCH_REINDEX_SQL}
|
|
67
|
+
END;
|
|
68
|
+
CREATE TRIGGER IF NOT EXISTS message_search_settle
|
|
69
|
+
AFTER UPDATE OF status ON messages
|
|
70
|
+
WHEN json_valid(new.parts_json) AND old.status = 'running' AND new.status <> 'running' BEGIN
|
|
71
|
+
${MESSAGE_SEARCH_REINDEX_SQL}
|
|
72
|
+
END;
|
|
73
|
+
CREATE TRIGGER IF NOT EXISTS message_search_delete
|
|
74
|
+
AFTER DELETE ON messages BEGIN
|
|
75
|
+
DELETE FROM message_search WHERE rowid = old.rowid;
|
|
76
|
+
END;`;
|
|
77
|
+
/**
|
|
78
|
+
* Messages still marked running carry whatever text the last snapshot left, and
|
|
79
|
+
* the triggers deliberately skipped them. Sweeping them at open means a turn
|
|
80
|
+
* killed by a crash is searchable rather than silently missing forever.
|
|
81
|
+
*/
|
|
82
|
+
const MESSAGE_SEARCH_UNSETTLED_SQL = `
|
|
83
|
+
DELETE FROM message_search
|
|
84
|
+
WHERE rowid IN (SELECT rowid FROM messages WHERE status = 'running');
|
|
85
|
+
INSERT INTO message_search(rowid, body)
|
|
86
|
+
SELECT m.rowid, (${messageSearchBody("m")})
|
|
87
|
+
FROM messages m
|
|
88
|
+
WHERE m.status = 'running' AND json_valid(m.parts_json);`;
|
|
89
|
+
const MESSAGE_SEARCH_BACKFILL_SQL = `
|
|
90
|
+
DELETE FROM message_search;
|
|
91
|
+
INSERT INTO message_search(rowid, body)
|
|
92
|
+
SELECT m.rowid, (${messageSearchBody("m")})
|
|
93
|
+
FROM messages m
|
|
94
|
+
WHERE json_valid(m.parts_json);`;
|
|
95
|
+
/** Rows scanned before ranking cuts off; bounds the cost of a one-letter term. */
|
|
96
|
+
const MESSAGE_SEARCH_SCAN_LIMIT = 400;
|
|
97
|
+
export const WEB_THREAD_SEARCH_MAX = 50;
|
|
98
|
+
/** Below this a query matches almost everything, so it is not worth running. */
|
|
99
|
+
export const WEB_THREAD_SEARCH_MIN_QUERY = 2;
|
|
100
|
+
/**
|
|
101
|
+
* Wrap each match inside a returned snippet so the client can highlight it.
|
|
102
|
+
* Control characters, and stripped from the indexed body above, so a snippet's
|
|
103
|
+
* markers are always the ones `snippet()` added.
|
|
104
|
+
*/
|
|
105
|
+
export const WEB_SEARCH_HIGHLIGHT_OPEN = "\u0002";
|
|
106
|
+
export const WEB_SEARCH_HIGHLIGHT_CLOSE = "\u0003";
|
|
107
|
+
/**
|
|
108
|
+
* An FTS5 MATCH expression for a typed query. Each token is quoted (so the
|
|
109
|
+
* user's punctuation can never be read as FTS operator syntax) and given a
|
|
110
|
+
* prefix `*` so typing narrows results as you go. Tokens are ANDed: adding a
|
|
111
|
+
* word should cut the result list, not grow it.
|
|
112
|
+
*/
|
|
113
|
+
export function messageSearchMatchExpression(raw) {
|
|
114
|
+
const tokens = raw.toLowerCase().match(/[\p{L}\p{N}]+/gu) ?? [];
|
|
115
|
+
return tokens.length === 0 ? undefined : tokens.map((token) => `"${token}"*`).join(" ");
|
|
116
|
+
}
|
|
117
|
+
/** Escape the LIKE wildcards so a literal `%` in a title search stays literal. */
|
|
118
|
+
export function escapeLikeTerm(raw) {
|
|
119
|
+
return raw.replaceAll(/[\\%_]/gu, (character) => `\\${character}`);
|
|
120
|
+
}
|
|
121
|
+
const WEB_STORAGE_SCHEMA_VERSION = 9;
|
|
12
122
|
const MAX_REVISIONS_PER_THREAD = 1_000;
|
|
13
123
|
export const WEB_THREAD_PAGE_MAX = 200;
|
|
14
124
|
export const WEB_MESSAGE_PAGE_MAX = 100;
|
|
@@ -53,6 +163,9 @@ export class WebStore {
|
|
|
53
163
|
store.recoverInterruptedTurns();
|
|
54
164
|
store.recoverLiveInputs();
|
|
55
165
|
store.recoverWebPushDeliveries();
|
|
166
|
+
// After recovery, so anything the recovery settled is already indexed by
|
|
167
|
+
// its own trigger and this only sweeps what genuinely stayed running.
|
|
168
|
+
store.reindexUnsettledMessages();
|
|
56
169
|
return store;
|
|
57
170
|
}
|
|
58
171
|
catch (error) {
|
|
@@ -919,6 +1032,108 @@ export class WebStore {
|
|
|
919
1032
|
: {}),
|
|
920
1033
|
};
|
|
921
1034
|
}
|
|
1035
|
+
/**
|
|
1036
|
+
* Conversations of one agent whose title or message prose matches `query`.
|
|
1037
|
+
*
|
|
1038
|
+
* The sidebar filter this replaces could only see the threads already loaded
|
|
1039
|
+
* into the browser, so anything past the first page was unfindable. This runs
|
|
1040
|
+
* against the whole store instead: the FTS index ranks message hits by bm25
|
|
1041
|
+
* and returns a highlighted snippet, and a separate title pass catches
|
|
1042
|
+
* conversations named after something never said inside them.
|
|
1043
|
+
*/
|
|
1044
|
+
searchThreads(input) {
|
|
1045
|
+
if (this.getAgent(input.sourceId) === undefined) {
|
|
1046
|
+
throw new WebConsoleError("agent_not_found", "Agent not found.", 404);
|
|
1047
|
+
}
|
|
1048
|
+
const query = input.query.trim();
|
|
1049
|
+
const limit = boundedPageLimit(input.limit, WEB_THREAD_SEARCH_MAX);
|
|
1050
|
+
const match = query.length < WEB_THREAD_SEARCH_MIN_QUERY
|
|
1051
|
+
? undefined
|
|
1052
|
+
: messageSearchMatchExpression(query);
|
|
1053
|
+
if (match === undefined)
|
|
1054
|
+
return { hits: [], truncated: false };
|
|
1055
|
+
const messageRows = this.database.prepare(`
|
|
1056
|
+
SELECT m.thread_id AS thread_id,
|
|
1057
|
+
snippet(message_search, 0, ?, ?, char(8230), 12) AS snippet,
|
|
1058
|
+
bm25(message_search) AS rank
|
|
1059
|
+
FROM message_search
|
|
1060
|
+
JOIN messages m ON m.rowid = message_search.rowid
|
|
1061
|
+
JOIN threads t ON t.id = m.thread_id
|
|
1062
|
+
WHERE message_search MATCH ? AND t.source_id = ?
|
|
1063
|
+
ORDER BY rank
|
|
1064
|
+
LIMIT ?
|
|
1065
|
+
`).all(WEB_SEARCH_HIGHLIGHT_OPEN, WEB_SEARCH_HIGHLIGHT_CLOSE, match, input.sourceId, MESSAGE_SEARCH_SCAN_LIMIT + 1);
|
|
1066
|
+
// Ranked rows arrive best-first, so the first row seen for a thread is that
|
|
1067
|
+
// thread's best snippet and its rank. The extra probe row exists only to
|
|
1068
|
+
// detect truncation and must not inflate a count or admit a thread.
|
|
1069
|
+
const byThread = new Map();
|
|
1070
|
+
for (const row of messageRows.slice(0, MESSAGE_SEARCH_SCAN_LIMIT)) {
|
|
1071
|
+
const existing = byThread.get(row.thread_id);
|
|
1072
|
+
if (existing === undefined) {
|
|
1073
|
+
byThread.set(row.thread_id, {
|
|
1074
|
+
...(row.snippet === null || row.snippet.length === 0 ? {} : { snippet: row.snippet }),
|
|
1075
|
+
rank: row.rank,
|
|
1076
|
+
matches: 1,
|
|
1077
|
+
});
|
|
1078
|
+
continue;
|
|
1079
|
+
}
|
|
1080
|
+
byThread.set(row.thread_id, { ...existing, matches: existing.matches + 1 });
|
|
1081
|
+
}
|
|
1082
|
+
// A conversation the user renamed after what it is about may not repeat that
|
|
1083
|
+
// word in any message, so titles are matched separately — as a substring,
|
|
1084
|
+
// because a title is short enough to scan and short enough to type part of.
|
|
1085
|
+
const titleRows = this.database.prepare(`
|
|
1086
|
+
SELECT t.id AS id FROM threads t
|
|
1087
|
+
WHERE t.source_id = ? AND t.title LIKE '%' || ? || '%' ESCAPE '\\'
|
|
1088
|
+
ORDER BY t.updated_at DESC, t.id DESC
|
|
1089
|
+
LIMIT ?
|
|
1090
|
+
`).all(input.sourceId, escapeLikeTerm(query), limit + 1);
|
|
1091
|
+
const titleMatches = new Set(titleRows.slice(0, limit).map((row) => row.id));
|
|
1092
|
+
const rankedIds = [...byThread.entries()]
|
|
1093
|
+
.map(([threadId, hit]) => ({ threadId, ...hit }))
|
|
1094
|
+
.sort((left, right) => left.rank - right.rank)
|
|
1095
|
+
.map((hit) => hit.threadId)
|
|
1096
|
+
.filter((threadId) => !titleMatches.has(threadId));
|
|
1097
|
+
// Title hits lead, because naming a conversation is a deliberate act. But
|
|
1098
|
+
// titles are auto-derived from first prompts, so a common word can match
|
|
1099
|
+
// more of them than fit one page — and letting titles take every slot would
|
|
1100
|
+
// silently return this feature to the title-only search it replaces. Half
|
|
1101
|
+
// the page is therefore reserved for ranked message hits whenever there are
|
|
1102
|
+
// any, and each side takes the other's unused room.
|
|
1103
|
+
const titleIds = [...titleMatches];
|
|
1104
|
+
const titleBudget = rankedIds.length === 0
|
|
1105
|
+
? limit
|
|
1106
|
+
: Math.max(limit - rankedIds.length, Math.ceil(limit / 2));
|
|
1107
|
+
const ordering = [
|
|
1108
|
+
...titleIds.slice(0, titleBudget),
|
|
1109
|
+
...rankedIds,
|
|
1110
|
+
...titleIds.slice(titleBudget),
|
|
1111
|
+
];
|
|
1112
|
+
const selectThread = this.database.prepare(threadSelectSql("WHERE t.id = ?"));
|
|
1113
|
+
const hits = [];
|
|
1114
|
+
for (const threadId of ordering) {
|
|
1115
|
+
if (hits.length >= limit)
|
|
1116
|
+
break;
|
|
1117
|
+
const row = selectThread.get(threadId);
|
|
1118
|
+
if (row === undefined)
|
|
1119
|
+
continue;
|
|
1120
|
+
const hit = byThread.get(threadId);
|
|
1121
|
+
hits.push({
|
|
1122
|
+
thread: this.mapThread(row),
|
|
1123
|
+
messageMatches: hit?.matches ?? 0,
|
|
1124
|
+
titleMatch: titleMatches.has(threadId),
|
|
1125
|
+
...(hit?.snippet === undefined ? {} : { snippet: hit.snippet }),
|
|
1126
|
+
});
|
|
1127
|
+
}
|
|
1128
|
+
return {
|
|
1129
|
+
hits,
|
|
1130
|
+
// Both queries fetch one row past their cap, so this reports a real cut
|
|
1131
|
+
// rather than firing on an exact fill.
|
|
1132
|
+
truncated: messageRows.length > MESSAGE_SEARCH_SCAN_LIMIT
|
|
1133
|
+
|| titleRows.length > limit
|
|
1134
|
+
|| ordering.length > hits.length,
|
|
1135
|
+
};
|
|
1136
|
+
}
|
|
922
1137
|
resolveThreadId(id) {
|
|
923
1138
|
let resolved = id;
|
|
924
1139
|
const seen = new Set();
|
|
@@ -1044,6 +1259,34 @@ export class WebStore {
|
|
|
1044
1259
|
});
|
|
1045
1260
|
return { ...this.requireThread(id), sourceId: current.sourceId };
|
|
1046
1261
|
}
|
|
1262
|
+
/** Whether the current interactive thread still accepts agent-proposed titles. */
|
|
1263
|
+
canApplyAgentTitle(id) {
|
|
1264
|
+
id = this.resolveThreadId(id);
|
|
1265
|
+
const row = this.database.prepare(`
|
|
1266
|
+
SELECT title_manual, trigger_kind, archived_at FROM threads WHERE id = ?
|
|
1267
|
+
`).get(id);
|
|
1268
|
+
return row?.title_manual === 0 && row.trigger_kind === null && row.archived_at === null;
|
|
1269
|
+
}
|
|
1270
|
+
/** Apply one agent title without weakening the permanent manual-title lock. */
|
|
1271
|
+
applyAgentTitle(id, value) {
|
|
1272
|
+
id = this.resolveThreadId(id);
|
|
1273
|
+
const title = normalizeTitle(value);
|
|
1274
|
+
const now = this.now();
|
|
1275
|
+
let changed = false;
|
|
1276
|
+
this.transaction(() => {
|
|
1277
|
+
const result = this.database.prepare(`
|
|
1278
|
+
UPDATE threads
|
|
1279
|
+
SET title = ?, updated_at = ?, revision = revision + 1
|
|
1280
|
+
WHERE id = ? AND title_manual = 0 AND trigger_kind IS NULL
|
|
1281
|
+
AND archived_at IS NULL AND title <> ?
|
|
1282
|
+
`).run(title, now, id, title);
|
|
1283
|
+
if (result.changes !== 1)
|
|
1284
|
+
return;
|
|
1285
|
+
changed = true;
|
|
1286
|
+
this.recordThreadRevision(id, "title_changed", now);
|
|
1287
|
+
});
|
|
1288
|
+
return changed ? this.requireThread(id) : undefined;
|
|
1289
|
+
}
|
|
1047
1290
|
async deleteArchivedThread(id) {
|
|
1048
1291
|
id = this.resolveThreadId(id);
|
|
1049
1292
|
const thread = this.requireThread(id);
|
|
@@ -2172,6 +2415,7 @@ export class WebStore {
|
|
|
2172
2415
|
);
|
|
2173
2416
|
CREATE INDEX IF NOT EXISTS push_deliveries_due
|
|
2174
2417
|
ON push_deliveries(status, next_attempt_at, created_at);
|
|
2418
|
+
${MESSAGE_SEARCH_SCHEMA_SQL}
|
|
2175
2419
|
`);
|
|
2176
2420
|
if (versionRow.user_version === 1) {
|
|
2177
2421
|
const columns = this.database.prepare("PRAGMA table_info(threads)").all();
|
|
@@ -2188,6 +2432,12 @@ export class WebStore {
|
|
|
2188
2432
|
this.database.exec("ALTER TABLE cron_overviews ADD COLUMN jobs_truncated INTEGER NOT NULL DEFAULT 0 CHECK (jobs_truncated IN (0, 1))");
|
|
2189
2433
|
}
|
|
2190
2434
|
}
|
|
2435
|
+
// The search index derives from parts_json, so an existing database has
|
|
2436
|
+
// to be swept once. Migration writes no message, so the triggers above
|
|
2437
|
+
// cannot have fired yet; the clear-then-insert is a no-op on a fresh
|
|
2438
|
+
// database and idempotent if the sweep is ever re-run.
|
|
2439
|
+
if (versionRow.user_version < 9)
|
|
2440
|
+
this.database.exec(MESSAGE_SEARCH_BACKFILL_SQL);
|
|
2191
2441
|
if (migrating)
|
|
2192
2442
|
this.database.exec(`PRAGMA user_version = ${WEB_STORAGE_SCHEMA_VERSION}; COMMIT`);
|
|
2193
2443
|
}
|
|
@@ -2363,6 +2613,7 @@ export class WebStore {
|
|
|
2363
2613
|
"push_subscriptions",
|
|
2364
2614
|
"push_events",
|
|
2365
2615
|
"push_deliveries",
|
|
2616
|
+
"message_search",
|
|
2366
2617
|
]);
|
|
2367
2618
|
const tables = this.database.prepare("SELECT name FROM sqlite_master WHERE type = 'table'").all();
|
|
2368
2619
|
for (const table of tables)
|
|
@@ -2380,6 +2631,16 @@ export class WebStore {
|
|
|
2380
2631
|
}
|
|
2381
2632
|
}
|
|
2382
2633
|
}
|
|
2634
|
+
/**
|
|
2635
|
+
* Index the messages the streaming gate skipped and nothing settled — the
|
|
2636
|
+
* residue of a process that died mid-turn. Bounded to whatever is still
|
|
2637
|
+
* marked running, which is at most one message per interrupted thread.
|
|
2638
|
+
*/
|
|
2639
|
+
reindexUnsettledMessages() {
|
|
2640
|
+
this.transaction(() => {
|
|
2641
|
+
this.database.exec(MESSAGE_SEARCH_UNSETTLED_SQL);
|
|
2642
|
+
});
|
|
2643
|
+
}
|
|
2383
2644
|
recoverInterruptedTurns() {
|
|
2384
2645
|
const active = this.listActiveTurnIds();
|
|
2385
2646
|
for (const turnId of active) {
|
|
@@ -2822,7 +3083,7 @@ function isValidVapidKeyPair(publicKey, privateKey) {
|
|
|
2822
3083
|
}
|
|
2823
3084
|
function threadSelectSql(suffix) {
|
|
2824
3085
|
return `
|
|
2825
|
-
SELECT t.id, t.source_id, t.title, t.trigger_kind, t.archived_at, t.created_at, t.updated_at, t.revision,
|
|
3086
|
+
SELECT t.id, t.source_id, t.title, t.title_manual, t.trigger_kind, t.archived_at, t.created_at, t.updated_at, t.revision,
|
|
2826
3087
|
cc.job_id AS cron_job_id, cc.configured AS cron_configured,
|
|
2827
3088
|
CASE WHEN t.trigger_kind = 'cron' THEN 0
|
|
2828
3089
|
WHEN a.status = 'online' OR a.status = 'degraded' THEN 1 ELSE 0 END AS can_send,
|
|
@@ -3266,6 +3527,7 @@ function applyEvent(parts, event) {
|
|
|
3266
3527
|
if (event.type === "tool_call_completed") {
|
|
3267
3528
|
const status = event.isError === true ? "failed" : "complete";
|
|
3268
3529
|
const historyUpdate = canonicalEventHistoryUpdate(event.history);
|
|
3530
|
+
const executionMs = canonicalExecutionMs(event.executionMs);
|
|
3269
3531
|
const subagent = subagentOf(event);
|
|
3270
3532
|
if (subagent !== undefined) {
|
|
3271
3533
|
const group = ensureSubagentPart(parts, subagent);
|
|
@@ -3273,7 +3535,7 @@ function applyEvent(parts, event) {
|
|
|
3273
3535
|
replaceSubagentPart(parts, withEventHistoryUpdate({
|
|
3274
3536
|
...group,
|
|
3275
3537
|
status,
|
|
3276
|
-
...(
|
|
3538
|
+
...(executionMs === undefined ? {} : { executionMs }),
|
|
3277
3539
|
...(subagent.costUsd === undefined ? {} : { costUsd: subagent.costUsd }),
|
|
3278
3540
|
}, historyUpdate));
|
|
3279
3541
|
return;
|
|
@@ -3284,6 +3546,7 @@ function applyEvent(parts, event) {
|
|
|
3284
3546
|
...(event.arguments === undefined ? {} : { args: event.arguments }),
|
|
3285
3547
|
...(event.content === undefined ? {} : { result: event.content }),
|
|
3286
3548
|
...(event.structuredContent === undefined ? {} : { structuredResult: event.structuredContent }),
|
|
3549
|
+
...(executionMs === undefined ? {} : { executionMs }),
|
|
3287
3550
|
status,
|
|
3288
3551
|
}, historyUpdate);
|
|
3289
3552
|
return;
|
|
@@ -3296,7 +3559,7 @@ function applyEvent(parts, event) {
|
|
|
3296
3559
|
...group,
|
|
3297
3560
|
status,
|
|
3298
3561
|
...(event.content === undefined ? {} : { result: event.content }),
|
|
3299
|
-
...(
|
|
3562
|
+
...(executionMs === undefined ? {} : { executionMs }),
|
|
3300
3563
|
}, historyUpdate));
|
|
3301
3564
|
return;
|
|
3302
3565
|
}
|
|
@@ -3311,6 +3574,7 @@ function applyEvent(parts, event) {
|
|
|
3311
3574
|
// re-render an answered question after a reload, so keep the structured
|
|
3312
3575
|
// payload beside the prose rather than reparsing the sentence.
|
|
3313
3576
|
...(event.structuredContent === undefined ? {} : { structuredResult: event.structuredContent }),
|
|
3577
|
+
...(executionMs === undefined ? {} : { executionMs }),
|
|
3314
3578
|
status,
|
|
3315
3579
|
}, historyUpdate);
|
|
3316
3580
|
return;
|
|
@@ -3350,6 +3614,16 @@ function existingToolName(parts, id) {
|
|
|
3350
3614
|
const existing = parts.find((part) => part.type === "tool-call" && part.toolCallId === id);
|
|
3351
3615
|
return existing?.type === "tool-call" ? existing.toolName : undefined;
|
|
3352
3616
|
}
|
|
3617
|
+
/**
|
|
3618
|
+
* A duration is only worth persisting when it is a finite, non-negative number.
|
|
3619
|
+
* The stream wire validates `type` and nothing else, and providers derive this
|
|
3620
|
+
* from raw wall-clock subtraction, so a backward clock step or a provider that
|
|
3621
|
+
* reports `NaN` would otherwise be written verbatim and then rejected by the
|
|
3622
|
+
* read-back validator — permanently refusing to open the store.
|
|
3623
|
+
*/
|
|
3624
|
+
function canonicalExecutionMs(value) {
|
|
3625
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
|
|
3626
|
+
}
|
|
3353
3627
|
function canonicalEventHistoryUpdate(value) {
|
|
3354
3628
|
return value === undefined
|
|
3355
3629
|
? undefined
|
|
@@ -3974,6 +4248,12 @@ function isWebToolCall(value) {
|
|
|
3974
4248
|
return typeof call.toolCallId === "string"
|
|
3975
4249
|
&& typeof call.toolName === "string"
|
|
3976
4250
|
&& isWebToolCallStatus(call.status)
|
|
4251
|
+
// Nullish is accepted, not just absent: `JSON.stringify` writes NaN and
|
|
4252
|
+
// Infinity as `null`, so a database written before durations were
|
|
4253
|
+
// canonicalized can hold one. `validateStorage()` re-parses every message at
|
|
4254
|
+
// open, so being strict here would refuse the whole store over a
|
|
4255
|
+
// display-only value the renderers already drop.
|
|
4256
|
+
&& (call.executionMs == null || typeof call.executionMs === "number")
|
|
3977
4257
|
&& (call.history === undefined || isSessionToolHistoryMetadata(call.history));
|
|
3978
4258
|
}
|
|
3979
4259
|
const SESSION_TOOL_HISTORY_TERMINAL_STATES = new Set([
|
|
@@ -4112,7 +4392,7 @@ function isWebMessagePart(value) {
|
|
|
4112
4392
|
return typeof part.toolCallId === "string"
|
|
4113
4393
|
&& typeof part.name === "string"
|
|
4114
4394
|
&& (part.label === undefined || typeof part.label === "string")
|
|
4115
|
-
&& (part.executionMs
|
|
4395
|
+
&& (part.executionMs == null || typeof part.executionMs === "number")
|
|
4116
4396
|
&& (part.costUsd === undefined || typeof part.costUsd === "number")
|
|
4117
4397
|
&& (part.history === undefined || isSessionToolHistoryMetadata(part.history))
|
|
4118
4398
|
&& isWebToolCallStatus(part.status)
|