@getrift/rift 0.1.0-beta.12 → 0.1.0-beta.14
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 +35 -9
- package/dist/src/cli/commands/doctor.d.ts +6 -0
- package/dist/src/cli/commands/doctor.d.ts.map +1 -0
- package/dist/src/cli/commands/doctor.js +183 -0
- package/dist/src/cli/commands/doctor.js.map +1 -0
- package/dist/src/cli/commands/menubar.d.ts +30 -0
- package/dist/src/cli/commands/menubar.d.ts.map +1 -0
- package/dist/src/cli/commands/menubar.js +180 -0
- package/dist/src/cli/commands/menubar.js.map +1 -0
- package/dist/src/cli/commands/onboard.d.ts +38 -0
- package/dist/src/cli/commands/onboard.d.ts.map +1 -1
- package/dist/src/cli/commands/onboard.js +203 -121
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/status.d.ts +9 -7
- package/dist/src/cli/commands/status.d.ts.map +1 -1
- package/dist/src/cli/commands/status.js +29 -10
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/commands/update.d.ts +3 -0
- package/dist/src/cli/commands/update.d.ts.map +1 -1
- package/dist/src/cli/commands/update.js +19 -0
- package/dist/src/cli/commands/update.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +4 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/postinstall-menubar.d.ts +22 -0
- package/dist/src/cli/postinstall-menubar.d.ts.map +1 -0
- package/dist/src/cli/postinstall-menubar.js +39 -0
- package/dist/src/cli/postinstall-menubar.js.map +1 -0
- package/dist/src/cli/status/friend-header.d.ts +8 -1
- package/dist/src/cli/status/friend-header.d.ts.map +1 -1
- package/dist/src/cli/status/friend-header.js +93 -12
- package/dist/src/cli/status/friend-header.js.map +1 -1
- package/dist/src/cli/ui.d.ts +47 -0
- package/dist/src/cli/ui.d.ts.map +1 -0
- package/dist/src/cli/ui.js +166 -0
- package/dist/src/cli/ui.js.map +1 -0
- package/dist/src/diagnostics/doctor.d.ts +106 -0
- package/dist/src/diagnostics/doctor.d.ts.map +1 -0
- package/dist/src/diagnostics/doctor.js +251 -0
- package/dist/src/diagnostics/doctor.js.map +1 -0
- package/dist/src/diagnostics/notify.d.ts +90 -0
- package/dist/src/diagnostics/notify.d.ts.map +1 -0
- package/dist/src/diagnostics/notify.js +177 -0
- package/dist/src/diagnostics/notify.js.map +1 -0
- package/dist/src/diagnostics/repair-prompt.d.ts +49 -0
- package/dist/src/diagnostics/repair-prompt.d.ts.map +1 -0
- package/dist/src/diagnostics/repair-prompt.js +198 -0
- package/dist/src/diagnostics/repair-prompt.js.map +1 -0
- package/dist/src/jobs/handlers/dedupe-conversations.d.ts +25 -2
- package/dist/src/jobs/handlers/dedupe-conversations.d.ts.map +1 -1
- package/dist/src/jobs/handlers/dedupe-conversations.js +48 -9
- package/dist/src/jobs/handlers/dedupe-conversations.js.map +1 -1
- package/dist/src/jobs/handlers/ingest.d.ts.map +1 -1
- package/dist/src/jobs/handlers/ingest.js +8 -2
- package/dist/src/jobs/handlers/ingest.js.map +1 -1
- package/dist/src/main.js +43 -4
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +43 -3
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/context-pack.js +163 -25
- package/dist/src/mcp/tools/context-pack.js.map +1 -1
- package/dist/src/observability/onboarding-metric.d.ts +115 -0
- package/dist/src/observability/onboarding-metric.d.ts.map +1 -0
- package/dist/src/observability/onboarding-metric.js +344 -0
- package/dist/src/observability/onboarding-metric.js.map +1 -0
- package/dist/src/observability/version-check.d.ts +1 -0
- package/dist/src/observability/version-check.d.ts.map +1 -1
- package/dist/src/observability/version-check.js +2 -1
- package/dist/src/observability/version-check.js.map +1 -1
- package/dist/src/retrieval/context-pack.d.ts +37 -0
- package/dist/src/retrieval/context-pack.d.ts.map +1 -1
- package/dist/src/retrieval/context-pack.js +165 -1
- package/dist/src/retrieval/context-pack.js.map +1 -1
- package/dist/src/retrieval/current-truth.d.ts +326 -0
- package/dist/src/retrieval/current-truth.d.ts.map +1 -0
- package/dist/src/retrieval/current-truth.js +747 -0
- package/dist/src/retrieval/current-truth.js.map +1 -0
- package/dist/src/retrieval/git-state.d.ts +53 -0
- package/dist/src/retrieval/git-state.d.ts.map +1 -0
- package/dist/src/retrieval/git-state.js +174 -0
- package/dist/src/retrieval/git-state.js.map +1 -0
- package/dist/src/server/routes/friend-status.d.ts +63 -0
- package/dist/src/server/routes/friend-status.d.ts.map +1 -1
- package/dist/src/server/routes/friend-status.js +97 -0
- package/dist/src/server/routes/friend-status.js.map +1 -1
- package/operator/swiftbar/render-menu.py +444 -0
- package/operator/swiftbar/rift.10s.sh +147 -0
- package/package.json +4 -1
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `time_to_first_useful_recall` v1 instrumentation.
|
|
3
|
+
*
|
|
4
|
+
* Persists exactly four fields under `<data_dir>/metrics/onboarding.json`:
|
|
5
|
+
* - install_id (random UUID, minted on first read)
|
|
6
|
+
* - useful_state_reached_at (ISO timestamp or null)
|
|
7
|
+
* - first_useful_recall_at (ISO timestamp or null)
|
|
8
|
+
* - first_useful_recall_tool (one of the three retrieval tools)
|
|
9
|
+
*
|
|
10
|
+
* Privacy contract: query text, response text, hit IDs, source paths and
|
|
11
|
+
* client identifiers MUST NEVER land in this file. Writes go through a
|
|
12
|
+
* fixed-key sanitizer so an upstream caller that hands in extra fields
|
|
13
|
+
* cannot leak them by accident. Tests assert the persisted shape.
|
|
14
|
+
*
|
|
15
|
+
* Write-once: once a field is set, it is never overwritten. End
|
|
16
|
+
* stamping (`first_useful_recall_*`) requires `useful_state_reached_at`
|
|
17
|
+
* to have already been observed by a real readiness check — the metric's
|
|
18
|
+
* definition is "first MCP retrieval *after start*", so a recorded end
|
|
19
|
+
* without a prior recorded start would lie about the latency. If start
|
|
20
|
+
* is null when end fires, the end is dropped. To avoid losing the first
|
|
21
|
+
* real recall, callers should evaluate readiness via
|
|
22
|
+
* `stampOnboardingStartIfReady` (the shared helper used by
|
|
23
|
+
* `/status/friend`) before invoking the end-event recorder.
|
|
24
|
+
*/
|
|
25
|
+
import fs from "node:fs";
|
|
26
|
+
import path from "node:path";
|
|
27
|
+
import { randomUUID } from "node:crypto";
|
|
28
|
+
/** MCP retrieval tools that can satisfy the end-event condition. */
|
|
29
|
+
export const RETRIEVAL_TOOLS = new Set([
|
|
30
|
+
"rift_search",
|
|
31
|
+
"rift_conversations_search",
|
|
32
|
+
"rift_context_pack",
|
|
33
|
+
]);
|
|
34
|
+
export function onboardingMetricPath(dataDir) {
|
|
35
|
+
return path.join(dataDir, "metrics", "onboarding.json");
|
|
36
|
+
}
|
|
37
|
+
function isRetrievalTool(v) {
|
|
38
|
+
return typeof v === "string" && RETRIEVAL_TOOLS.has(v);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Read-or-bootstrap. A missing/corrupt file is replaced with a fresh
|
|
42
|
+
* record whose `install_id` is a new UUID. Unknown fields in an existing
|
|
43
|
+
* file are dropped on the next write (sanitizer drops everything outside
|
|
44
|
+
* the fixed key set).
|
|
45
|
+
*/
|
|
46
|
+
export function readOnboardingMetric(dataDir) {
|
|
47
|
+
const file = onboardingMetricPath(dataDir);
|
|
48
|
+
let parsed;
|
|
49
|
+
try {
|
|
50
|
+
const raw = fs.readFileSync(file, "utf8");
|
|
51
|
+
const obj = JSON.parse(raw);
|
|
52
|
+
if (obj && typeof obj === "object") {
|
|
53
|
+
parsed = obj;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// missing or unreadable — fall through to bootstrap
|
|
58
|
+
}
|
|
59
|
+
if (!parsed ||
|
|
60
|
+
typeof parsed["install_id"] !== "string" ||
|
|
61
|
+
parsed["install_id"].length === 0) {
|
|
62
|
+
const fresh = {
|
|
63
|
+
install_id: randomUUID(),
|
|
64
|
+
useful_state_reached_at: null,
|
|
65
|
+
first_useful_recall_at: null,
|
|
66
|
+
first_useful_recall_tool: null,
|
|
67
|
+
};
|
|
68
|
+
writeOnboardingMetric(dataDir, fresh);
|
|
69
|
+
return fresh;
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
install_id: parsed["install_id"],
|
|
73
|
+
useful_state_reached_at: typeof parsed["useful_state_reached_at"] === "string"
|
|
74
|
+
? parsed["useful_state_reached_at"]
|
|
75
|
+
: null,
|
|
76
|
+
first_useful_recall_at: typeof parsed["first_useful_recall_at"] === "string"
|
|
77
|
+
? parsed["first_useful_recall_at"]
|
|
78
|
+
: null,
|
|
79
|
+
first_useful_recall_tool: isRetrievalTool(parsed["first_useful_recall_tool"])
|
|
80
|
+
? parsed["first_useful_recall_tool"]
|
|
81
|
+
: null,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Persist the metric. The sanitizer copies exactly four named fields —
|
|
86
|
+
* anything else a caller might have spliced onto the object is discarded
|
|
87
|
+
* before it touches disk. This is the privacy guard that the schema
|
|
88
|
+
* test pins.
|
|
89
|
+
*/
|
|
90
|
+
function writeOnboardingMetric(dataDir, metric) {
|
|
91
|
+
const file = onboardingMetricPath(dataDir);
|
|
92
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
93
|
+
const sanitized = {
|
|
94
|
+
install_id: metric.install_id,
|
|
95
|
+
useful_state_reached_at: metric.useful_state_reached_at,
|
|
96
|
+
first_useful_recall_at: metric.first_useful_recall_at,
|
|
97
|
+
first_useful_recall_tool: metric.first_useful_recall_tool,
|
|
98
|
+
};
|
|
99
|
+
fs.writeFileSync(file, JSON.stringify(sanitized, null, 2));
|
|
100
|
+
}
|
|
101
|
+
export function isUsefulStateReached(signals) {
|
|
102
|
+
return (signals.daemonHealthy &&
|
|
103
|
+
signals.voyageKeyValid &&
|
|
104
|
+
signals.indexedCount >= 1);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Stamp `useful_state_reached_at` if (a) readiness is observed and
|
|
108
|
+
* (b) the field is still null. No-op otherwise. Returns the (possibly
|
|
109
|
+
* updated) record.
|
|
110
|
+
*/
|
|
111
|
+
export function stampUsefulStateIfReady(dataDir, opts) {
|
|
112
|
+
const current = readOnboardingMetric(dataDir);
|
|
113
|
+
if (current.useful_state_reached_at !== null)
|
|
114
|
+
return current;
|
|
115
|
+
if (!opts.ready)
|
|
116
|
+
return current;
|
|
117
|
+
const next = {
|
|
118
|
+
...current,
|
|
119
|
+
useful_state_reached_at: opts.now,
|
|
120
|
+
};
|
|
121
|
+
writeOnboardingMetric(dataDir, next);
|
|
122
|
+
return next;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Stamp `first_useful_recall_*` if eligible. Eligibility:
|
|
126
|
+
* 1. tool is one of `RETRIEVAL_TOOLS`
|
|
127
|
+
* 2. response was not degraded
|
|
128
|
+
* 3. response had at least one hit
|
|
129
|
+
* 4. `first_useful_recall_at` is still null (write-once)
|
|
130
|
+
* 5. `useful_state_reached_at` was already observed (non-null)
|
|
131
|
+
*
|
|
132
|
+
* The metric measures "first MCP retrieval *after* start." If start
|
|
133
|
+
* has not been observed yet, end stamping is skipped — recording an
|
|
134
|
+
* end alongside a synthesised start would report a near-zero duration
|
|
135
|
+
* that doesn't reflect a real "from readiness to first useful recall"
|
|
136
|
+
* measurement. Callers that want to avoid dropping the first real
|
|
137
|
+
* recall should evaluate readiness via the shared helper
|
|
138
|
+
* (`stampOnboardingStartIfReady` on the daemon, exposed through
|
|
139
|
+
* `/status/friend`) before invoking this function.
|
|
140
|
+
*/
|
|
141
|
+
export function stampFirstUsefulRecallIfEligible(dataDir, opts) {
|
|
142
|
+
const current = readOnboardingMetric(dataDir);
|
|
143
|
+
if (!RETRIEVAL_TOOLS.has(opts.tool))
|
|
144
|
+
return current;
|
|
145
|
+
if (opts.isDegraded)
|
|
146
|
+
return current;
|
|
147
|
+
if (opts.hitCount < 1)
|
|
148
|
+
return current;
|
|
149
|
+
if (current.first_useful_recall_at !== null)
|
|
150
|
+
return current;
|
|
151
|
+
if (current.useful_state_reached_at === null)
|
|
152
|
+
return current;
|
|
153
|
+
const next = {
|
|
154
|
+
...current,
|
|
155
|
+
first_useful_recall_at: opts.now,
|
|
156
|
+
first_useful_recall_tool: opts.tool,
|
|
157
|
+
};
|
|
158
|
+
writeOnboardingMetric(dataDir, next);
|
|
159
|
+
return next;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Project the persisted metric to the three rendering states the
|
|
163
|
+
* status surface needs. Hidden = no start yet (don't show the line at
|
|
164
|
+
* all). Pending = start, no end. Completed = both, with a derived
|
|
165
|
+
* `duration_seconds`.
|
|
166
|
+
*/
|
|
167
|
+
export function computeOnboardingState(metric) {
|
|
168
|
+
if (!metric.useful_state_reached_at)
|
|
169
|
+
return { state: "hidden" };
|
|
170
|
+
if (!metric.first_useful_recall_at ||
|
|
171
|
+
!metric.first_useful_recall_tool) {
|
|
172
|
+
return {
|
|
173
|
+
state: "pending",
|
|
174
|
+
useful_state_reached_at: metric.useful_state_reached_at,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
const startMs = Date.parse(metric.useful_state_reached_at);
|
|
178
|
+
const endMs = Date.parse(metric.first_useful_recall_at);
|
|
179
|
+
const duration_seconds = Number.isNaN(startMs) || Number.isNaN(endMs)
|
|
180
|
+
? 0
|
|
181
|
+
: Math.max(0, Math.round((endMs - startMs) / 1000));
|
|
182
|
+
return {
|
|
183
|
+
state: "completed",
|
|
184
|
+
useful_state_reached_at: metric.useful_state_reached_at,
|
|
185
|
+
first_useful_recall_at: metric.first_useful_recall_at,
|
|
186
|
+
first_useful_recall_tool: metric.first_useful_recall_tool,
|
|
187
|
+
duration_seconds,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* MCP-side bridge between a finished retrieval-tool call and the
|
|
192
|
+
* end-event stamper. Mirrors the extractor logic in
|
|
193
|
+
* `observability/tool-usage.ts` for `result_count` and `degraded`, but
|
|
194
|
+
* stays self-contained so this module has no dependency on the logger.
|
|
195
|
+
*
|
|
196
|
+
* Readiness handshake: end stamping requires `useful_state_reached_at`
|
|
197
|
+
* to already be set (the metric is "first MCP retrieval *after*
|
|
198
|
+
* start", per the v1 spec). When the recorder finds start still null
|
|
199
|
+
* but the response is otherwise eligible, it invokes the optional
|
|
200
|
+
* `pingReadiness` callback (the MCP wrapper passes one that GETs
|
|
201
|
+
* `/status/friend` on the daemon, which evaluates readiness signals
|
|
202
|
+
* and stamps start lazily). After the ping returns, the metric is
|
|
203
|
+
* re-read and end is stamped only if start has now landed. When no
|
|
204
|
+
* callback is provided, or readiness still cannot be observed, the
|
|
205
|
+
* end event is silently dropped — that matches the contract that
|
|
206
|
+
* end-without-start would otherwise misreport as a near-zero duration.
|
|
207
|
+
*
|
|
208
|
+
* Never throws: persistence errors and ping errors are swallowed so
|
|
209
|
+
* onboarding telemetry can never break a tool call. CLI callers do not
|
|
210
|
+
* invoke this helper (it lives behind the MCP server's tool
|
|
211
|
+
* registration), so the "MCP-only end" constraint is enforced by
|
|
212
|
+
* construction.
|
|
213
|
+
*/
|
|
214
|
+
export async function recordMcpRetrievalForOnboarding(dataDir, tool, mcpResult, opts = {}) {
|
|
215
|
+
if (!RETRIEVAL_TOOLS.has(tool))
|
|
216
|
+
return;
|
|
217
|
+
if (mcpResult.isError)
|
|
218
|
+
return;
|
|
219
|
+
const initialNow = opts.now ?? new Date().toISOString();
|
|
220
|
+
try {
|
|
221
|
+
const signal = extractRetrievalSignal(tool, mcpResult);
|
|
222
|
+
if (signal.count === undefined)
|
|
223
|
+
return;
|
|
224
|
+
if (signal.degraded === true)
|
|
225
|
+
return;
|
|
226
|
+
if (signal.count < 1)
|
|
227
|
+
return;
|
|
228
|
+
// Cheap pre-check: if end is already stamped, skip everything
|
|
229
|
+
// (write-once means stampFirstUsefulRecallIfEligible would no-op
|
|
230
|
+
// anyway, but bailing here avoids a needless readiness ping).
|
|
231
|
+
let current = readOnboardingMetric(dataDir);
|
|
232
|
+
if (current.first_useful_recall_at !== null)
|
|
233
|
+
return;
|
|
234
|
+
// Readiness handshake: only when start is missing AND a ping is
|
|
235
|
+
// available. The end-condition (non-degraded, ≥ 1 hit) strictly
|
|
236
|
+
// implies the start-conditions hold in the wider system, but we
|
|
237
|
+
// still want the daemon to do the formal readiness observation
|
|
238
|
+
// (env present + last_embed_at + capability counts) before
|
|
239
|
+
// recording an end timestamp — otherwise the metric would lie
|
|
240
|
+
// about its own definition.
|
|
241
|
+
if (current.useful_state_reached_at === null && opts.pingReadiness) {
|
|
242
|
+
try {
|
|
243
|
+
await opts.pingReadiness();
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
// Ping failures degrade to "skip end this time" rather than
|
|
247
|
+
// breaking the tool call. The next eligible retrieval will
|
|
248
|
+
// re-attempt the ping.
|
|
249
|
+
}
|
|
250
|
+
// Re-read so the ordering clamp below sees the freshly stamped
|
|
251
|
+
// start (if any) before we record end.
|
|
252
|
+
current = readOnboardingMetric(dataDir);
|
|
253
|
+
}
|
|
254
|
+
// Ordering clamp: the metric measures "first MCP retrieval *after*
|
|
255
|
+
// start", so `first_useful_recall_at` must never be earlier than
|
|
256
|
+
// `useful_state_reached_at`. When the readiness ping above lazily
|
|
257
|
+
// stamps start during this same call, the retrieval `now` captured
|
|
258
|
+
// before the ping can be older than the freshly written start —
|
|
259
|
+
// recording the older `now` as end would produce an inverted pair
|
|
260
|
+
// that the duration projection then silently clamps to 0s, hiding
|
|
261
|
+
// the bug. Take the max so the persisted end is always >= start.
|
|
262
|
+
let now = initialNow;
|
|
263
|
+
if (current.useful_state_reached_at !== null &&
|
|
264
|
+
now < current.useful_state_reached_at) {
|
|
265
|
+
now = current.useful_state_reached_at;
|
|
266
|
+
}
|
|
267
|
+
stampFirstUsefulRecallIfEligible(dataDir, {
|
|
268
|
+
tool,
|
|
269
|
+
isDegraded: false,
|
|
270
|
+
hitCount: signal.count,
|
|
271
|
+
now,
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
catch {
|
|
275
|
+
// Telemetry must never break tool execution.
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Per-tool `(count, degraded)` extraction. Duplicated from
|
|
280
|
+
* `tool-usage.ts` rather than imported to avoid circular dependency
|
|
281
|
+
* risk and to keep this module's contract narrow.
|
|
282
|
+
*/
|
|
283
|
+
function extractRetrievalSignal(tool, mcpResult) {
|
|
284
|
+
const sc = mcpResult.structuredContent;
|
|
285
|
+
if (tool === "rift_context_pack") {
|
|
286
|
+
if (!sc)
|
|
287
|
+
return {};
|
|
288
|
+
const sum = (key) => {
|
|
289
|
+
const v = sc[key];
|
|
290
|
+
return Array.isArray(v) ? v.length : 0;
|
|
291
|
+
};
|
|
292
|
+
const count = sum("decisions") + sum("constraints") + sum("examples") + sum("rules");
|
|
293
|
+
const out = { count };
|
|
294
|
+
if (typeof sc["degraded"] === "boolean")
|
|
295
|
+
out.degraded = sc["degraded"];
|
|
296
|
+
return out;
|
|
297
|
+
}
|
|
298
|
+
// search-style tools: prefer structuredContent.results, fall back to JSON-in-text.
|
|
299
|
+
const fromStructured = sc?.["results"];
|
|
300
|
+
if (Array.isArray(fromStructured)) {
|
|
301
|
+
const out = {
|
|
302
|
+
count: fromStructured.length,
|
|
303
|
+
};
|
|
304
|
+
if (typeof sc?.["degraded"] === "boolean") {
|
|
305
|
+
out.degraded = sc["degraded"];
|
|
306
|
+
}
|
|
307
|
+
return out;
|
|
308
|
+
}
|
|
309
|
+
try {
|
|
310
|
+
const text = mcpResult.content?.[0]?.text;
|
|
311
|
+
if (!text)
|
|
312
|
+
return {};
|
|
313
|
+
const parsed = JSON.parse(text);
|
|
314
|
+
const out = {};
|
|
315
|
+
if (Array.isArray(parsed["results"])) {
|
|
316
|
+
out.count = parsed["results"].length;
|
|
317
|
+
}
|
|
318
|
+
if (typeof parsed["degraded"] === "boolean") {
|
|
319
|
+
out.degraded = parsed["degraded"];
|
|
320
|
+
}
|
|
321
|
+
return out;
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
return {};
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Render a duration like `7m 42s` / `1h 03m 17s` / `12s`. Used by the
|
|
329
|
+
* friend-status header so the value reads in human time, not seconds.
|
|
330
|
+
*/
|
|
331
|
+
export function formatOnboardingDuration(totalSeconds) {
|
|
332
|
+
const s = Math.max(0, Math.floor(totalSeconds));
|
|
333
|
+
const hours = Math.floor(s / 3600);
|
|
334
|
+
const minutes = Math.floor((s % 3600) / 60);
|
|
335
|
+
const seconds = s % 60;
|
|
336
|
+
if (hours > 0) {
|
|
337
|
+
return `${hours}h ${String(minutes).padStart(2, "0")}m ${String(seconds).padStart(2, "0")}s`;
|
|
338
|
+
}
|
|
339
|
+
if (minutes > 0) {
|
|
340
|
+
return `${minutes}m ${String(seconds).padStart(2, "0")}s`;
|
|
341
|
+
}
|
|
342
|
+
return `${seconds}s`;
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=onboarding-metric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding-metric.js","sourceRoot":"","sources":["../../../src/observability/onboarding-metric.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ export declare function readVersionCheck(dataDir: string): VersionCheckSnapshot
|
|
|
36
36
|
*/
|
|
37
37
|
export declare function compareBetaVersions(a: string, b: string): number;
|
|
38
38
|
export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org/@getrift/rift";
|
|
39
|
+
export declare const VERSION_CHECK_INTERVAL_MS: number;
|
|
39
40
|
/**
|
|
40
41
|
* Hit the npm registry for the `beta` dist-tag. Metadata-only fetch —
|
|
41
42
|
* no auth, no headers beyond the default. Returns the resolved version
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../../src/observability/version-check.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CAYN;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,oBAAoB,GAAG,IAAI,CAe7B;AAaD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAahE;AAsBD,eAAO,MAAM,gBAAgB,6CACe,CAAC;AAE7C;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,IAAI,GAAE;IAC1C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CACd;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACjE,CA8BA;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAwBhC"}
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../../src/observability/version-check.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CAYN;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,oBAAoB,GAAG,IAAI,CAe7B;AAaD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAahE;AAsBD,eAAO,MAAM,gBAAgB,6CACe,CAAC;AAE7C,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AAExD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,IAAI,GAAE;IAC1C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CACd;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACjE,CA8BA;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAwBhC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Version-check lane — single-file snapshot, not append-only.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Hourly, the daemon hits the npm registry for `@getrift/rift` and writes
|
|
5
5
|
* the latest `beta` dist-tag alongside the currently-installed version
|
|
6
6
|
* into `data/observability/version-check.json`. The CLI's `rift status`
|
|
7
7
|
* header reads this file (auth-gated via /status/friend) and surfaces an
|
|
@@ -124,6 +124,7 @@ function parseBetaVersion(v) {
|
|
|
124
124
|
return { major, minor, patch, beta };
|
|
125
125
|
}
|
|
126
126
|
export const NPM_REGISTRY_URL = "https://registry.npmjs.org/@getrift/rift";
|
|
127
|
+
export const VERSION_CHECK_INTERVAL_MS = 60 * 60 * 1000;
|
|
127
128
|
/**
|
|
128
129
|
* Hit the npm registry for the `beta` dist-tag. Metadata-only fetch —
|
|
129
130
|
* no auth, no headers beyond the default. Returns the resolved version
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../../src/observability/version-check.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../../src/observability/version-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
import type { EmbeddingProvider } from "../providers/types.js";
|
|
23
23
|
import type { SourceDir } from "../config/schema.js";
|
|
24
24
|
import { type RankedResult } from "./reranker.js";
|
|
25
|
+
import { type ConflictCard, type DiscountedCard, type EvidenceCard, type EvidenceIntent, type RecommendedLiveFile } from "./current-truth.js";
|
|
25
26
|
export declare const ITEM_TEXT_MAX = 200;
|
|
26
27
|
export declare const SNIPPET_MAX = 200;
|
|
27
28
|
export declare const DEFAULT_MAX_PER_BUCKET = 3;
|
|
@@ -99,10 +100,46 @@ export interface RuleCard {
|
|
|
99
100
|
}
|
|
100
101
|
export interface ContextPack {
|
|
101
102
|
task: string;
|
|
103
|
+
/**
|
|
104
|
+
* Current Truth Mode v0 — intent the packager resolved from `task`.
|
|
105
|
+
* Drives which evidence sections are populated below.
|
|
106
|
+
*/
|
|
107
|
+
intent: EvidenceIntent;
|
|
102
108
|
decisions: DecisionCard[];
|
|
103
109
|
constraints: ConstraintCard[];
|
|
104
110
|
examples: ExampleCard[];
|
|
105
111
|
rules: RuleCard[];
|
|
112
|
+
/**
|
|
113
|
+
* Evidence partitioned by current-truth-vs-reasoning. Sections are
|
|
114
|
+
* optional and only emitted when populated — the renderer must not
|
|
115
|
+
* print "(none)" placeholders.
|
|
116
|
+
*
|
|
117
|
+
* - `current_truth` — tracker / source / recent evidence.
|
|
118
|
+
* - `past_reasoning` — conversation-derived evidence (taste, rationale,
|
|
119
|
+
* historical framing). Not demoted in `reasoning_archive` mode.
|
|
120
|
+
* - `older_memory` — older / non-canonical evidence kept for reference.
|
|
121
|
+
* - `discounted` — evidence the packager believes is stale or
|
|
122
|
+
* snapshot-shaped, with a short reason.
|
|
123
|
+
* - `recommended_live_files` — concrete paths the asker should read
|
|
124
|
+
* live before trusting the answer; populated when `current_truth` is
|
|
125
|
+
* empty or thin and the intent is current-truth/blended.
|
|
126
|
+
*/
|
|
127
|
+
current_truth?: EvidenceCard[];
|
|
128
|
+
past_reasoning?: EvidenceCard[];
|
|
129
|
+
older_memory?: EvidenceCard[];
|
|
130
|
+
discounted?: DiscountedCard[];
|
|
131
|
+
recommended_live_files?: RecommendedLiveFile[];
|
|
132
|
+
/**
|
|
133
|
+
* v2 surfaced conflicts (hard rule 4) — a discounted current-state
|
|
134
|
+
* source competing with higher-tier evidence. Optional; only emitted
|
|
135
|
+
* when populated.
|
|
136
|
+
*/
|
|
137
|
+
conflicts?: ConflictCard[];
|
|
138
|
+
/**
|
|
139
|
+
* v2 caveat (hard rule 3) — "tracker-backed, not live-verified" when
|
|
140
|
+
* `current_truth` has no `live_state`-tier evidence. Optional.
|
|
141
|
+
*/
|
|
142
|
+
current_truth_caveat?: string;
|
|
106
143
|
total_bytes: number;
|
|
107
144
|
truncated: boolean;
|
|
108
145
|
degraded: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pack.d.ts","sourceRoot":"","sources":["../../../src/retrieval/context-pack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"context-pack.d.ts","sourceRoot":"","sources":["../../../src/retrieval/context-pack.ts"],"names":[],"mappings":"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"}
|