@ashlr/hub 3.8.0 → 3.9.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 +201 -0
- package/dist/build-identity.json +2 -2
- package/dist/cli/resource-profile.js +95 -21
- package/dist/cli/resource-profile.js.map +1 -1
- package/dist/core/resources/native-profile.d.ts +56 -0
- package/dist/core/resources/native-profile.js +368 -6
- package/dist/core/resources/native-profile.js.map +1 -1
- package/dist/core/run/model-catalog.js +8 -1
- package/dist/core/run/model-catalog.js.map +1 -1
- package/dist/core/universe/builtins/preparation/manifest.json +1 -1
- package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +9 -2
- package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +8 -1
- package/dist/core/verse/adapters/claude.d.ts +49 -2
- package/dist/core/verse/adapters/claude.js +317 -56
- package/dist/core/verse/adapters/claude.js.map +1 -1
- package/dist/core/verse/adapters/codex.d.ts +81 -5
- package/dist/core/verse/adapters/codex.js +409 -47
- package/dist/core/verse/adapters/codex.js.map +1 -1
- package/dist/core/verse/adapters/grok.d.ts +13 -1
- package/dist/core/verse/adapters/grok.js +28 -2
- package/dist/core/verse/adapters/grok.js.map +1 -1
- package/dist/core/verse/adapters/index.d.ts +32 -0
- package/dist/core/verse/adapters/index.js +2 -0
- package/dist/core/verse/adapters/index.js.map +1 -1
- package/dist/core/verse/codex-rollout.d.ts +284 -0
- package/dist/core/verse/codex-rollout.js +786 -0
- package/dist/core/verse/codex-rollout.js.map +1 -0
- package/dist/core/verse/context-fit.d.ts +63 -0
- package/dist/core/verse/context-fit.js +355 -0
- package/dist/core/verse/context-fit.js.map +1 -0
- package/dist/core/verse/context-math.d.ts +215 -0
- package/dist/core/verse/context-math.js +365 -0
- package/dist/core/verse/context-math.js.map +1 -0
- package/dist/core/verse/local-models.d.ts +137 -1
- package/dist/core/verse/local-models.js +209 -5
- package/dist/core/verse/local-models.js.map +1 -1
- package/dist/core/verse/model-windows.d.ts +217 -0
- package/dist/core/verse/model-windows.js +616 -0
- package/dist/core/verse/model-windows.js.map +1 -0
- package/dist/core/verse/preferences.d.ts +123 -0
- package/dist/core/verse/preferences.js +403 -0
- package/dist/core/verse/preferences.js.map +1 -0
- package/dist/core/verse/project-memory.d.ts +112 -0
- package/dist/core/verse/project-memory.js +295 -0
- package/dist/core/verse/project-memory.js.map +1 -0
- package/dist/core/verse/seats.d.ts +106 -4
- package/dist/core/verse/seats.js +291 -89
- package/dist/core/verse/seats.js.map +1 -1
- package/dist/core/verse/session-engine.d.ts +76 -2
- package/dist/core/verse/session-engine.js +684 -63
- package/dist/core/verse/session-engine.js.map +1 -1
- package/dist/core/verse/session-handoff.d.ts +94 -0
- package/dist/core/verse/session-handoff.js +551 -0
- package/dist/core/verse/session-handoff.js.map +1 -0
- package/dist/core/verse/session-search.d.ts +63 -0
- package/dist/core/verse/session-search.js +213 -0
- package/dist/core/verse/session-search.js.map +1 -0
- package/dist/core/verse/session-store.d.ts +16 -2
- package/dist/core/verse/session-store.js +80 -6
- package/dist/core/verse/session-store.js.map +1 -1
- package/dist/core/verse/types.d.ts +333 -1
- package/dist/core/verse/types.js +54 -2
- package/dist/core/verse/types.js.map +1 -1
- package/dist/core/verse/verse-api.d.ts +40 -5
- package/dist/core/verse/verse-api.js +724 -25
- package/dist/core/verse/verse-api.js.map +1 -1
- package/dist/core/web/api.d.ts +14 -4
- package/dist/core/web/api.js +26 -11
- package/dist/core/web/api.js.map +1 -1
- package/dist/core/web/public/next/assets/{App-BsbJFA2j.js → App-XURmiAAp.js} +5 -5
- package/dist/core/web/public/next/assets/{App-BsbJFA2j.js.map → App-XURmiAAp.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ApprovalsSection-2CCSoBTJ.js → ApprovalsSection-BriUzoZc.js} +2 -2
- package/dist/core/web/public/next/assets/{ApprovalsSection-2CCSoBTJ.js.map → ApprovalsSection-BriUzoZc.js.map} +1 -1
- package/dist/core/web/public/next/assets/AutonomySection-C4GBsQVc.js +2 -0
- package/dist/core/web/public/next/assets/{AutonomySection-yeNNUPur.js.map → AutonomySection-C4GBsQVc.js.map} +1 -1
- package/dist/core/web/public/next/assets/ChatSection-BpOBOUvg.css +1 -0
- package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js +84 -0
- package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js.map +1 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js +2 -0
- package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js.map +1 -0
- package/dist/core/web/public/next/assets/{Dialog-nK15L1M0.js → Dialog-BxdIfmFH.js} +2 -2
- package/dist/core/web/public/next/assets/{Dialog-nK15L1M0.js.map → Dialog-BxdIfmFH.js.map} +1 -1
- package/dist/core/web/public/next/assets/{DiffViewer-D369eZe8.js → DiffViewer-DmeRWuc4.js} +2 -2
- package/dist/core/web/public/next/assets/{DiffViewer-D369eZe8.js.map → DiffViewer-DmeRWuc4.js.map} +1 -1
- package/dist/core/web/public/next/assets/{McpSection-DVgiSYG1.js → McpSection-q34T7Tho.js} +2 -2
- package/dist/core/web/public/next/assets/{McpSection-DVgiSYG1.js.map → McpSection-q34T7Tho.js.map} +1 -1
- package/dist/core/web/public/next/assets/{MutationTokenDialog-B9I4PAcp.js → MutationTokenDialog-CFAkwOEt.js} +2 -2
- package/dist/core/web/public/next/assets/{MutationTokenDialog-B9I4PAcp.js.map → MutationTokenDialog-CFAkwOEt.js.map} +1 -1
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-z6tJj3s9.js → ResourcePoolConsoleApp-DHc8GFOY.js} +4 -4
- package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-z6tJj3s9.js.map → ResourcePoolConsoleApp-DHc8GFOY.js.map} +1 -1
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-OSajL45F.js → RouteErrorBoundary-ZL9F4qUn.js} +2 -2
- package/dist/core/web/public/next/assets/{RouteErrorBoundary-OSajL45F.js.map → RouteErrorBoundary-ZL9F4qUn.js.map} +1 -1
- package/dist/core/web/public/next/assets/{Meter-CLcr-4wS.css → Segmented-8cf0Fypn.css} +1 -1
- package/dist/core/web/public/next/assets/{Meter-Cmo1pLbk.js → Segmented-DbRjVye3.js} +2 -2
- package/dist/core/web/public/next/assets/Segmented-DbRjVye3.js.map +1 -0
- package/dist/core/web/public/next/assets/SettingsSection-nJGGGYqv.js +2 -0
- package/dist/core/web/public/next/assets/{SettingsSection-B3YH2Npi.js.map → SettingsSection-nJGGGYqv.js.map} +1 -1
- package/dist/core/web/public/next/assets/UniverseConsoleApp-6GJydgo4.js +2 -0
- package/dist/core/web/public/next/assets/{UniverseConsoleApp-wEKIzl1M.js.map → UniverseConsoleApp-6GJydgo4.js.map} +1 -1
- package/dist/core/web/public/next/assets/{UniverseView-CQVpJqqI.js → UniverseView-DLDtNYL8.js} +2 -2
- package/dist/core/web/public/next/assets/{UniverseView-CQVpJqqI.js.map → UniverseView-DLDtNYL8.js.map} +1 -1
- package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js +2 -0
- package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js.map +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-DsdKQoTH.css +1 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js +3 -0
- package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js.map +1 -0
- package/dist/core/web/public/next/assets/{charts-BopViIha.js → charts-CVooqJWN.js} +2 -2
- package/dist/core/web/public/next/assets/{charts-BopViIha.js.map → charts-CVooqJWN.js.map} +1 -1
- package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js +2 -0
- package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js.map +1 -0
- package/dist/core/web/public/next/assets/global-eaY9GyX3.js +2 -0
- package/dist/core/web/public/next/assets/global-eaY9GyX3.js.map +1 -0
- package/dist/core/web/public/next/assets/{icons-L06pQH6j.js → icons-vex8rclC.js} +2 -2
- package/dist/core/web/public/next/assets/{icons-L06pQH6j.js.map → icons-vex8rclC.js.map} +1 -1
- package/dist/core/web/public/next/assets/{index-CXgVQHek.js → index-D2Eik-zt.js} +3 -3
- package/dist/core/web/public/next/assets/{index-CXgVQHek.js.map → index-D2Eik-zt.js.map} +1 -1
- package/dist/core/web/public/next/assets/{queries-D3sSlan1.js → queries-bAYU0VNy.js} +2 -2
- package/dist/core/web/public/next/assets/{queries-D3sSlan1.js.map → queries-bAYU0VNy.js.map} +1 -1
- package/dist/core/web/public/next/assets/use-guarded-action-C7QrP7Yp.js +2 -0
- package/dist/core/web/public/next/assets/{use-guarded-action-BxfJ9E-n.js.map → use-guarded-action-C7QrP7Yp.js.map} +1 -1
- package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js +2 -0
- package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js.map +1 -0
- package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js → workspace-model-CHol5RVp.js} +2 -2
- package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js.map → workspace-model-CHol5RVp.js.map} +1 -1
- package/dist/core/web/public/next/index.html +1 -1
- package/dist/release-dependency-inventory.json +1 -1
- package/docs/README.md +1 -0
- package/package.json +1 -1
- package/dist/core/web/public/next/assets/AutonomySection-yeNNUPur.js +0 -2
- package/dist/core/web/public/next/assets/ChatSection-BfnLe5dT.css +0 -1
- package/dist/core/web/public/next/assets/ChatSection-DwDDnCZQ.js +0 -80
- package/dist/core/web/public/next/assets/ChatSection-DwDDnCZQ.js.map +0 -1
- package/dist/core/web/public/next/assets/ConfirmDialog-C363ty_c.js +0 -2
- package/dist/core/web/public/next/assets/ConfirmDialog-C363ty_c.js.map +0 -1
- package/dist/core/web/public/next/assets/Meter-Cmo1pLbk.js.map +0 -1
- package/dist/core/web/public/next/assets/SettingsSection-B3YH2Npi.js +0 -2
- package/dist/core/web/public/next/assets/UniverseConsoleApp-wEKIzl1M.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-dToBThXe.js +0 -2
- package/dist/core/web/public/next/assets/UsageSection-dToBThXe.js.map +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-CMkCizvL.css +0 -1
- package/dist/core/web/public/next/assets/VerseConsoleApp-DHU32JCQ.js +0 -3
- package/dist/core/web/public/next/assets/VerseConsoleApp-DHU32JCQ.js.map +0 -1
- package/dist/core/web/public/next/assets/global-DMWakEhP.js +0 -2
- package/dist/core/web/public/next/assets/global-DMWakEhP.js.map +0 -1
- package/dist/core/web/public/next/assets/use-guarded-action-BxfJ9E-n.js +0 -2
- package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js +0 -2
- package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js.map +0 -1
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keyword search over past Verse sessions — zero spend, no index, no model.
|
|
3
|
+
*
|
|
4
|
+
* The corpus is the durable event log the session store already keeps
|
|
5
|
+
* (`<id>.events.jsonl`). Only what the OPERATOR and the AGENT said is searched
|
|
6
|
+
* (`user-message`, `assistant-message`): tool inputs and outputs are huge,
|
|
7
|
+
* noisy and full of file contents that would drown every real hit, and
|
|
8
|
+
* `text-delta` / `thinking` duplicate or pre-empt the final message.
|
|
9
|
+
*
|
|
10
|
+
* MATCHING: every term must occur in ONE message (terms are AND-ed,
|
|
11
|
+
* case-insensitive; a "double-quoted phrase" is one term). A hit is a message,
|
|
12
|
+
* so the snippet shown is the place the operator actually remembers.
|
|
13
|
+
*
|
|
14
|
+
* SCORING (deterministic given `now`):
|
|
15
|
+
* term score = Σ over terms of (1 + ln(occurrences)) — repetition helps, with
|
|
16
|
+
* diminishing returns, so one message that says "migration" 40
|
|
17
|
+
* times does not bury every other
|
|
18
|
+
* title bonus = +1 when every term also appears in the session title
|
|
19
|
+
* kind weight = user messages ×1.1 (the operator's own words are what they
|
|
20
|
+
* search for), assistant ×1.0
|
|
21
|
+
* recency = × (0.35 + 0.65 · 0.5^(ageDays / 14)) — a two-week half-life
|
|
22
|
+
* that never drives an old exact match to zero
|
|
23
|
+
*
|
|
24
|
+
* BOUNDS — this runs synchronously on the API thread, so it is bounded twice:
|
|
25
|
+
* the newest ≤ VERSE_SEARCH_MAX_SESSIONS sessions (by updatedAt) and at most
|
|
26
|
+
* VERSE_SEARCH_MAX_SCAN_CHARS of message text in total. Either bound tripping
|
|
27
|
+
* sets `truncated`, so the UI can say "searched the most recent N" instead of
|
|
28
|
+
* implying the whole history was covered. At most VERSE_SEARCH_MAX_HITS_PER_SESSION
|
|
29
|
+
* hits come from one session so a single long chat cannot fill the list.
|
|
30
|
+
*
|
|
31
|
+
* Snippets are whitespace-collapsed, ≤ 240 chars, and `scrubSecrets`'d.
|
|
32
|
+
*/
|
|
33
|
+
import { scrubSecrets } from '../util/scrub.js';
|
|
34
|
+
import { VerseServiceError } from './preferences.js';
|
|
35
|
+
export const VERSE_SEARCH_MAX_SESSIONS = 200;
|
|
36
|
+
/** ~20 MB of message text (UTF-16 code units, which is what is actually scanned). */
|
|
37
|
+
export const VERSE_SEARCH_MAX_SCAN_CHARS = 20 * 1024 * 1024;
|
|
38
|
+
export const VERSE_SEARCH_DEFAULT_LIMIT = 20;
|
|
39
|
+
export const VERSE_SEARCH_MAX_LIMIT = 50;
|
|
40
|
+
export const VERSE_SEARCH_MAX_QUERY_CHARS = 200;
|
|
41
|
+
export const VERSE_SEARCH_MAX_TERMS = 8;
|
|
42
|
+
export const VERSE_SEARCH_MAX_HITS_PER_SESSION = 3;
|
|
43
|
+
export const VERSE_SEARCH_SNIPPET_CHARS = 240;
|
|
44
|
+
/** Recency half-life. */
|
|
45
|
+
const HALF_LIFE_DAYS = 14;
|
|
46
|
+
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
47
|
+
/**
|
|
48
|
+
* Split a query into lower-cased terms. `"exact phrase"` stays one term;
|
|
49
|
+
* everything else splits on whitespace. Duplicates collapse. Throws
|
|
50
|
+
* VERSE_INVALID for an empty or oversized query.
|
|
51
|
+
*/
|
|
52
|
+
export function parseSearchQuery(query) {
|
|
53
|
+
if (typeof query !== 'string')
|
|
54
|
+
throw new VerseServiceError('VERSE_INVALID', 'q must be a string');
|
|
55
|
+
const trimmed = query.trim();
|
|
56
|
+
if (trimmed.length === 0)
|
|
57
|
+
throw new VerseServiceError('VERSE_INVALID', 'q is required');
|
|
58
|
+
if (trimmed.length > VERSE_SEARCH_MAX_QUERY_CHARS) {
|
|
59
|
+
throw new VerseServiceError('VERSE_INVALID', `q must be at most ${VERSE_SEARCH_MAX_QUERY_CHARS} characters`);
|
|
60
|
+
}
|
|
61
|
+
const terms = [];
|
|
62
|
+
const re = /"([^"]*)"|(\S+)/g;
|
|
63
|
+
let match;
|
|
64
|
+
while ((match = re.exec(trimmed)) !== null) {
|
|
65
|
+
const raw = (match[1] ?? match[2] ?? '').replace(/\s+/g, ' ').trim().toLowerCase();
|
|
66
|
+
// A lone quote character is punctuation, not a term.
|
|
67
|
+
const term = raw.replace(/^"+|"+$/g, '');
|
|
68
|
+
if (term.length === 0 || terms.includes(term))
|
|
69
|
+
continue;
|
|
70
|
+
terms.push(term);
|
|
71
|
+
}
|
|
72
|
+
if (terms.length === 0)
|
|
73
|
+
throw new VerseServiceError('VERSE_INVALID', 'q has no searchable terms');
|
|
74
|
+
if (terms.length > VERSE_SEARCH_MAX_TERMS) {
|
|
75
|
+
throw new VerseServiceError('VERSE_INVALID', `q may contain at most ${VERSE_SEARCH_MAX_TERMS} terms`);
|
|
76
|
+
}
|
|
77
|
+
return terms;
|
|
78
|
+
}
|
|
79
|
+
function clampLimit(limit) {
|
|
80
|
+
if (limit === undefined || !Number.isFinite(limit))
|
|
81
|
+
return VERSE_SEARCH_DEFAULT_LIMIT;
|
|
82
|
+
return Math.min(VERSE_SEARCH_MAX_LIMIT, Math.max(1, Math.floor(limit)));
|
|
83
|
+
}
|
|
84
|
+
function countOccurrences(haystack, needle) {
|
|
85
|
+
let count = 0;
|
|
86
|
+
let from = 0;
|
|
87
|
+
for (;;) {
|
|
88
|
+
const at = haystack.indexOf(needle, from);
|
|
89
|
+
if (at === -1)
|
|
90
|
+
return count;
|
|
91
|
+
count += 1;
|
|
92
|
+
from = at + needle.length;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* ≤ VERSE_SEARCH_SNIPPET_CHARS of whitespace-collapsed, secret-scrubbed text
|
|
97
|
+
* around the first match. Scrubbed BEFORE windowing so a redaction can never
|
|
98
|
+
* push the snippet over its cap or leave half a token at a window edge.
|
|
99
|
+
*/
|
|
100
|
+
export function buildSnippet(text, firstTerm) {
|
|
101
|
+
const collapsed = scrubSecrets(text.replace(/\s+/g, ' ').trim());
|
|
102
|
+
const max = VERSE_SEARCH_SNIPPET_CHARS;
|
|
103
|
+
if (collapsed.length <= max)
|
|
104
|
+
return collapsed;
|
|
105
|
+
const ellipsis = '…';
|
|
106
|
+
// Reserve room for an ellipsis at both ends, then place the match about a
|
|
107
|
+
// third of the way in: enough lead-in to read it in context.
|
|
108
|
+
const room = max - 2 * ellipsis.length;
|
|
109
|
+
const at = Math.max(0, collapsed.toLowerCase().indexOf(firstTerm));
|
|
110
|
+
let start = Math.max(0, at - Math.floor(room / 3));
|
|
111
|
+
const end = Math.min(collapsed.length, start + room);
|
|
112
|
+
start = Math.max(0, end - room);
|
|
113
|
+
return `${start > 0 ? ellipsis : ''}${collapsed.slice(start, end)}${end < collapsed.length ? ellipsis : ''}`;
|
|
114
|
+
}
|
|
115
|
+
function recencyWeight(at, nowMs) {
|
|
116
|
+
const t = Date.parse(at);
|
|
117
|
+
if (!Number.isFinite(t))
|
|
118
|
+
return 0.35;
|
|
119
|
+
const ageDays = Math.max(0, (nowMs - t) / DAY_MS);
|
|
120
|
+
return 0.35 + 0.65 * Math.pow(0.5, ageDays / HALF_LIFE_DAYS);
|
|
121
|
+
}
|
|
122
|
+
function sessionRecency(session) {
|
|
123
|
+
const t = Date.parse(session.updatedAt);
|
|
124
|
+
return Number.isFinite(t) ? t : 0;
|
|
125
|
+
}
|
|
126
|
+
export function searchSessions(input) {
|
|
127
|
+
const terms = parseSearchQuery(input.query);
|
|
128
|
+
const limit = clampLimit(input.limit);
|
|
129
|
+
const nowMs = (input.now ?? (() => new Date()))().getTime();
|
|
130
|
+
// Newest first; ties broken by id so the scan order is deterministic.
|
|
131
|
+
const ordered = [...input.sessions].sort((a, b) => sessionRecency(b) - sessionRecency(a) || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
|
|
132
|
+
let truncated = ordered.length > VERSE_SEARCH_MAX_SESSIONS;
|
|
133
|
+
const candidates = ordered.slice(0, VERSE_SEARCH_MAX_SESSIONS);
|
|
134
|
+
const hits = [];
|
|
135
|
+
let scannedSessions = 0;
|
|
136
|
+
let scannedChars = 0;
|
|
137
|
+
for (const session of candidates) {
|
|
138
|
+
if (scannedChars >= VERSE_SEARCH_MAX_SCAN_CHARS) {
|
|
139
|
+
truncated = true;
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
scannedSessions += 1;
|
|
143
|
+
let events;
|
|
144
|
+
try {
|
|
145
|
+
events = input.readEvents(session.id);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
continue; // One unreadable log must not fail the whole search.
|
|
149
|
+
}
|
|
150
|
+
const titleLower = session.title.toLowerCase();
|
|
151
|
+
const titleBonus = terms.every((term) => titleLower.includes(term)) ? 1 : 0;
|
|
152
|
+
const sessionHits = [];
|
|
153
|
+
for (const event of events) {
|
|
154
|
+
if (event.type !== 'user-message' && event.type !== 'assistant-message')
|
|
155
|
+
continue;
|
|
156
|
+
const text = typeof event.text === 'string' ? event.text : '';
|
|
157
|
+
if (text.length === 0)
|
|
158
|
+
continue;
|
|
159
|
+
if (scannedChars >= VERSE_SEARCH_MAX_SCAN_CHARS) {
|
|
160
|
+
truncated = true;
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
scannedChars += text.length;
|
|
164
|
+
const lower = text.toLowerCase();
|
|
165
|
+
let termScore = 0;
|
|
166
|
+
let all = true;
|
|
167
|
+
for (const term of terms) {
|
|
168
|
+
const n = countOccurrences(lower, term);
|
|
169
|
+
if (n === 0) {
|
|
170
|
+
all = false;
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
termScore += 1 + Math.log(n);
|
|
174
|
+
}
|
|
175
|
+
if (!all)
|
|
176
|
+
continue;
|
|
177
|
+
const kind = event.type === 'user-message' ? 'user' : 'assistant';
|
|
178
|
+
const score = (termScore + titleBonus) * (kind === 'user' ? 1.1 : 1) * recencyWeight(event.at, nowMs);
|
|
179
|
+
sessionHits.push({
|
|
180
|
+
sessionId: session.id,
|
|
181
|
+
title: session.title,
|
|
182
|
+
projectPath: session.projectPath,
|
|
183
|
+
engine: session.engine,
|
|
184
|
+
seq: event.seq,
|
|
185
|
+
at: event.at,
|
|
186
|
+
kind,
|
|
187
|
+
snippet: buildSnippet(text, terms[0]),
|
|
188
|
+
score: Math.round(score * 1000) / 1000,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
sessionHits.sort(compareHits);
|
|
192
|
+
hits.push(...sessionHits.slice(0, VERSE_SEARCH_MAX_HITS_PER_SESSION));
|
|
193
|
+
}
|
|
194
|
+
hits.sort(compareHits);
|
|
195
|
+
return {
|
|
196
|
+
query: input.query.trim(),
|
|
197
|
+
hits: hits.slice(0, limit),
|
|
198
|
+
scannedSessions,
|
|
199
|
+
truncated,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/** Best first; then newest; then a stable order so equal scores never shuffle. */
|
|
203
|
+
function compareHits(a, b) {
|
|
204
|
+
if (b.score !== a.score)
|
|
205
|
+
return b.score - a.score;
|
|
206
|
+
const at = Date.parse(b.at) - Date.parse(a.at);
|
|
207
|
+
if (Number.isFinite(at) && at !== 0)
|
|
208
|
+
return at;
|
|
209
|
+
if (a.sessionId !== b.sessionId)
|
|
210
|
+
return a.sessionId < b.sessionId ? -1 : 1;
|
|
211
|
+
return b.seq - a.seq;
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=session-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-search.js","sourceRoot":"","sources":["../../../src/core/verse/session-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,20 @@
|
|
|
15
15
|
* macOS ACL assurance shells out on every call — too heavy for a store that
|
|
16
16
|
* is written on every turn of a live chat.
|
|
17
17
|
*/
|
|
18
|
-
import { type VerseEvent, type VerseSession } from './types.js';
|
|
18
|
+
import { type VerseEvent, type VerseSession, type VerseWindowSource } from './types.js';
|
|
19
|
+
/**
|
|
20
|
+
* An event before `seq`/`at` are stamped. Distributive, so each member of the
|
|
21
|
+
* union keeps its own fields (plain `Omit` on a union collapses it to the
|
|
22
|
+
* common keys and rejects `{ type: 'user-message', text }`).
|
|
23
|
+
*/
|
|
24
|
+
type Unstamped<T> = T extends unknown ? Omit<T, 'seq' | 'at'> : never;
|
|
25
|
+
export type VerseUnstampedEvent = Unstamped<VerseEvent>;
|
|
26
|
+
/**
|
|
27
|
+
* The one list of window sources a record may carry. Exported so a writer can
|
|
28
|
+
* refuse an unknown source BEFORE saving it: a record with one fails `isSession`
|
|
29
|
+
* on the next read and would silently vanish from the store.
|
|
30
|
+
*/
|
|
31
|
+
export declare function isVerseWindowSource(value: unknown): value is VerseWindowSource;
|
|
19
32
|
export declare function isValidSessionId(id: string): boolean;
|
|
20
33
|
export interface VerseSessionStore {
|
|
21
34
|
readonly root: string;
|
|
@@ -27,7 +40,7 @@ export interface VerseSessionStore {
|
|
|
27
40
|
/** Atomic write of the session record; updates the index. */
|
|
28
41
|
save(session: VerseSession): void;
|
|
29
42
|
/** Stamp seq/at and append one event line. Returns the stored event. */
|
|
30
|
-
appendEvent(id: string, event:
|
|
43
|
+
appendEvent(id: string, event: VerseUnstampedEvent, at: string): VerseEvent;
|
|
31
44
|
/** Events with `seq > fromSeq`, capped to the newest VERSE_MAX_EVENTS_PER_SESSION. */
|
|
32
45
|
readEvents(id: string, fromSeq?: number): VerseEvent[];
|
|
33
46
|
/** Highest seq appended so far (0 when none). */
|
|
@@ -39,3 +52,4 @@ export interface VerseSessionStore {
|
|
|
39
52
|
remove(id: string): void;
|
|
40
53
|
}
|
|
41
54
|
export declare function createVerseSessionStore(root: string): VerseSessionStore;
|
|
55
|
+
export {};
|
|
@@ -18,13 +18,25 @@
|
|
|
18
18
|
import { appendFileSync, closeSync, constants as fsConstants, existsSync, fchmodSync, fsyncSync, mkdirSync, openSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeSync, } from 'node:fs';
|
|
19
19
|
import { randomBytes } from 'node:crypto';
|
|
20
20
|
import { join } from 'node:path';
|
|
21
|
-
import { VERSE_MAX_EVENTS_PER_SESSION, } from './types.js';
|
|
21
|
+
import { VERSE_CONTEXT_MODES, VERSE_MAX_EVENTS_PER_SESSION, } from './types.js';
|
|
22
22
|
const SESSION_ID_RE = /^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/;
|
|
23
23
|
const SESSION_SUFFIX = '.json';
|
|
24
24
|
const EVENTS_SUFFIX = '.events.jsonl';
|
|
25
25
|
const LAUNCH_SUFFIX = '.launch.json';
|
|
26
26
|
const VERSE_STATUSES = new Set(['idle', 'running', 'error']);
|
|
27
27
|
const VERSE_ENGINES = new Set(['claude', 'codex', 'grok', 'local']);
|
|
28
|
+
const VERSE_CONTEXT_MODE_SET = new Set(VERSE_CONTEXT_MODES);
|
|
29
|
+
/** Mirrors `VerseWindowSource` in types.ts — the store is the gate that keeps a hand-edited record honest. */
|
|
30
|
+
const VERSE_WINDOW_SOURCES = new Set(['runtime', 'provider-catalog', 'cli-catalog', 'documented', 'fallback']);
|
|
31
|
+
/**
|
|
32
|
+
* The one list of window sources a record may carry. Exported so a writer can
|
|
33
|
+
* refuse an unknown source BEFORE saving it: a record with one fails `isSession`
|
|
34
|
+
* on the next read and would silently vanish from the store.
|
|
35
|
+
*/
|
|
36
|
+
export function isVerseWindowSource(value) {
|
|
37
|
+
return typeof value === 'string' && VERSE_WINDOW_SOURCES.has(value);
|
|
38
|
+
}
|
|
39
|
+
const VERSE_COMPACTION_TRIGGERS = new Set(['auto', 'manual']);
|
|
28
40
|
export function isValidSessionId(id) {
|
|
29
41
|
return SESSION_ID_RE.test(id);
|
|
30
42
|
}
|
|
@@ -55,6 +67,41 @@ function isOptionalStringArray(value) {
|
|
|
55
67
|
function isStringArrayValue(value) {
|
|
56
68
|
return Array.isArray(value) && value.every((item) => typeof item === 'string');
|
|
57
69
|
}
|
|
70
|
+
function isOptionalBoolean(value) {
|
|
71
|
+
return value === undefined || typeof value === 'boolean';
|
|
72
|
+
}
|
|
73
|
+
function isNullableNumber(value) {
|
|
74
|
+
return value === null || isFiniteNumber(value);
|
|
75
|
+
}
|
|
76
|
+
function isOptionalNullableNumber(value) {
|
|
77
|
+
return value === undefined || isNullableNumber(value);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* V3.9 usage fields. Each is optional (absent on every record written before
|
|
81
|
+
* context orchestration) but, when PRESENT, must be exactly the documented
|
|
82
|
+
* shape: a record claiming `contextWindowSource: 'guess'` or a string
|
|
83
|
+
* `autoCompactAt` is corrupt, and a corrupt record is skipped rather than
|
|
84
|
+
* drawn with numbers nobody can vouch for.
|
|
85
|
+
*/
|
|
86
|
+
function isV39UsageValid(usage) {
|
|
87
|
+
const source = usage['contextWindowSource'];
|
|
88
|
+
return (source === undefined || (typeof source === 'string' && VERSE_WINDOW_SOURCES.has(source)))
|
|
89
|
+
&& isOptionalNullableNumber(usage['autoCompactAt'])
|
|
90
|
+
&& isOptionalBoolean(usage['contextTokensExact']);
|
|
91
|
+
}
|
|
92
|
+
/** V3.9 session fields — same absent-or-exact rule as the usage fields above. */
|
|
93
|
+
function isV39SessionValid(value) {
|
|
94
|
+
const mode = value['contextMode'];
|
|
95
|
+
const count = value['compactionCount'];
|
|
96
|
+
const handoff = value['handoffFrom'];
|
|
97
|
+
return (mode === undefined || (typeof mode === 'string' && VERSE_CONTEXT_MODE_SET.has(mode)))
|
|
98
|
+
&& (count === undefined || (isFiniteNumber(count) && count >= 0 && Number.isInteger(count)))
|
|
99
|
+
&& (handoff === undefined
|
|
100
|
+
|| (isObject(handoff)
|
|
101
|
+
&& typeof handoff['sessionId'] === 'string' && handoff['sessionId'].length > 0
|
|
102
|
+
&& typeof handoff['title'] === 'string'))
|
|
103
|
+
&& isOptionalBoolean(value['memoryEnabled']);
|
|
104
|
+
}
|
|
58
105
|
function isSession(value) {
|
|
59
106
|
if (!isObject(value))
|
|
60
107
|
return false;
|
|
@@ -81,13 +128,40 @@ function isSession(value) {
|
|
|
81
128
|
&& isFiniteNumber(usage['cacheCreationTokens'])
|
|
82
129
|
&& isFiniteNumber(usage['contextTokens'])
|
|
83
130
|
&& (usage['contextWindow'] === null || isFiniteNumber(usage['contextWindow']))
|
|
84
|
-
&& (
|
|
131
|
+
&& isV39UsageValid(usage)
|
|
132
|
+
&& (value['lastError'] === null || typeof value['lastError'] === 'string')
|
|
133
|
+
&& isV39SessionValid(value);
|
|
85
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Event shape check. The historical types stay LENIENT (seq/at/type only):
|
|
137
|
+
* tightening them now would silently drop lines from logs written by every
|
|
138
|
+
* earlier release. The two V3.9 types are checked in full, because their
|
|
139
|
+
* numbers feed the meter and the compaction count directly — a malformed line
|
|
140
|
+
* is dropped like any other garbage line rather than drawn.
|
|
141
|
+
*/
|
|
86
142
|
function isEvent(value) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
143
|
+
if (!isObject(value)
|
|
144
|
+
|| !isFiniteNumber(value['seq'])
|
|
145
|
+
|| typeof value['at'] !== 'string'
|
|
146
|
+
|| typeof value['type'] !== 'string')
|
|
147
|
+
return false;
|
|
148
|
+
const turnId = value['turnId'];
|
|
149
|
+
switch (value['type']) {
|
|
150
|
+
case 'compaction':
|
|
151
|
+
return (turnId === null || typeof turnId === 'string')
|
|
152
|
+
&& typeof value['trigger'] === 'string' && VERSE_COMPACTION_TRIGGERS.has(value['trigger'])
|
|
153
|
+
&& isNullableNumber(value['preTokens'])
|
|
154
|
+
&& isNullableNumber(value['postTokens'])
|
|
155
|
+
&& isNullableNumber(value['durationMs']);
|
|
156
|
+
case 'context':
|
|
157
|
+
return (turnId === null || typeof turnId === 'string')
|
|
158
|
+
&& isFiniteNumber(value['contextTokens']) && value['contextTokens'] >= 0
|
|
159
|
+
&& isNullableNumber(value['contextWindow'])
|
|
160
|
+
&& typeof value['exact'] === 'boolean'
|
|
161
|
+
&& isOptionalNullableNumber(value['autoCompactAt']);
|
|
162
|
+
default:
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
91
165
|
}
|
|
92
166
|
function ensurePrivateDir(path) {
|
|
93
167
|
mkdirSync(path, { recursive: true, mode: 0o700 });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/core/verse/session-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/core/verse/session-store.ts"],"names":[],"mappings":"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"}
|