@getrift/rift 0.1.0-beta.11 → 0.1.0-beta.13

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.
Files changed (74) hide show
  1. package/dist/src/cli/commands/onboard.d.ts +38 -0
  2. package/dist/src/cli/commands/onboard.d.ts.map +1 -1
  3. package/dist/src/cli/commands/onboard.js +176 -101
  4. package/dist/src/cli/commands/onboard.js.map +1 -1
  5. package/dist/src/cli/commands/reconcile.d.ts.map +1 -1
  6. package/dist/src/cli/commands/reconcile.js +12 -0
  7. package/dist/src/cli/commands/reconcile.js.map +1 -1
  8. package/dist/src/cli/status/friend-header.d.ts +8 -1
  9. package/dist/src/cli/status/friend-header.d.ts.map +1 -1
  10. package/dist/src/cli/status/friend-header.js +93 -12
  11. package/dist/src/cli/status/friend-header.js.map +1 -1
  12. package/dist/src/cli/ui.d.ts +47 -0
  13. package/dist/src/cli/ui.d.ts.map +1 -0
  14. package/dist/src/cli/ui.js +166 -0
  15. package/dist/src/cli/ui.js.map +1 -0
  16. package/dist/src/jobs/handlers/compact.js +1 -0
  17. package/dist/src/jobs/handlers/compact.js.map +1 -1
  18. package/dist/src/jobs/handlers/dedupe-conversations.d.ts +134 -0
  19. package/dist/src/jobs/handlers/dedupe-conversations.d.ts.map +1 -0
  20. package/dist/src/jobs/handlers/dedupe-conversations.js +371 -0
  21. package/dist/src/jobs/handlers/dedupe-conversations.js.map +1 -0
  22. package/dist/src/jobs/handlers/ingest.d.ts.map +1 -1
  23. package/dist/src/jobs/handlers/ingest.js +44 -18
  24. package/dist/src/jobs/handlers/ingest.js.map +1 -1
  25. package/dist/src/jobs/handlers/reconcile.d.ts +11 -0
  26. package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -1
  27. package/dist/src/jobs/handlers/reconcile.js +25 -0
  28. package/dist/src/jobs/handlers/reconcile.js.map +1 -1
  29. package/dist/src/jobs/handlers/save.d.ts.map +1 -1
  30. package/dist/src/jobs/handlers/save.js +6 -1
  31. package/dist/src/jobs/handlers/save.js.map +1 -1
  32. package/dist/src/mcp/server.d.ts.map +1 -1
  33. package/dist/src/mcp/server.js +43 -3
  34. package/dist/src/mcp/server.js.map +1 -1
  35. package/dist/src/mcp/tools/context-pack.js +163 -25
  36. package/dist/src/mcp/tools/context-pack.js.map +1 -1
  37. package/dist/src/observability/onboarding-metric.d.ts +115 -0
  38. package/dist/src/observability/onboarding-metric.d.ts.map +1 -0
  39. package/dist/src/observability/onboarding-metric.js +344 -0
  40. package/dist/src/observability/onboarding-metric.js.map +1 -0
  41. package/dist/src/observability/tool-usage-stats.d.ts +8 -0
  42. package/dist/src/observability/tool-usage-stats.d.ts.map +1 -1
  43. package/dist/src/observability/tool-usage-stats.js +11 -1
  44. package/dist/src/observability/tool-usage-stats.js.map +1 -1
  45. package/dist/src/retrieval/context-pack.d.ts +100 -0
  46. package/dist/src/retrieval/context-pack.d.ts.map +1 -1
  47. package/dist/src/retrieval/context-pack.js +274 -6
  48. package/dist/src/retrieval/context-pack.js.map +1 -1
  49. package/dist/src/retrieval/current-truth.d.ts +326 -0
  50. package/dist/src/retrieval/current-truth.d.ts.map +1 -0
  51. package/dist/src/retrieval/current-truth.js +747 -0
  52. package/dist/src/retrieval/current-truth.js.map +1 -0
  53. package/dist/src/retrieval/git-state.d.ts +53 -0
  54. package/dist/src/retrieval/git-state.d.ts.map +1 -0
  55. package/dist/src/retrieval/git-state.js +174 -0
  56. package/dist/src/retrieval/git-state.js.map +1 -0
  57. package/dist/src/server/routes/friend-status.d.ts +63 -0
  58. package/dist/src/server/routes/friend-status.d.ts.map +1 -1
  59. package/dist/src/server/routes/friend-status.js +97 -0
  60. package/dist/src/server/routes/friend-status.js.map +1 -1
  61. package/dist/src/server/routes/mcp-usage.d.ts +4 -3
  62. package/dist/src/server/routes/mcp-usage.d.ts.map +1 -1
  63. package/dist/src/server/routes/mcp-usage.js.map +1 -1
  64. package/dist/src/server/routes/reconcile.d.ts.map +1 -1
  65. package/dist/src/server/routes/reconcile.js +16 -0
  66. package/dist/src/server/routes/reconcile.js.map +1 -1
  67. package/dist/src/storage/rebuild.d.ts.map +1 -1
  68. package/dist/src/storage/rebuild.js +24 -2
  69. package/dist/src/storage/rebuild.js.map +1 -1
  70. package/dist/src/storage/tables.d.ts +9 -0
  71. package/dist/src/storage/tables.d.ts.map +1 -1
  72. package/dist/src/storage/tables.js +22 -1
  73. package/dist/src/storage/tables.js.map +1 -1
  74. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-truth.js","sourceRoot":"","sources":["../../../src/retrieval/current-truth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Six-state classification, ordered by precedence in the partitioner:
3
+ *
4
+ * deleted — git knew about the file but it's gone from disk now.
5
+ * Strongest discount signal: the asker cannot read it.
6
+ * untracked — file exists on disk but git doesn't know about it.
7
+ * The v1 generalization of v0's LAUNCH.md hack: a doc
8
+ * that's not under version control is not canonical
9
+ * project state.
10
+ * modified — tracked, but worktree differs from HEAD/index. Treated
11
+ * as live: the operator is actively editing it.
12
+ * newer_on_disk
13
+ * — tracked, unmodified vs HEAD, but the worktree mtime
14
+ * is newer than the indexed_at timestamp. Means: the
15
+ * LanceDB row is stale relative to the file. Still live,
16
+ * but the retrieved snippet may lag.
17
+ * tracked — tracked, unmodified, index in sync. Canonical.
18
+ * unknown — couldn't determine (path outside repo, git
19
+ * unavailable, etc). Partitioner falls back to v0
20
+ * path-pattern heuristics.
21
+ */
22
+ export type GitState = "tracked" | "untracked" | "modified" | "deleted" | "newer_on_disk" | "unknown";
23
+ export interface GitStateInput {
24
+ sourcePath: string;
25
+ /** ISO timestamp of when the row was indexed. Used for `newer_on_disk`. */
26
+ indexedAt?: string | undefined;
27
+ }
28
+ export interface ProbeOptions {
29
+ /**
30
+ * Any directory inside the git repo whose state we want to probe.
31
+ * Need NOT be the repo root — `probeGitStates` resolves the actual
32
+ * top-level via `git rev-parse --show-toplevel` and classifies all
33
+ * paths against that root. This matters because MCP `cwd` is the
34
+ * agent's working directory, often a subdirectory (e.g. `src/` or
35
+ * `tests/`); without top-level resolution, root-level docs like
36
+ * `PROJECT_STATE.md` would fall outside `projectRoot` and get
37
+ * labeled `"unknown"`, defeating the v1 signal.
38
+ */
39
+ projectRoot: string;
40
+ }
41
+ /**
42
+ * Probe git state for a batch of source paths. Returns a Map keyed by
43
+ * the input `sourcePath` strings (verbatim — caller can do direct
44
+ * Map.get with the same string it passed in).
45
+ *
46
+ * Behavior contract:
47
+ * - Empty input → empty map.
48
+ * - Git unavailable / not a repo → every path mapped to "unknown".
49
+ * - Path not under the resolved git top-level → "unknown" for that path.
50
+ * - Otherwise classified per {@link GitState} precedence.
51
+ */
52
+ export declare function probeGitStates(inputs: readonly GitStateInput[], opts: ProbeOptions): Map<string, GitState>;
53
+ //# sourceMappingURL=git-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-state.d.ts","sourceRoot":"","sources":["../../../src/retrieval/git-state.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,IAAI,EAAE,YAAY,GACjB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CA+BvB"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Current Truth Mode v1 — git-state probe for file-backed evidence.
3
+ *
4
+ * Given a batch of (source_path, indexed_at) inputs and a project root,
5
+ * classifies each path into one of six git states. The classifier is
6
+ * the load-bearing signal that v0's path-pattern hack
7
+ * (hard-coding `LAUNCH.md` into the snapshot list) was a stand-in for:
8
+ * "this file isn't tracked in git, so it can't be canonical state."
9
+ *
10
+ * Design choices:
11
+ *
12
+ * - One git invocation pair per call, regardless of input size
13
+ * (`git status --porcelain=v1 -uall` + `git ls-files`), so cost
14
+ * scales with repo size, not with the number of evidence cards.
15
+ * - Synchronous `execFileSync` — buildContextPack is already
16
+ * latency-tolerant (sub-second budget), git status on this repo
17
+ * comes back in single-digit ms, and the alternative (async +
18
+ * plumb through 4 await sites) buys nothing here.
19
+ * - Paths outside `projectRoot` return `"unknown"` rather than
20
+ * probing their own repos. v1 is single-repo scoped; cross-repo
21
+ * awareness (e.g. /Users/clement/clients/*) is a v2 question.
22
+ * - If git or the repo is unavailable, every input returns
23
+ * `"unknown"` and the partitioner falls back to v0 behavior. We
24
+ * never throw — git-state is an advisory signal, not a contract.
25
+ */
26
+ import { execFileSync } from "node:child_process";
27
+ import { existsSync, realpathSync, statSync } from "node:fs";
28
+ import path from "node:path";
29
+ /**
30
+ * Probe git state for a batch of source paths. Returns a Map keyed by
31
+ * the input `sourcePath` strings (verbatim — caller can do direct
32
+ * Map.get with the same string it passed in).
33
+ *
34
+ * Behavior contract:
35
+ * - Empty input → empty map.
36
+ * - Git unavailable / not a repo → every path mapped to "unknown".
37
+ * - Path not under the resolved git top-level → "unknown" for that path.
38
+ * - Otherwise classified per {@link GitState} precedence.
39
+ */
40
+ export function probeGitStates(inputs, opts) {
41
+ const out = new Map();
42
+ if (inputs.length === 0)
43
+ return out;
44
+ const cwd = path.resolve(opts.projectRoot);
45
+ // Resolve the actual repo top-level. `opts.projectRoot` is the
46
+ // agent's cwd, which may sit deep inside the repo — without this
47
+ // resolution, root-level docs would be misclassified as "unknown"
48
+ // because they're not lexically under `cwd`.
49
+ let root;
50
+ let statusByRel;
51
+ let trackedSet;
52
+ try {
53
+ root = path.resolve(runGit(cwd, ["rev-parse", "--show-toplevel"]).trim());
54
+ if (!root)
55
+ throw new Error("empty toplevel");
56
+ statusByRel = parsePorcelain(runGit(root, ["status", "--porcelain=v1", "-uall"]));
57
+ trackedSet = new Set(runGit(root, ["ls-files"])
58
+ .split("\n")
59
+ .filter(Boolean));
60
+ }
61
+ catch {
62
+ for (const input of inputs)
63
+ out.set(input.sourcePath, "unknown");
64
+ return out;
65
+ }
66
+ for (const input of inputs) {
67
+ out.set(input.sourcePath, classifyOne(input, root, statusByRel, trackedSet));
68
+ }
69
+ return out;
70
+ }
71
+ function runGit(cwd, args) {
72
+ return execFileSync("git", ["-C", cwd, ...args], {
73
+ encoding: "utf8",
74
+ stdio: ["ignore", "pipe", "ignore"],
75
+ maxBuffer: 16 * 1024 * 1024,
76
+ });
77
+ }
78
+ function classifyOne(input, root, statusByRel, trackedSet) {
79
+ // `git rev-parse --show-toplevel` returns a realpath'd path on macOS
80
+ // (the system /var → /private/var symlink in tmpdir is the obvious
81
+ // example, but the same divergence can happen with any symlinked
82
+ // ancestor). Resolve symlinks on the input side too so the
83
+ // startsWith / relative comparison doesn't reject a legitimate
84
+ // path just because of a symlinked prefix. realpath fails on a
85
+ // non-existent path — for deleted files, fall back to realpath'ing
86
+ // the parent dir (which still exists) and re-attaching the basename
87
+ // so the path lands under the canonical root.
88
+ const raw = path.resolve(input.sourcePath);
89
+ const abs = realpathSafe(raw);
90
+ if (abs !== root && !abs.startsWith(root + path.sep))
91
+ return "unknown";
92
+ const rel = path.relative(root, abs);
93
+ if (!rel || rel.startsWith("..") || path.isAbsolute(rel))
94
+ return "unknown";
95
+ const status = statusByRel.get(rel);
96
+ if (status !== undefined) {
97
+ if (status === "??")
98
+ return "untracked";
99
+ // Porcelain status is two chars: [index][worktree]. A "D" in either
100
+ // slot means deleted; we surface that as the strongest signal.
101
+ if (status[0] === "D" || status[1] === "D")
102
+ return "deleted";
103
+ return "modified";
104
+ }
105
+ if (!trackedSet.has(rel))
106
+ return "unknown";
107
+ // Tracked + clean in git. The worktree file should exist; if it
108
+ // doesn't, git's status output should have caught it — but be
109
+ // defensive in case of races (e.g., user just rm'd the file between
110
+ // the two git calls).
111
+ if (!existsSync(abs))
112
+ return "deleted";
113
+ if (input.indexedAt) {
114
+ const indexedMs = Date.parse(input.indexedAt);
115
+ if (!Number.isNaN(indexedMs)) {
116
+ try {
117
+ const mtimeMs = statSync(abs).mtimeMs;
118
+ // 1s grace to absorb filesystem mtime quantization and the
119
+ // small lag between indexer write and row's indexed_at stamp.
120
+ if (mtimeMs > indexedMs + 1000)
121
+ return "newer_on_disk";
122
+ }
123
+ catch {
124
+ // ignore — fall through to "tracked"
125
+ }
126
+ }
127
+ }
128
+ return "tracked";
129
+ }
130
+ /**
131
+ * Parse `git status --porcelain=v1` output into rel-path → 2-char status code.
132
+ *
133
+ * Each line looks like `XY path` where X is index status and Y is
134
+ * worktree status (e.g. ` M`, `D `, `??`). Renames look like
135
+ * `R old -> new`; v1 returns the new path so the asker's source_path
136
+ * (which is the current name on disk) matches.
137
+ */
138
+ /**
139
+ * realpath that survives a missing file. Falls back to realpath'ing
140
+ * the parent directory and re-attaching the basename — covers the
141
+ * "tracked + deleted from worktree" classification path, where the
142
+ * file is gone but we still need its canonical path to land under
143
+ * the repo root.
144
+ */
145
+ function realpathSafe(p) {
146
+ try {
147
+ return realpathSync(p);
148
+ }
149
+ catch {
150
+ const dir = path.dirname(p);
151
+ const base = path.basename(p);
152
+ try {
153
+ return path.join(realpathSync(dir), base);
154
+ }
155
+ catch {
156
+ return p;
157
+ }
158
+ }
159
+ }
160
+ function parsePorcelain(out) {
161
+ const map = new Map();
162
+ for (const line of out.split("\n")) {
163
+ if (line.length < 4)
164
+ continue;
165
+ const code = line.slice(0, 2);
166
+ const rest = line.slice(3);
167
+ // Rename / copy: "old -> new" — index by the new (current) name.
168
+ const arrow = rest.indexOf(" -> ");
169
+ const p = arrow >= 0 ? rest.slice(arrow + 4) : rest;
170
+ map.set(p, code);
171
+ }
172
+ return map;
173
+ }
174
+ //# sourceMappingURL=git-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-state.js","sourceRoot":"","sources":["../../../src/retrieval/git-state.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ import type { FastifyInstance } from "fastify";
31
31
  import type { JobQueue } from "../../jobs/queue.js";
32
32
  import type { Job } from "../../jobs/types.js";
33
33
  import type { Config } from "../../config/schema.js";
34
+ import { type RetrievalTool } from "../../observability/onboarding-metric.js";
34
35
  export interface FriendStatusBuild {
35
36
  name: string;
36
37
  version: string;
@@ -165,6 +166,28 @@ export interface FriendStatusUpdate {
165
166
  /** ISO timestamp of the most recent probe attempt, or null if never run. */
166
167
  checked_at: string | null;
167
168
  }
169
+ /**
170
+ * `time_to_first_useful_recall` projection. The route reads
171
+ * `data/metrics/onboarding.json` and folds it into one of three states:
172
+ * - `hidden`: start condition has not been observed yet — the
173
+ * renderer omits the line entirely so a friend who has just run
174
+ * `rift onboard` doesn't see a stale "0s" or empty placeholder.
175
+ * - `pending`: start observed, no qualifying MCP retrieval yet.
176
+ * - `completed`: both stamped; `duration_seconds` is end - start.
177
+ *
178
+ * Only the projection is exposed here; raw query/result content
179
+ * never enters this payload (the underlying metric file is itself
180
+ * limited to four fixed fields).
181
+ */
182
+ export interface FriendStatusOnboarding {
183
+ state: "hidden" | "pending" | "completed";
184
+ install_id: string;
185
+ useful_state_reached_at: string | null;
186
+ first_useful_recall_at: string | null;
187
+ first_useful_recall_tool: RetrievalTool | null;
188
+ /** end - start, in whole seconds. Null until completed. */
189
+ duration_seconds: number | null;
190
+ }
168
191
  export interface FriendStatusPayload {
169
192
  build: FriendStatusBuild;
170
193
  daemon: FriendStatusDaemon;
@@ -175,6 +198,7 @@ export interface FriendStatusPayload {
175
198
  capture: FriendStatusCapture;
176
199
  feedback: FriendStatusFeedback;
177
200
  update: FriendStatusUpdate;
201
+ onboarding: FriendStatusOnboarding;
178
202
  }
179
203
  export interface FriendStatusDeps {
180
204
  config: Config;
@@ -188,6 +212,45 @@ export interface FriendStatusDeps {
188
212
  jobQueue?: JobQueue;
189
213
  }
190
214
  export declare function buildFriendStatusPayload(deps: FriendStatusDeps): FriendStatusPayload;
215
+ /**
216
+ * Read the persisted metric and return its projection. Pure read — start
217
+ * stamping happens in the async `stampOnboardingStartIfReady` helper so
218
+ * the sync builder (and its test surface) stay sync. The route awaits
219
+ * the stamper before calling `buildFriendStatusPayload`, so a freshly
220
+ * stamped start is visible in the same response.
221
+ *
222
+ * Exported for tests.
223
+ */
224
+ export declare function projectOnboardingState(dataDir: string): FriendStatusOnboarding;
225
+ /**
226
+ * Async readiness evaluation + write-once start stamping. Pulled out of
227
+ * `buildFriendStatusPayload` so the sync builder stays sync; the route
228
+ * awaits this before assembling the payload, so a stamp written here
229
+ * is visible in the same response.
230
+ *
231
+ * Readiness signals for v1:
232
+ * - daemon healthy: trivially true (this code is running inside the
233
+ * daemon process that is serving the request).
234
+ * - Voyage key valid: VOYAGE_API_KEY env present AND at least one
235
+ * successful Voyage embedding has been recorded on the ingest lane
236
+ * (a real round-trip with this key, not just "env var is set").
237
+ * - indexed count >= 1: `getCapabilityCounts()` reports at least one
238
+ * conversations_hot/cold or structured_docs row. Digest count is
239
+ * intentionally excluded — the bar is "conversations + structured
240
+ * docs" per the v1 spec.
241
+ *
242
+ * Never throws. A capability-counts failure (LanceDB not initialised,
243
+ * IO error) is treated as "not ready" rather than a 500, so a partial
244
+ * daemon never surfaces a misleading start timestamp.
245
+ *
246
+ * Exported for tests.
247
+ */
248
+ export declare function stampOnboardingStartIfReady(dataDir: string, opts?: {
249
+ voyageHealth?: {
250
+ last_embed_at: string | null;
251
+ };
252
+ now?: number;
253
+ }): Promise<void>;
191
254
  /**
192
255
  * Project the version-check snapshot to the three fields the renderer
193
256
  * needs. A missing snapshot, a failed probe, or an up-to-date install
@@ -1 +1 @@
1
- {"version":3,"file":"friend-status.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/friend-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"friend-status.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/friend-status.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { sanitizeProjectLabel } from "../../runtime/legacy-name-guard.js";
5
5
  import { readEmbeddingEvents, } from "../../observability/embedding-events.js";
6
6
  import { readIndexEvents, } from "../../observability/index-events.js";
7
7
  import { compareBetaVersions, readVersionCheck, } from "../../observability/version-check.js";
8
+ import { computeOnboardingState, isUsefulStateReached, readOnboardingMetric, stampUsefulStateIfReady, } from "../../observability/onboarding-metric.js";
9
+ import { getCapabilityCounts } from "../../observability/rift-context.js";
8
10
  const VOYAGE_ERROR_LOOKBACK_MS = 24 * 60 * 60 * 1000;
9
11
  const INDEX_ERROR_LOOKBACK_MS = 24 * 60 * 60 * 1000;
10
12
  const INBOX_ERROR_LOOKBACK_MS = 24 * 60 * 60 * 1000;
@@ -81,8 +83,99 @@ export function buildFriendStatusPayload(deps) {
81
83
  },
82
84
  feedback: { relay_enabled: relayEnabled },
83
85
  update: computeUpdateProjection(dataDir, build.version),
86
+ onboarding: projectOnboardingState(dataDir),
84
87
  };
85
88
  }
89
+ /**
90
+ * Read the persisted metric and return its projection. Pure read — start
91
+ * stamping happens in the async `stampOnboardingStartIfReady` helper so
92
+ * the sync builder (and its test surface) stay sync. The route awaits
93
+ * the stamper before calling `buildFriendStatusPayload`, so a freshly
94
+ * stamped start is visible in the same response.
95
+ *
96
+ * Exported for tests.
97
+ */
98
+ export function projectOnboardingState(dataDir) {
99
+ const metric = readOnboardingMetric(dataDir);
100
+ const projection = computeOnboardingState(metric);
101
+ if (projection.state === "hidden") {
102
+ return {
103
+ state: "hidden",
104
+ install_id: metric.install_id,
105
+ useful_state_reached_at: null,
106
+ first_useful_recall_at: null,
107
+ first_useful_recall_tool: null,
108
+ duration_seconds: null,
109
+ };
110
+ }
111
+ if (projection.state === "pending") {
112
+ return {
113
+ state: "pending",
114
+ install_id: metric.install_id,
115
+ useful_state_reached_at: projection.useful_state_reached_at,
116
+ first_useful_recall_at: null,
117
+ first_useful_recall_tool: null,
118
+ duration_seconds: null,
119
+ };
120
+ }
121
+ return {
122
+ state: "completed",
123
+ install_id: metric.install_id,
124
+ useful_state_reached_at: projection.useful_state_reached_at,
125
+ first_useful_recall_at: projection.first_useful_recall_at,
126
+ first_useful_recall_tool: projection.first_useful_recall_tool,
127
+ duration_seconds: projection.duration_seconds,
128
+ };
129
+ }
130
+ /**
131
+ * Async readiness evaluation + write-once start stamping. Pulled out of
132
+ * `buildFriendStatusPayload` so the sync builder stays sync; the route
133
+ * awaits this before assembling the payload, so a stamp written here
134
+ * is visible in the same response.
135
+ *
136
+ * Readiness signals for v1:
137
+ * - daemon healthy: trivially true (this code is running inside the
138
+ * daemon process that is serving the request).
139
+ * - Voyage key valid: VOYAGE_API_KEY env present AND at least one
140
+ * successful Voyage embedding has been recorded on the ingest lane
141
+ * (a real round-trip with this key, not just "env var is set").
142
+ * - indexed count >= 1: `getCapabilityCounts()` reports at least one
143
+ * conversations_hot/cold or structured_docs row. Digest count is
144
+ * intentionally excluded — the bar is "conversations + structured
145
+ * docs" per the v1 spec.
146
+ *
147
+ * Never throws. A capability-counts failure (LanceDB not initialised,
148
+ * IO error) is treated as "not ready" rather than a 500, so a partial
149
+ * daemon never surfaces a misleading start timestamp.
150
+ *
151
+ * Exported for tests.
152
+ */
153
+ export async function stampOnboardingStartIfReady(dataDir, opts = {}) {
154
+ const voyageKey = process.env["VOYAGE_API_KEY"];
155
+ const voyageKeyPresent = typeof voyageKey === "string" && voyageKey.length > 0;
156
+ const voyageHealth = opts.voyageHealth ?? computeVoyageHealth(dataDir, opts.now ?? Date.now());
157
+ const voyageKeyValid = voyageKeyPresent && voyageHealth.last_embed_at !== null;
158
+ let indexedCount = 0;
159
+ try {
160
+ const counts = await getCapabilityCounts();
161
+ indexedCount =
162
+ counts.structured_docs +
163
+ counts.conversations_hot +
164
+ counts.conversations_cold;
165
+ }
166
+ catch {
167
+ indexedCount = 0;
168
+ }
169
+ const ready = isUsefulStateReached({
170
+ daemonHealthy: true,
171
+ voyageKeyValid,
172
+ indexedCount,
173
+ });
174
+ stampUsefulStateIfReady(dataDir, {
175
+ ready,
176
+ now: new Date(opts.now ?? Date.now()).toISOString(),
177
+ });
178
+ }
86
179
  /**
87
180
  * Project the version-check snapshot to the three fields the renderer
88
181
  * needs. A missing snapshot, a failed probe, or an up-to-date install
@@ -348,6 +441,10 @@ export function classifyJobError(job) {
348
441
  }
349
442
  export function registerFriendStatusRoute(server, deps) {
350
443
  server.get("/status/friend", async (_request, reply) => {
444
+ // Stamp `useful_state_reached_at` lazily on read. The metric file
445
+ // lives in the shared data dir, so the MCP-side end stamper sees
446
+ // the same value on the next retrieval.
447
+ await stampOnboardingStartIfReady(deps.config.data_paths.data_dir);
351
448
  return reply.send(buildFriendStatusPayload(deps));
352
449
  });
353
450
  }
@@ -1 +1 @@
1
- {"version":3,"file":"friend-status.js","sourceRoot":"","sources":["../../../../src/server/routes/friend-status.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,yBAAyB,GAE1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EACL,mBAAmB,GAEpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,eAAe,GAEhB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sCAAsC,CAAC;AAG9C,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACrD,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACpD,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACpD,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AAyK1C,MAAM,UAAU,wBAAwB,CACtC,IAAsB;IAEtB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;IAEhD,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC;IAC3D,CAAC;IACD,MAAM,IAAI,GAAgC,OAAO,CAAC,QAAQ,CAAC;IAE3D,IAAI,aAAa,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAC5D,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,aAAa,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;YACpC,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YACtC,aAAa,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAElE,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,OAAO;QACL,KAAK;QACL,MAAM,EAAE;YACN,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAChE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;YAC7B,kBAAkB,EAChB,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YACvD,QAAQ,EAAE,OAAO;SAClB;QACD,MAAM,EAAE;YACN,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;YACtE,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;SAClD;QACD,KAAK,EAAE;YACL,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;SACjD;QACD,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE;YACL,iBAAiB,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;YAC1C,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;SACnD;QACD,OAAO,EAAE;YACP,WAAW,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;YACpC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YACtC,UAAU,EAAE,aAAa,CAAC,KAAK;YAC/B,WAAW,EAAE,aAAa,CAAC,MAAM;YACjC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;YACrC,gBAAgB,EAAE,aAAa,CAAC,WAAW;YAC3C,WAAW,EAAE,uBAAuB,CAAC;gBACnC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;gBAC3C,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB;gBACrD,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;aAChB,CAAC;SACH;QACD,QAAQ,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE;QACzC,MAAM,EAAE,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAe,EACf,gBAAwB;IAExB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAC/C,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,gBAAgB;YAC3B,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI;YAC1C,UAAU,EAAE,QAAQ,EAAE,UAAU,IAAI,IAAI;SACzC,CAAC;IACJ,CAAC;IACD,uEAAuE;IACvE,oEAAoE;IACpE,sDAAsD;IACtD,MAAM,SAAS,GACb,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClE,OAAO;QACL,SAAS;QACT,SAAS,EAAE,gBAAgB;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAKvC;IACC,IAAI,CAAC,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC;IACtD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,GAAW;IAMX,IAAI,MAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAED,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,MAAM,WAAW,GAAG,GAAG,GAAG,wBAAwB,CAAC;IAEnD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,sEAAsE;QACtE,qEAAqE;QACrE,gEAAgE;QAChE,oEAAoE;QACpE,4DAA4D;QAC5D,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,SAAS;QAC1C,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,CAAC;gBAC/C,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC;YAC3B,CAAC;YACD,SAAS;QACX,CAAC;QACD,sBAAsB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,WAAW;YAAE,SAAS;QACjE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;YAC3C,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;YACvB,eAAe,GAAG,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,WAAW;QAC1B,iBAAiB,EAAE,eAAe;KACnC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,GAAW;IAMX,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAED,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,MAAM,WAAW,GAAG,GAAG,GAAG,uBAAuB,CAAC;IAElD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,+DAA+D;YAC/D,6DAA6D;YAC7D,6DAA6D;YAC7D,4DAA4D;YAC5D,8DAA8D;YAC9D,yBAAyB;YACzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC;YACpC,IAAI,KAAK,KAAK,MAAM;gBAAE,SAAS;YAC/B,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,EAAE,GAAG,aAAa,EAAE,CAAC;gBAC/C,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC;YAC3B,CAAC;YACD,SAAS;QACX,CAAC;QACD,sDAAsD;QACtD,kEAAkE;QAClE,gEAAgE;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,WAAW;YAAE,SAAS;QACjE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;YAC3C,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;YACvB,eAAe,GAAG,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO;QACL,cAAc,EAAE,aAAa;QAC7B,aAAa,EAAE,WAAW;QAC1B,iBAAiB,EAAE,eAAe;KACnC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA2B,EAC3B,GAAW;IAEX,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,CAAC;SACX,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,uBAAuB,CAAC,wBAAwB,CAAC,CAAC;IAErE,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,WAAW,GAAG,GAAG,GAAG,uBAAuB,CAAC;IAElD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,6DAA6D;QAC7D,mEAAmE;QACnE,+DAA+D;QAC/D,iEAAiE;QACjE,kEAAkE;QAClE,+DAA+D;QAC/D,8CAA8C;QAC9C,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;YAAE,SAAS;QAE3C,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACxD,OAAO,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU,GAAG,YAAY,EAAE,CAAC;gBACnD,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC;YAChC,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,WAAW;gBAAE,SAAS;YACjE,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,EAAE,CAAC;gBACjD,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC;gBAC7B,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,gEAAgE;QAChE,+DAA+D;QAC/D,mEAAmE;IACrE,CAAC;IAED,OAAO;QACL,cAAc,EAAE,YAAY;QAC5B,aAAa,EAAE,WAAW;QAC1B,iBAAiB,EAAE,eAAe;QAClC,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9D,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAAE,OAAO,oBAAoB,CAAC;IACtE,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,cAAc,CAAC;IAC9D,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACzE,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,mEAAmE;IACnE,sEAAsE;IACtE,qEAAqE;IACrE,qEAAqE;IACrE,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC9E,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC;IACpD,8DAA8D;IAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtD,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAuB,EACvB,IAAsB;IAEtB,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QACrD,OAAO,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"friend-status.js","sourceRoot":"","sources":["../../../../src/server/routes/friend-status.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,10 @@
3
3
  *
4
4
  * SwiftBar pulls this on each tick. Returns per-window call counts +
5
5
  * `context_tokens_delivered_estimate` (≈ ceil(returned-text bytes / 4)
6
- * over context-hit calls). Mirrors the auth posture of `/health` and
7
- * `/version` (no token required) the response carries only call
8
- * counts and tool names, never user content.
6
+ * over measured context-hit calls) plus `context_tokens_measured_hits`,
7
+ * the numerator for "N/M hits measured" coverage. Mirrors the auth
8
+ * posture of `/health` and `/version` (no token required) — the response
9
+ * carries only call counts and tool names, never user content.
9
10
  */
10
11
  import type { FastifyInstance } from "fastify";
11
12
  import type { ObservabilityDeps } from "../../observability/coverage.js";
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-usage.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/mcp-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,iBAAiB,GACtB,IAAI,CAYN"}
1
+ {"version":3,"file":"mcp-usage.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/mcp-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,iBAAiB,GACtB,IAAI,CAYN"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-usage.js","sourceRoot":"","sources":["../../../../src/server/routes/mcp-usage.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,eAAe,EACf,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGzE,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EACvB,IAAuB;IAEvB,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,wBAAwB,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"mcp-usage.js","sourceRoot":"","sources":["../../../../src/server/routes/mcp-usage.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,eAAe,EACf,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGzE,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EACvB,IAAuB;IAEvB,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,wBAAwB,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/reconcile.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AASpD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,QAAQ,GACd,IAAI,CA+BN"}
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/reconcile.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAmBpD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,QAAQ,GACd,IAAI,CAwCN"}
@@ -10,6 +10,16 @@ import { toJobStatusView } from "../../jobs/types.js";
10
10
  const ReconcileRequestSchema = z
11
11
  .object({
12
12
  idempotency_key: z.string().optional(),
13
+ /**
14
+ * Opt-in dedupe-conversations repair mode. When true the handler
15
+ * runs only the dedupe pass and skips the normal reconcile work.
16
+ */
17
+ dedupe_conversations: z.boolean().optional(),
18
+ /**
19
+ * Gates mutation in dedupe mode. Omitted/false = dry-run report
20
+ * only. Ignored when `dedupe_conversations` is not set.
21
+ */
22
+ apply: z.boolean().optional(),
13
23
  })
14
24
  .strict();
15
25
  export function registerReconcileRoute(server, queue) {
@@ -26,6 +36,12 @@ export function registerReconcileRoute(server, queue) {
26
36
  if (parsed.data.idempotency_key !== undefined) {
27
37
  opts.idempotency_key = parsed.data.idempotency_key;
28
38
  }
39
+ if (parsed.data.dedupe_conversations !== undefined) {
40
+ opts.payload = {
41
+ dedupe_conversations: parsed.data.dedupe_conversations,
42
+ ...(parsed.data.apply !== undefined ? { apply: parsed.data.apply } : {}),
43
+ };
44
+ }
29
45
  const result = await queue.create("reconcile", opts);
30
46
  if ("conflict" in result) {
31
47
  return reply.code(409).send({ error: "conflict" });
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../../../src/server/routes/reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,sBAAsB,CACpC,MAAuB,EACvB,KAAe;IAEf,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACjD,2CAA2C;QAC3C,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAiC,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;gBACrB,SAAS,EAAE,IAAI;gBACf,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../../../src/server/routes/reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC;;;OAGG;IACH,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5C;;;OAGG;IACH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,sBAAsB,CACpC,MAAuB,EACvB,KAAe;IAEf,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACjD,2CAA2C;QAC3C,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAGN,EAAE,CAAC;QACP,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC,OAAO,GAAG;gBACb,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB;gBACtD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzE,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;gBACrB,SAAS,EAAE,IAAI;gBACf,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC"}