@legioncodeinc/hive 0.1.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.
Files changed (190) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +262 -0
  3. package/dist/cli-commands.d.ts +41 -0
  4. package/dist/cli-commands.js +76 -0
  5. package/dist/cli-commands.js.map +1 -0
  6. package/dist/cli.d.ts +2 -0
  7. package/dist/cli.js +46 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/daemon/dashboard/app.js +118 -0
  10. package/dist/daemon/dashboard/host.d.ts +90 -0
  11. package/dist/daemon/dashboard/host.js +172 -0
  12. package/dist/daemon/dashboard/host.js.map +1 -0
  13. package/dist/daemon/dashboard/web-assets.d.ts +88 -0
  14. package/dist/daemon/dashboard/web-assets.js +195 -0
  15. package/dist/daemon/dashboard/web-assets.js.map +1 -0
  16. package/dist/daemon/fleet-status.d.ts +15 -0
  17. package/dist/daemon/fleet-status.js +56 -0
  18. package/dist/daemon/fleet-status.js.map +1 -0
  19. package/dist/daemon/gate.d.ts +55 -0
  20. package/dist/daemon/gate.js +128 -0
  21. package/dist/daemon/gate.js.map +1 -0
  22. package/dist/daemon/proxy.d.ts +38 -0
  23. package/dist/daemon/proxy.js +126 -0
  24. package/dist/daemon/proxy.js.map +1 -0
  25. package/dist/daemon/registry.d.ts +31 -0
  26. package/dist/daemon/registry.js +120 -0
  27. package/dist/daemon/registry.js.map +1 -0
  28. package/dist/daemon/server.d.ts +41 -0
  29. package/dist/daemon/server.js +126 -0
  30. package/dist/daemon/server.js.map +1 -0
  31. package/dist/daemon/setup-auth.d.ts +37 -0
  32. package/dist/daemon/setup-auth.js +51 -0
  33. package/dist/daemon/setup-auth.js.map +1 -0
  34. package/dist/daemon/telemetry-proxy.d.ts +47 -0
  35. package/dist/daemon/telemetry-proxy.js +63 -0
  36. package/dist/daemon/telemetry-proxy.js.map +1 -0
  37. package/dist/dashboard/contracts.d.ts +235 -0
  38. package/dist/dashboard/contracts.js +43 -0
  39. package/dist/dashboard/contracts.js.map +1 -0
  40. package/dist/dashboard/web/app.d.ts +44 -0
  41. package/dist/dashboard/web/app.js +179 -0
  42. package/dist/dashboard/web/app.js.map +1 -0
  43. package/dist/dashboard/web/boot-route.d.ts +23 -0
  44. package/dist/dashboard/web/boot-route.js +29 -0
  45. package/dist/dashboard/web/boot-route.js.map +1 -0
  46. package/dist/dashboard/web/build-graph-button.d.ts +46 -0
  47. package/dist/dashboard/web/build-graph-button.js +81 -0
  48. package/dist/dashboard/web/build-graph-button.js.map +1 -0
  49. package/dist/dashboard/web/buzzing-screen.d.ts +30 -0
  50. package/dist/dashboard/web/buzzing-screen.js +135 -0
  51. package/dist/dashboard/web/buzzing-screen.js.map +1 -0
  52. package/dist/dashboard/web/folder-picker.d.ts +54 -0
  53. package/dist/dashboard/web/folder-picker.js +125 -0
  54. package/dist/dashboard/web/folder-picker.js.map +1 -0
  55. package/dist/dashboard/web/graph-layout.d.ts +101 -0
  56. package/dist/dashboard/web/graph-layout.js +0 -0
  57. package/dist/dashboard/web/graph-layout.js.map +1 -0
  58. package/dist/dashboard/web/harness-strip.d.ts +38 -0
  59. package/dist/dashboard/web/harness-strip.js +65 -0
  60. package/dist/dashboard/web/harness-strip.js.map +1 -0
  61. package/dist/dashboard/web/health-rail.d.ts +26 -0
  62. package/dist/dashboard/web/health-rail.js +61 -0
  63. package/dist/dashboard/web/health-rail.js.map +1 -0
  64. package/dist/dashboard/web/main.d.ts +22 -0
  65. package/dist/dashboard/web/main.js +51 -0
  66. package/dist/dashboard/web/main.js.map +1 -0
  67. package/dist/dashboard/web/needs-project.d.ts +51 -0
  68. package/dist/dashboard/web/needs-project.js +69 -0
  69. package/dist/dashboard/web/needs-project.js.map +1 -0
  70. package/dist/dashboard/web/page-frame.d.ts +95 -0
  71. package/dist/dashboard/web/page-frame.js +98 -0
  72. package/dist/dashboard/web/page-frame.js.map +1 -0
  73. package/dist/dashboard/web/pages/coming-soon.d.ts +23 -0
  74. package/dist/dashboard/web/pages/coming-soon.js +19 -0
  75. package/dist/dashboard/web/pages/coming-soon.js.map +1 -0
  76. package/dist/dashboard/web/pages/dashboard.d.ts +32 -0
  77. package/dist/dashboard/web/pages/dashboard.js +205 -0
  78. package/dist/dashboard/web/pages/dashboard.js.map +1 -0
  79. package/dist/dashboard/web/pages/graph.d.ts +72 -0
  80. package/dist/dashboard/web/pages/graph.js +362 -0
  81. package/dist/dashboard/web/pages/graph.js.map +1 -0
  82. package/dist/dashboard/web/pages/harnesses.d.ts +65 -0
  83. package/dist/dashboard/web/pages/harnesses.js +210 -0
  84. package/dist/dashboard/web/pages/harnesses.js.map +1 -0
  85. package/dist/dashboard/web/pages/health.d.ts +22 -0
  86. package/dist/dashboard/web/pages/health.js +91 -0
  87. package/dist/dashboard/web/pages/health.js.map +1 -0
  88. package/dist/dashboard/web/pages/lifecycle-panel.d.ts +60 -0
  89. package/dist/dashboard/web/pages/lifecycle-panel.js +187 -0
  90. package/dist/dashboard/web/pages/lifecycle-panel.js.map +1 -0
  91. package/dist/dashboard/web/pages/logs.d.ts +55 -0
  92. package/dist/dashboard/web/pages/logs.js +311 -0
  93. package/dist/dashboard/web/pages/logs.js.map +1 -0
  94. package/dist/dashboard/web/pages/memories.d.ts +35 -0
  95. package/dist/dashboard/web/pages/memories.js +439 -0
  96. package/dist/dashboard/web/pages/memories.js.map +1 -0
  97. package/dist/dashboard/web/pages/projects.d.ts +38 -0
  98. package/dist/dashboard/web/pages/projects.js +325 -0
  99. package/dist/dashboard/web/pages/projects.js.map +1 -0
  100. package/dist/dashboard/web/pages/roi-chart.d.ts +52 -0
  101. package/dist/dashboard/web/pages/roi-chart.js +133 -0
  102. package/dist/dashboard/web/pages/roi-chart.js.map +1 -0
  103. package/dist/dashboard/web/pages/roi.d.ts +93 -0
  104. package/dist/dashboard/web/pages/roi.js +375 -0
  105. package/dist/dashboard/web/pages/roi.js.map +1 -0
  106. package/dist/dashboard/web/pages/settings.d.ts +103 -0
  107. package/dist/dashboard/web/pages/settings.js +420 -0
  108. package/dist/dashboard/web/pages/settings.js.map +1 -0
  109. package/dist/dashboard/web/pages/sync.d.ts +59 -0
  110. package/dist/dashboard/web/pages/sync.js +280 -0
  111. package/dist/dashboard/web/pages/sync.js.map +1 -0
  112. package/dist/dashboard/web/panels.d.ts +178 -0
  113. package/dist/dashboard/web/panels.js +471 -0
  114. package/dist/dashboard/web/panels.js.map +1 -0
  115. package/dist/dashboard/web/primitives.d.ts +80 -0
  116. package/dist/dashboard/web/primitives.js +208 -0
  117. package/dist/dashboard/web/primitives.js.map +1 -0
  118. package/dist/dashboard/web/readiness-splash.d.ts +39 -0
  119. package/dist/dashboard/web/readiness-splash.js +201 -0
  120. package/dist/dashboard/web/readiness-splash.js.map +1 -0
  121. package/dist/dashboard/web/registry.d.ts +96 -0
  122. package/dist/dashboard/web/registry.js +99 -0
  123. package/dist/dashboard/web/registry.js.map +1 -0
  124. package/dist/dashboard/web/router.d.ts +48 -0
  125. package/dist/dashboard/web/router.js +76 -0
  126. package/dist/dashboard/web/router.js.map +1 -0
  127. package/dist/dashboard/web/scope-context.d.ts +155 -0
  128. package/dist/dashboard/web/scope-context.js +266 -0
  129. package/dist/dashboard/web/scope-context.js.map +1 -0
  130. package/dist/dashboard/web/service-icons.d.ts +33 -0
  131. package/dist/dashboard/web/service-icons.js +80 -0
  132. package/dist/dashboard/web/service-icons.js.map +1 -0
  133. package/dist/dashboard/web/setup-gate.d.ts +116 -0
  134. package/dist/dashboard/web/setup-gate.js +272 -0
  135. package/dist/dashboard/web/setup-gate.js.map +1 -0
  136. package/dist/dashboard/web/sidebar.d.ts +63 -0
  137. package/dist/dashboard/web/sidebar.js +91 -0
  138. package/dist/dashboard/web/sidebar.js.map +1 -0
  139. package/dist/dashboard/web/use-fleet-telemetry.d.ts +111 -0
  140. package/dist/dashboard/web/use-fleet-telemetry.js +278 -0
  141. package/dist/dashboard/web/use-fleet-telemetry.js.map +1 -0
  142. package/dist/dashboard/web/wire.d.ts +1937 -0
  143. package/dist/dashboard/web/wire.js +1837 -0
  144. package/dist/dashboard/web/wire.js.map +1 -0
  145. package/dist/errors.d.ts +5 -0
  146. package/dist/errors.js +11 -0
  147. package/dist/errors.js.map +1 -0
  148. package/dist/install/registry.d.ts +35 -0
  149. package/dist/install/registry.js +110 -0
  150. package/dist/install/registry.js.map +1 -0
  151. package/dist/lock.d.ts +10 -0
  152. package/dist/lock.js +87 -0
  153. package/dist/lock.js.map +1 -0
  154. package/dist/service/commands.d.ts +15 -0
  155. package/dist/service/commands.js +49 -0
  156. package/dist/service/commands.js.map +1 -0
  157. package/dist/service/index.d.ts +38 -0
  158. package/dist/service/index.js +174 -0
  159. package/dist/service/index.js.map +1 -0
  160. package/dist/service/platform.d.ts +37 -0
  161. package/dist/service/platform.js +67 -0
  162. package/dist/service/platform.js.map +1 -0
  163. package/dist/service/templates.d.ts +10 -0
  164. package/dist/service/templates.js +120 -0
  165. package/dist/service/templates.js.map +1 -0
  166. package/dist/shared/constants.d.ts +15 -0
  167. package/dist/shared/constants.js +19 -0
  168. package/dist/shared/constants.js.map +1 -0
  169. package/dist/shared/daemon-routing.d.ts +11 -0
  170. package/dist/shared/daemon-routing.js +38 -0
  171. package/dist/shared/daemon-routing.js.map +1 -0
  172. package/dist/shared/fleet-readiness.d.ts +18 -0
  173. package/dist/shared/fleet-readiness.js +9 -0
  174. package/dist/shared/fleet-readiness.js.map +1 -0
  175. package/dist/shared/fleet-telemetry.d.ts +68 -0
  176. package/dist/shared/fleet-telemetry.js +61 -0
  177. package/dist/shared/fleet-telemetry.js.map +1 -0
  178. package/dist/shared/lifecycle-flags.d.ts +34 -0
  179. package/dist/shared/lifecycle-flags.js +39 -0
  180. package/dist/shared/lifecycle-flags.js.map +1 -0
  181. package/dist/shared/memory-types.d.ts +55 -0
  182. package/dist/shared/memory-types.js +75 -0
  183. package/dist/shared/memory-types.js.map +1 -0
  184. package/dist/shared/service-status.d.ts +82 -0
  185. package/dist/shared/service-status.js +97 -0
  186. package/dist/shared/service-status.js.map +1 -0
  187. package/dist/telemetry/emit.d.ts +197 -0
  188. package/dist/telemetry/emit.js +196 -0
  189. package/dist/telemetry/emit.js.map +1 -0
  190. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../src/dashboard/web/pages/logs.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The MEMORIES page — the full memory-management surface (PRD-040a/b/c).
3
+ *
4
+ * Mounts on the `#/memories` route inside the PRD-037 shell. It receives {@link PageProps} (the
5
+ * SHARED `wire` — never `createWireClient` — plus `daemonUp`/`pollinating`) and renders inside
6
+ * `<PageFrame eyebrow="memories">`. It is three concerns on one surface:
7
+ *
8
+ * 040a — BROWSE + SEARCH + VIEW. A paginated list from `GET /api/memories` (newest-first, honest
9
+ * empty state, "load more" bumping `limit`); a search box that POSTs `/api/memories/recall`
10
+ * and swaps the list for the engine's ranked hits (engine order + score + the PRD-029
11
+ * lexical-fallback badge), clearing restores the list; a row opens a DETAIL view from
12
+ * `GET /api/memories/:id` showing full content + the OQ-1 metadata (scope/type/source/
13
+ * version/embedding-presence). A forgotten/unknown id renders the honest "forgotten" state.
14
+ * 040b — ADD + EDIT (versioned). An add form POSTs `/api/memories`; an edit (on the detail view)
15
+ * POSTs `/api/memories/:id/modify` with content + a REQUIRED reason. After ANY write the
16
+ * page RE-READS (never optimistic) and — because DeepLake is eventually consistent —
17
+ * POLLS-until-convergence so the new version is visible. Forget is behind a confirm.
18
+ * 040c — COMPACT + POLLINATE + WATCH. Compact (behind a confirm) POSTs `/api/diagnostics/compact` and
19
+ * renders the real per-table summary (errored>0 ⇒ "attempted, not completed"); Pollinate reuses
20
+ * the EXACT honest-ack logic (enqueued/running/skipped, no fake spinner); Watch toggles the
21
+ * `usePoll` log recipe filtered to memory routes.
22
+ *
23
+ * Security (AC-5): LOCAL-MODE-ONLY (inherited from the shell); memory content renders as ESCAPED
24
+ * TEXT (React's default — never `dangerouslySetInnerHTML`); no token/secret rides any list/detail/
25
+ * search/ack/summary/watch line; the page sends only known table names / content / reason — no
26
+ * attacker-controlled SQL identifier. Every visual value is an existing `var(--…)` DS token.
27
+ */
28
+ import React from "react";
29
+ import { type PageProps } from "../page-frame.js";
30
+ /**
31
+ * The Memories page (040a/b/c). Hydrates the browse list on mount from the shared `wire`, runs
32
+ * search/detail/add/edit/forget/compact/pollinate/watch, and RE-READS (with poll-convergence) after
33
+ * every write so the rendered value is the daemon-persisted truth, never optimistic.
34
+ */
35
+ export declare function MemoriesPage({ wire, pollinating }: PageProps): React.JSX.Element;
@@ -0,0 +1,439 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * The MEMORIES page — the full memory-management surface (PRD-040a/b/c).
4
+ *
5
+ * Mounts on the `#/memories` route inside the PRD-037 shell. It receives {@link PageProps} (the
6
+ * SHARED `wire` — never `createWireClient` — plus `daemonUp`/`pollinating`) and renders inside
7
+ * `<PageFrame eyebrow="memories">`. It is three concerns on one surface:
8
+ *
9
+ * 040a — BROWSE + SEARCH + VIEW. A paginated list from `GET /api/memories` (newest-first, honest
10
+ * empty state, "load more" bumping `limit`); a search box that POSTs `/api/memories/recall`
11
+ * and swaps the list for the engine's ranked hits (engine order + score + the PRD-029
12
+ * lexical-fallback badge), clearing restores the list; a row opens a DETAIL view from
13
+ * `GET /api/memories/:id` showing full content + the OQ-1 metadata (scope/type/source/
14
+ * version/embedding-presence). A forgotten/unknown id renders the honest "forgotten" state.
15
+ * 040b — ADD + EDIT (versioned). An add form POSTs `/api/memories`; an edit (on the detail view)
16
+ * POSTs `/api/memories/:id/modify` with content + a REQUIRED reason. After ANY write the
17
+ * page RE-READS (never optimistic) and — because DeepLake is eventually consistent —
18
+ * POLLS-until-convergence so the new version is visible. Forget is behind a confirm.
19
+ * 040c — COMPACT + POLLINATE + WATCH. Compact (behind a confirm) POSTs `/api/diagnostics/compact` and
20
+ * renders the real per-table summary (errored>0 ⇒ "attempted, not completed"); Pollinate reuses
21
+ * the EXACT honest-ack logic (enqueued/running/skipped, no fake spinner); Watch toggles the
22
+ * `usePoll` log recipe filtered to memory routes.
23
+ *
24
+ * Security (AC-5): LOCAL-MODE-ONLY (inherited from the shell); memory content renders as ESCAPED
25
+ * TEXT (React's default — never `dangerouslySetInnerHTML`); no token/secret rides any list/detail/
26
+ * search/ack/summary/watch line; the page sends only known table names / content / reason — no
27
+ * attacker-controlled SQL identifier. Every visual value is an existing `var(--…)` DS token.
28
+ */
29
+ import React from "react";
30
+ import { Badge, Button, Input, MemoryCard } from "../primitives.js";
31
+ import { LifecycleHealthPanel } from "./lifecycle-panel.js";
32
+ import { isTabHidden, PageFrame } from "../page-frame.js";
33
+ import { useScope } from "../scope-context.js";
34
+ import { NeedsProjectSelection } from "../needs-project.js";
35
+ import { DEFAULT_MEMORY_TYPE, MEMORY_TYPE_DESCRIPTIONS, MEMORY_TYPES, } from "../../../shared/memory-types.js";
36
+ import { formatLogLine, } from "../wire.js";
37
+ // ─────────────────────────────────────────────────────────────────────────────
38
+ // Constants
39
+ // ─────────────────────────────────────────────────────────────────────────────
40
+ /** The list page size + the "load more" step (the daemon clamps to MAX_LIST_LIMIT 500). */
41
+ const LIST_STEP = 50;
42
+ /** How often Watch re-reads `/api/logs` (ms) — the established log-poll cadence. */
43
+ const WATCH_POLL_MS = 2500;
44
+ /** How many filtered watch lines to keep. */
45
+ const MAX_WATCH_LINES = 12;
46
+ /** The memory-relevant route prefixes Watch filters `/api/logs` records to (040c-AC-3). */
47
+ const MEMORY_ROUTE_PREFIXES = ["/api/memories", "/api/diagnostics/pollinate", "/api/diagnostics/compact"];
48
+ /**
49
+ * Re-read convergence budget (040b OQ-3): DeepLake is eventually consistent, so a re-read straight
50
+ * after a write may not yet show the new version. We poll a few short attempts until the predicate
51
+ * holds, then render whatever the last read returned (we NEVER fabricate — a stale read is shown
52
+ * honestly as the persisted truth-so-far, not as a phantom local edit).
53
+ */
54
+ const REREAD_ATTEMPTS = 5;
55
+ const REREAD_DELAY_MS = 150;
56
+ // ─────────────────────────────────────────────────────────────────────────────
57
+ // Small helpers
58
+ // ─────────────────────────────────────────────────────────────────────────────
59
+ /** Sleep `ms` (the poll-until-convergence delay). */
60
+ function sleep(ms) {
61
+ return new Promise((resolve) => setTimeout(resolve, ms));
62
+ }
63
+ /** True iff a log record's path is a memory-relevant route (040c-AC-3 filter). */
64
+ function isMemoryRoute(path) {
65
+ return MEMORY_ROUTE_PREFIXES.some((p) => path.startsWith(p));
66
+ }
67
+ /** A muted mono metadata key→value row for the detail view. Renders nothing when value is empty. */
68
+ function MetaRow({ label, value }) {
69
+ if (value === "")
70
+ return null;
71
+ return (_jsxs("div", { style: { display: "flex", gap: 10, alignItems: "baseline" }, children: [_jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)", minWidth: 84, textTransform: "uppercase", letterSpacing: "0.06em" }, children: label }), _jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 12, color: "var(--text-secondary)", wordBreak: "break-all" }, children: value })] }));
72
+ }
73
+ /** The shared surface card style (matches the kit's panel/elevated rhythm). */
74
+ const SURFACE = {
75
+ padding: 16,
76
+ background: "var(--bg-surface)",
77
+ border: "1px solid var(--border-default)",
78
+ borderRadius: "var(--radius-lg)",
79
+ };
80
+ // ─────────────────────────────────────────────────────────────────────────────
81
+ // The browse list (040a)
82
+ // ─────────────────────────────────────────────────────────────────────────────
83
+ /** One clickable list row — id + a one-line content preview + a scope/version tag. Escaped text. */
84
+ function MemoryRow({ record, onOpen }) {
85
+ return (_jsxs("button", { type: "button", "data-testid": "memory-row", "data-memory-id": record.id, onClick: () => onOpen(record.id), style: {
86
+ display: "flex",
87
+ alignItems: "center",
88
+ gap: 12,
89
+ width: "100%",
90
+ textAlign: "left",
91
+ padding: "11px 14px",
92
+ background: "var(--bg-elevated)",
93
+ border: "1px solid var(--border-default)",
94
+ borderRadius: "var(--radius-md)",
95
+ cursor: "pointer",
96
+ color: "var(--text-primary)",
97
+ }, children: [_jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 13, fontWeight: 600, color: "var(--honey)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis", maxWidth: 160 }, children: record.id }), _jsx("span", { style: { flex: 1, fontSize: 13, color: "var(--text-secondary)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis", minWidth: 0 }, children: record.content }), _jsx(Badge, { tone: "neutral", mono: true, children: record.type || "fact" })] }));
98
+ }
99
+ /**
100
+ * The DETAIL view (040a-AC-3): full content (escaped) + the OQ-1 metadata, with the 040b Edit +
101
+ * Forget controls hanging off it. Edit requires a non-empty reason (client pre-validates; the
102
+ * daemon is the source of truth). Forget is behind an explicit confirm (040b-OQ-1). After a write
103
+ * the parent re-reads with poll-convergence and feeds the persisted record back as `record`.
104
+ */
105
+ function DetailView({ record, onClose, onEdit, onForget }) {
106
+ const [editing, setEditing] = React.useState(false);
107
+ const [draft, setDraft] = React.useState(record.content);
108
+ const [reason, setReason] = React.useState("");
109
+ const [busy, setBusy] = React.useState(false);
110
+ const [note, setNote] = React.useState("");
111
+ const [confirmingForget, setConfirmingForget] = React.useState(false);
112
+ // Reset the edit buffers whenever the persisted record changes (a re-read flowed in).
113
+ React.useEffect(() => {
114
+ setDraft(record.content);
115
+ setReason("");
116
+ setEditing(false);
117
+ setConfirmingForget(false);
118
+ }, [record.id, record.content, record.version]);
119
+ const reasonEmpty = reason.trim() === "";
120
+ const contentEmpty = draft.trim() === "";
121
+ const submitEdit = async () => {
122
+ // Client pre-validates (non-empty content + reason) to fail fast; the daemon still validates.
123
+ if (busy || contentEmpty || reasonEmpty)
124
+ return;
125
+ setBusy(true);
126
+ setNote("");
127
+ const result = await onEdit(record.id, draft, reason);
128
+ setBusy(false);
129
+ // Leave edit mode either way: the parent has re-read the PERSISTED record (the new version on
130
+ // success, or the UNCHANGED value on a 400/network failure), and we render THAT — never the
131
+ // optimistic form draft. A null result surfaces the honest failure note.
132
+ setEditing(false);
133
+ setReason("");
134
+ setNote(result ?? "Save failed — the memory is unchanged.");
135
+ };
136
+ const submitForget = async () => {
137
+ if (busy)
138
+ return;
139
+ setBusy(true);
140
+ setNote("");
141
+ const result = await onForget(record.id, "forgotten via dashboard");
142
+ setBusy(false);
143
+ if (result === null)
144
+ setNote("Forget failed — the memory is unchanged.");
145
+ // On success the parent closes the detail (the memory is now a tombstone → "forgotten").
146
+ };
147
+ return (_jsxs("div", { "data-testid": "memory-detail", style: { ...SURFACE, display: "flex", flexDirection: "column", gap: 14 }, children: [_jsxs("div", { style: { display: "flex", alignItems: "center", gap: 10 }, children: [_jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 13, fontWeight: 600, color: "var(--honey)" }, children: record.id }), _jsx(Badge, { tone: "neutral", mono: true, children: record.type || "fact" }), record.hasEmbedding && (_jsx(Badge, { tone: "pollinate", mono: true, dot: true, children: "semantic" })), _jsx("span", { style: { flex: 1 } }), _jsx(Button, { variant: "ghost", size: "sm", onClick: onClose, children: "\u2190 back" })] }), editing ? (_jsx("textarea", { "aria-label": "edit content", value: draft, onChange: (e) => setDraft(e.target.value), rows: 5, style: {
148
+ width: "100%",
149
+ resize: "vertical",
150
+ padding: "10px 12px",
151
+ background: "var(--bg-surface)",
152
+ border: "1px solid var(--border-default)",
153
+ borderRadius: "var(--radius-md)",
154
+ color: "var(--text-primary)",
155
+ fontFamily: "var(--font-sans)",
156
+ fontSize: 14,
157
+ lineHeight: "20px",
158
+ } })) : (_jsx("div", { "data-testid": "memory-content", style: { fontSize: 14, lineHeight: "21px", color: "var(--text-primary)", whiteSpace: "pre-wrap", wordBreak: "break-word" }, children: record.content })), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 5, paddingTop: 4, borderTop: "1px solid var(--border-subtle)" }, children: [_jsx(MetaRow, { label: "scope", value: [record.visibility, record.agentId].filter((v) => v !== "").join(" · ") }), _jsx(MetaRow, { label: "source", value: [record.sourceType, record.sourceId].filter((v) => v !== "").join(" · ") }), _jsx(MetaRow, { label: "version", value: record.version > 0 ? String(record.version) : "" }), _jsx(MetaRow, { label: "indexed", value: record.hasEmbedding ? "yes (semantic)" : "no (lexical only)" }), _jsx(MetaRow, { label: "created", value: record.createdAt }), _jsx(MetaRow, { label: "updated", value: record.updatedAt })] }), _jsx("div", { style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)" }, children: "Edits append a new version; the prior is kept in history." }), editing ? (_jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [_jsx(Input, { mono: true, "aria-label": "edit reason", value: reason, placeholder: "reason (required) \u2014 why is this changing?", onChange: (e) => setReason(e.target.value) }), _jsxs("div", { style: { display: "flex", gap: 10, alignItems: "center" }, children: [_jsx(Button, { variant: "primary", onClick: () => void submitEdit(), disabled: busy || contentEmpty || reasonEmpty, children: busy ? "…" : "Save new version" }), _jsx(Button, { variant: "ghost", onClick: () => setEditing(false), disabled: busy, children: "Cancel" }), reasonEmpty && _jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)" }, children: "a reason is required to save" })] })] })) : (_jsxs("div", { style: { display: "flex", gap: 10, alignItems: "center" }, children: [_jsx(Button, { variant: "secondary", onClick: () => setEditing(true), children: "Edit" }), confirmingForget ? (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "danger", onClick: () => void submitForget(), disabled: busy, children: busy ? "…" : "Confirm forget" }), _jsx(Button, { variant: "ghost", onClick: () => setConfirmingForget(false), disabled: busy, children: "Cancel" }), _jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)" }, children: "Forget soft-deletes this memory (a tombstone version)." })] })) : (_jsx(Button, { variant: "ghost", onClick: () => setConfirmingForget(true), children: "Forget" }))] })), note !== "" && (_jsx("div", { "data-testid": "detail-note", style: { fontFamily: "var(--font-mono)", fontSize: 12, color: "var(--text-secondary)" }, children: note }))] }));
159
+ }
160
+ // ─────────────────────────────────────────────────────────────────────────────
161
+ // The add form (040b)
162
+ // ─────────────────────────────────────────────────────────────────────────────
163
+ /** The DS-token styling shared by the AddForm's `<select>` and `<textarea>` (kept in one place). */
164
+ const ADD_FIELD_STYLE = {
165
+ height: 40,
166
+ padding: "0 12px",
167
+ background: "var(--bg-surface)",
168
+ border: "1px solid var(--border-default)",
169
+ borderRadius: "var(--radius-md)",
170
+ color: "var(--text-primary)",
171
+ fontFamily: "var(--font-mono)",
172
+ fontSize: "var(--text-sm)",
173
+ };
174
+ /**
175
+ * The ADD form (040b-AC-1): content (required) + a CLOSED-taxonomy `type` dropdown. On 201,
176
+ * the parent re-lists. The `type` field is a `<select>` of the single-sourced {@link MEMORY_TYPES}
177
+ * (default {@link DEFAULT_MEMORY_TYPE}) — never free text — so a user can only submit one of the
178
+ * six the daemon's enum gate accepts; each option's description rides as the `title` hint. The
179
+ * chosen token is passed verbatim to the existing submit path (`onAdd` → `wire.addMemory`).
180
+ */
181
+ function AddForm({ onAdd }) {
182
+ const [content, setContent] = React.useState("");
183
+ const [type, setType] = React.useState(DEFAULT_MEMORY_TYPE);
184
+ const [busy, setBusy] = React.useState(false);
185
+ const [note, setNote] = React.useState("");
186
+ const empty = content.trim() === "";
187
+ const submit = async () => {
188
+ if (busy || empty)
189
+ return;
190
+ setBusy(true);
191
+ setNote("");
192
+ const result = await onAdd(content, type);
193
+ setBusy(false);
194
+ if (result === null) {
195
+ setNote("Add failed — nothing was stored.");
196
+ return;
197
+ }
198
+ // On success clear the form; the parent has re-listed and the new memory shows in the list.
199
+ setContent("");
200
+ setType(DEFAULT_MEMORY_TYPE);
201
+ setNote(result);
202
+ };
203
+ return (_jsxs("div", { style: { ...SURFACE, display: "flex", flexDirection: "column", gap: 10 }, children: [_jsx("div", { style: { fontSize: 14, fontWeight: 600, color: "var(--text-primary)" }, children: "Add a memory" }), _jsx("textarea", { "aria-label": "new content", value: content, onChange: (e) => setContent(e.target.value), rows: 3, placeholder: "a fact to remember \u2014 e.g. we deploy via `just release`", style: {
204
+ width: "100%",
205
+ resize: "vertical",
206
+ padding: "10px 12px",
207
+ background: "var(--bg-surface)",
208
+ border: "1px solid var(--border-default)",
209
+ borderRadius: "var(--radius-md)",
210
+ color: "var(--text-primary)",
211
+ fontFamily: "var(--font-sans)",
212
+ fontSize: 14,
213
+ lineHeight: "20px",
214
+ } }), _jsxs("div", { style: { display: "flex", gap: 10, alignItems: "center", flexWrap: "wrap" }, children: [_jsx("select", { "aria-label": "memory type", "data-testid": "add-type", value: type, onChange: (e) => setType(e.target.value), title: MEMORY_TYPE_DESCRIPTIONS[type], style: { ...ADD_FIELD_STYLE, width: 180, cursor: "pointer" }, children: MEMORY_TYPES.map((t) => (_jsx("option", { value: t, title: MEMORY_TYPE_DESCRIPTIONS[t], children: t === DEFAULT_MEMORY_TYPE ? `${t} (default)` : t }, t))) }), _jsx(Button, { variant: "primary", onClick: () => void submit(), disabled: busy || empty, children: busy ? "…" : "Add memory" }), note !== "" && _jsx("span", { "data-testid": "add-note", style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)" }, children: note })] })] }));
215
+ }
216
+ // ─────────────────────────────────────────────────────────────────────────────
217
+ // The lifecycle cluster (040c): compact + pollinate + watch
218
+ // ─────────────────────────────────────────────────────────────────────────────
219
+ /** Render one per-table compaction summary line; errored>0 ⇒ "attempted, not completed". */
220
+ function compactLine(t) {
221
+ if (t.errored > 0)
222
+ return `${t.table}: attempted, not completed`;
223
+ const parts = [`${t.keysCompacted} keys`, `${t.rowsReaped} rows reaped`];
224
+ if (t.keysSkipped > 0)
225
+ parts.push(`${t.keysSkipped} keys deferred`);
226
+ return `${t.table}: ${parts.join(" · ")}`;
227
+ }
228
+ /** The lifecycle cluster (040c): compact (confirm + honest summary), pollinate (honest ack), watch (poll-filter). */
229
+ function LifecyclePanel({ pollinating, onCompact, onPollinate, watchLines, watching, onToggleWatch }) {
230
+ const [confirmingCompact, setConfirmingCompact] = React.useState(false);
231
+ const [compactBusy, setCompactBusy] = React.useState(false);
232
+ const [summary, setSummary] = React.useState(null);
233
+ const [pollinateBusy, setPollinateBusy] = React.useState(false);
234
+ const [pollinateNote, setPollinateNote] = React.useState("");
235
+ const runCompact = async () => {
236
+ if (compactBusy)
237
+ return;
238
+ setConfirmingCompact(false);
239
+ setCompactBusy(true);
240
+ const result = await onCompact();
241
+ setCompactBusy(false);
242
+ setSummary(result); // null → "compaction unavailable"; never crashes.
243
+ };
244
+ // 040c-AC-2: the EXACT honest-ack logic (no fake spinner). enqueued/running → triggered note;
245
+ // skipped → "skipped · reason". Never a permanent pollinating state on a !triggered ack.
246
+ const runPollinate = async () => {
247
+ if (pollinateBusy)
248
+ return;
249
+ setPollinateBusy(true);
250
+ setPollinateNote("");
251
+ const ack = await onPollinate();
252
+ setPollinateBusy(false);
253
+ if (ack.triggered) {
254
+ setPollinateNote(ack.status === "running" ? "already running" : "consolidating…");
255
+ }
256
+ else {
257
+ setPollinateNote(`skipped · ${ack.reason ?? "unavailable"}`);
258
+ }
259
+ };
260
+ return (_jsxs("div", { style: { ...SURFACE, display: "flex", flexDirection: "column", gap: 14 }, children: [_jsx("div", { style: { fontSize: 14, fontWeight: 600, color: "var(--text-primary)" }, children: "Lifecycle" }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: [_jsx("div", { style: { display: "flex", gap: 10, alignItems: "center", flexWrap: "wrap" }, children: confirmingCompact ? (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "danger", onClick: () => void runCompact(), disabled: compactBusy, children: compactBusy ? "…" : "Confirm compact" }), _jsx(Button, { variant: "ghost", onClick: () => setConfirmingCompact(false), disabled: compactBusy, children: "Cancel" }), _jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)" }, children: "Compaction prunes old memory versions across version-bumped tables. Continue?" })] })) : (_jsx(Button, { variant: "secondary", onClick: () => setConfirmingCompact(true), disabled: compactBusy, children: "Compact" })) }), summary !== null && (_jsxs("div", { "data-testid": "compact-summary", style: { display: "flex", flexDirection: "column", gap: 3 }, children: [summary.summaries.length === 0 && summary.skippedTables.length === 0 ? (_jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 12, color: "var(--text-tertiary)" }, children: "nothing reaped this pass" })) : (summary.summaries.map((t) => (_jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 12, color: t.errored > 0 ? "var(--severity-warning)" : "var(--text-secondary)" }, children: compactLine(t) }, t.table)))), summary.skippedTables.length > 0 && (_jsxs("span", { style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)" }, children: ["skipped (absent): ", summary.skippedTables.join(", ")] }))] }))] }), _jsxs("div", { style: { display: "flex", gap: 10, alignItems: "center", flexWrap: "wrap" }, children: [_jsx(Button, { variant: "pollinate", onClick: () => void runPollinate(), disabled: pollinateBusy || pollinating, children: pollinateBusy || pollinating ? "pollinating…" : "Pollinate now" }), pollinateNote !== "" && _jsx("span", { "data-testid": "pollinate-note", style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)" }, children: pollinateNote })] }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: [_jsxs("div", { style: { display: "flex", gap: 10, alignItems: "center" }, children: [_jsx(Button, { variant: watching ? "secondary" : "ghost", onClick: onToggleWatch, children: watching ? "Stop watch" : "Watch" }), watching && (_jsxs("span", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [_jsx("span", { style: { width: 7, height: 7, borderRadius: "50%", background: "var(--verified)" } }), _jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)" }, children: "memory routes" })] }))] }), watching && (_jsx("div", { "data-testid": "watch-feed", style: { display: "flex", flexDirection: "column", gap: 5 }, children: watchLines.length === 0 ? (_jsx("code", { style: { fontFamily: "var(--font-mono)", fontSize: 12, color: "var(--text-tertiary)" }, children: "waiting for memory activity\u2026" })) : (watchLines.map((l, i) => (_jsx("code", { style: { fontFamily: "var(--font-mono)", fontSize: 12, color: i === 0 ? "var(--text-primary)" : "var(--text-tertiary)", whiteSpace: "pre" }, children: l }, i)))) }))] })] }));
261
+ }
262
+ // ─────────────────────────────────────────────────────────────────────────────
263
+ // The page
264
+ // ─────────────────────────────────────────────────────────────────────────────
265
+ /**
266
+ * The Memories page (040a/b/c). Hydrates the browse list on mount from the shared `wire`, runs
267
+ * search/detail/add/edit/forget/compact/pollinate/watch, and RE-READS (with poll-convergence) after
268
+ * every write so the rendered value is the daemon-persisted truth, never optimistic.
269
+ */
270
+ export function MemoriesPage({ wire, pollinating = false }) {
271
+ // PRD-049e (49e-AC-2): the dashboard-selected project. Threaded into the list + recall fetchers so
272
+ // the page shows ONLY that project's memories; `undefined` → the needs-selection state (49e-AC-5).
273
+ const { scope } = useScope();
274
+ const project = scope.project;
275
+ // ── browse list (040a) ──
276
+ const [records, setRecords] = React.useState([]);
277
+ const [limit, setLimit] = React.useState(LIST_STEP);
278
+ const [hydrated, setHydrated] = React.useState(false);
279
+ // ── search (040a) ──
280
+ const [query, setQuery] = React.useState("");
281
+ const [hits, setHits] = React.useState([]);
282
+ const [searching, setSearching] = React.useState(false);
283
+ const [searchActive, setSearchActive] = React.useState(false);
284
+ const [degraded, setDegraded] = React.useState(false);
285
+ // ── detail (040a) ──
286
+ const [openId, setOpenId] = React.useState(null);
287
+ const [detail, setDetail] = React.useState(null);
288
+ const [detailMissing, setDetailMissing] = React.useState(false);
289
+ // ── watch (040c) ──
290
+ const [watching, setWatching] = React.useState(false);
291
+ const [watchLines, setWatchLines] = React.useState([]);
292
+ /** Re-list the browse corpus from the daemon (the persisted truth), narrowed to the selected project. */
293
+ const reList = React.useCallback(async (nextLimit) => {
294
+ // 49e-AC-2: stamp the selected project so the list re-scopes; no project → empty (49e-AC-5).
295
+ if (project === undefined) {
296
+ setRecords([]);
297
+ setHydrated(true);
298
+ return [];
299
+ }
300
+ const rows = await wire.listMemories(nextLimit, project);
301
+ setRecords(rows);
302
+ setHydrated(true);
303
+ return rows;
304
+ }, [wire, project]);
305
+ // 040a-AC-1: hydrate the list on mount + whenever the limit bumps (load more) OR the selected
306
+ // project changes (49e-AC-2 re-scope on the next render). `reList` is keyed on `project` so the
307
+ // dependency is the callback identity.
308
+ React.useEffect(() => {
309
+ void reList(limit);
310
+ }, [reList, limit]);
311
+ // 040c-AC-3: Watch — poll `/api/logs` filtered to memory routes; stop clears the interval; cleanup on unmount.
312
+ React.useEffect(() => {
313
+ if (!watching)
314
+ return;
315
+ let alive = true;
316
+ const tick = async () => {
317
+ if (!alive || isTabHidden())
318
+ return; // background-tab pause: no watch poll while hidden
319
+ const recs = await wire.logs(40);
320
+ if (!alive)
321
+ return;
322
+ const lines = recs.filter((r) => isMemoryRoute(r.path)).slice(-MAX_WATCH_LINES).reverse().map(formatLogLine);
323
+ setWatchLines(lines);
324
+ };
325
+ void tick();
326
+ const id = setInterval(() => void tick(), WATCH_POLL_MS);
327
+ return () => {
328
+ alive = false;
329
+ clearInterval(id);
330
+ };
331
+ }, [watching, wire]);
332
+ // ── search (040a-AC-2) ──
333
+ const runSearch = React.useCallback(async () => {
334
+ const q = query.trim();
335
+ if (q === "") {
336
+ // Clearing the box restores the full list.
337
+ setSearchActive(false);
338
+ setHits([]);
339
+ return;
340
+ }
341
+ setSearching(true);
342
+ // 49e-AC-2: recall is narrowed to the selected project (the wire stamps the project header).
343
+ const { memories, degraded: deg } = await wire.recall(q, project);
344
+ setHits(memories);
345
+ setDegraded(deg);
346
+ setSearchActive(true);
347
+ setSearching(false);
348
+ }, [query, wire, project]);
349
+ const clearSearch = React.useCallback(() => {
350
+ setQuery("");
351
+ setSearchActive(false);
352
+ setHits([]);
353
+ }, []);
354
+ // ── open a detail (040a-AC-3) ──
355
+ const openDetail = React.useCallback(async (id) => {
356
+ setOpenId(id);
357
+ setDetail(null);
358
+ setDetailMissing(false);
359
+ const rec = await wire.getMemory(id);
360
+ if (rec === null) {
361
+ setDetailMissing(true);
362
+ return;
363
+ }
364
+ setDetail(rec);
365
+ }, [wire]);
366
+ const closeDetail = React.useCallback(() => {
367
+ setOpenId(null);
368
+ setDetail(null);
369
+ setDetailMissing(false);
370
+ }, []);
371
+ /**
372
+ * Re-read one memory with poll-until-convergence (040b OQ-3 / AC-4). DeepLake is eventually
373
+ * consistent, so we poll a few short attempts until the persisted record satisfies `done`
374
+ * (e.g. its version advanced, or its content matches the just-saved value), then render
375
+ * whatever the LAST read returned — never the form input. Returns the persisted record (or null).
376
+ */
377
+ const rereadUntil = React.useCallback(async (id, done) => {
378
+ let last = null;
379
+ for (let attempt = 0; attempt < REREAD_ATTEMPTS; attempt += 1) {
380
+ last = await wire.getMemory(id);
381
+ if (last !== null && done(last))
382
+ return last;
383
+ await sleep(REREAD_DELAY_MS);
384
+ }
385
+ return last;
386
+ }, [wire]);
387
+ // ── edit (040b-AC-2/AC-3/AC-4/AC-5) ──
388
+ const onEdit = React.useCallback(async (id, content, reason) => {
389
+ const ack = await wire.modifyMemory(id, { content, reason });
390
+ if (ack === null) {
391
+ // Honest failure (AC-5): re-read the UNCHANGED persisted value and re-render it.
392
+ const persisted = await wire.getMemory(id);
393
+ if (persisted !== null)
394
+ setDetail(persisted);
395
+ return null;
396
+ }
397
+ // RE-READ, never optimistic (AC-4): poll until the persisted content matches the save
398
+ // (or a version advances), then render that — NOT the form input.
399
+ const persisted = await rereadUntil(id, (rec) => rec.content === content || rec.version > 0);
400
+ if (persisted !== null)
401
+ setDetail(persisted);
402
+ // Refresh the browse list so the row preview reflects the new persisted content.
403
+ void reList(limit);
404
+ return "saved · new version";
405
+ }, [wire, rereadUntil, reList, limit]);
406
+ // ── forget (040b-OQ-1) ──
407
+ const onForget = React.useCallback(async (id, reason) => {
408
+ const ack = await wire.forgetMemory(id, { reason });
409
+ if (ack === null)
410
+ return null;
411
+ // Re-read: a forgotten memory reads as null (tombstone). Close the detail + re-list.
412
+ closeDetail();
413
+ void reList(limit);
414
+ return "forgotten";
415
+ }, [wire, closeDetail, reList, limit]);
416
+ // ── add (040b-AC-1) ──
417
+ const onAdd = React.useCallback(async (content, type) => {
418
+ const ack = await wire.addMemory({ content, ...(type !== "" ? { type } : {}) });
419
+ if (ack === null)
420
+ return null;
421
+ // RE-READ, never optimistic: re-list so the new memory appears from the daemon's truth.
422
+ await reList(limit);
423
+ return ack.id !== null ? `stored · ${ack.id}` : `stored · ${ack.action || "ok"}`;
424
+ }, [wire, reList, limit]);
425
+ // ── compact + pollinate (040c) ──
426
+ const onCompact = React.useCallback(() => wire.compact(), [wire]);
427
+ const onPollinate = React.useCallback(() => wire.pollinate(), [wire]);
428
+ const toggleWatch = React.useCallback(() => {
429
+ setWatching((w) => !w);
430
+ setWatchLines([]);
431
+ }, []);
432
+ // The detail panel is open iff an id is selected.
433
+ const detailOpen = openId !== null;
434
+ return (_jsx(PageFrame, { eyebrow: "memories", title: "Memories", right: _jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)" }, children: project === undefined ? "no project" : `${records.length} kept` }), children: project === undefined ? (_jsx(NeedsProjectSelection, { surface: "memories" })) : (_jsxs(_Fragment, { children: [_jsxs("div", { style: { display: "flex", gap: 10, marginBottom: 16 }, children: [_jsx("div", { style: { flex: 1 }, children: _jsx(Input, { mono: true, size: "lg", value: query, placeholder: "search memories\u2026 e.g. how do we deploy", onChange: (e) => setQuery(e.target.value), onKeyDown: (e) => {
435
+ if (e.key === "Enter")
436
+ void runSearch();
437
+ } }) }), _jsx(Button, { variant: "primary", size: "lg", onClick: () => void runSearch(), disabled: searching, children: searching ? "…" : "Search" }), searchActive && (_jsx(Button, { variant: "ghost", size: "lg", onClick: clearSearch, children: "Clear" }))] }), searchActive && degraded && (_jsxs("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 12 }, children: [_jsx("span", { style: { fontFamily: "var(--font-mono)", fontSize: 11, color: "var(--text-tertiary)", textTransform: "uppercase", letterSpacing: "0.08em" }, children: "recall" }), _jsx("span", { title: "recall fell back to lexical (embeddings off) \u2014 semantic ranking unavailable", children: _jsx(Badge, { tone: "warning", mono: true, dot: true, children: "lexical fallback" }) })] })), detailOpen ? (detailMissing ? (_jsxs("div", { "data-testid": "memory-forgotten", style: { ...SURFACE, display: "flex", flexDirection: "column", gap: 12 }, children: [_jsx("div", { style: { fontSize: 14, color: "var(--text-secondary)" }, children: "This memory was forgotten (or its id is unknown)." }), _jsx("div", { children: _jsx(Button, { variant: "ghost", size: "sm", onClick: closeDetail, children: "\u2190 back" }) })] })) : detail !== null ? (_jsx(DetailView, { record: detail, onClose: closeDetail, onEdit: onEdit, onForget: onForget })) : (_jsx("div", { style: { ...SURFACE, fontFamily: "var(--font-mono)", fontSize: 12, color: "var(--text-tertiary)" }, children: "loading\u2026" }))) : (_jsxs(_Fragment, { children: [searchActive ? (_jsx("div", { "data-testid": "search-results", style: { display: "flex", flexDirection: "column", gap: 10, marginBottom: 18 }, children: hits.length === 0 ? (_jsx("div", { style: { padding: "10px 4px", fontSize: 13, color: "var(--text-tertiary)" }, children: "No memories matched that query." })) : (hits.map((m, i) => (_jsx(MemoryCard, { ...m, pollinating: pollinating && i === 1 }, m.memoryKey)))) })) : (_jsx("div", { "data-testid": "memory-list", style: { display: "flex", flexDirection: "column", gap: 8, marginBottom: 18 }, children: !hydrated ? (_jsx("div", { style: { fontFamily: "var(--font-mono)", fontSize: 12, color: "var(--text-tertiary)" }, children: "loading\u2026" })) : records.length === 0 ? (_jsx("div", { style: { padding: "10px 4px", fontSize: 13, color: "var(--text-tertiary)" }, children: "No memories yet." })) : (_jsxs(_Fragment, { children: [records.map((r) => (_jsx(MemoryRow, { record: r, onOpen: openDetail }, r.id))), records.length >= limit && (_jsx("div", { style: { paddingTop: 4 }, children: _jsx(Button, { variant: "ghost", size: "sm", onClick: () => setLimit((l) => l + LIST_STEP), children: "Load more" }) }))] })) })), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 16 }, children: [_jsx(AddForm, { onAdd: onAdd }), _jsx(LifecycleHealthPanel, { wire: wire }), _jsx(LifecyclePanel, { pollinating: pollinating, onCompact: onCompact, onPollinate: onPollinate, watchLines: watchLines, watching: watching, onToggleWatch: toggleWatch })] })] }))] })) }));
438
+ }
439
+ //# sourceMappingURL=memories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memories.js","sourceRoot":"","sources":["../../../../src/dashboard/web/pages/memories.tsx"],"names":[],"mappings":"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"}