@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.
- package/LICENSE +661 -0
- package/README.md +262 -0
- package/dist/cli-commands.d.ts +41 -0
- package/dist/cli-commands.js +76 -0
- package/dist/cli-commands.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +46 -0
- package/dist/cli.js.map +1 -0
- package/dist/daemon/dashboard/app.js +118 -0
- package/dist/daemon/dashboard/host.d.ts +90 -0
- package/dist/daemon/dashboard/host.js +172 -0
- package/dist/daemon/dashboard/host.js.map +1 -0
- package/dist/daemon/dashboard/web-assets.d.ts +88 -0
- package/dist/daemon/dashboard/web-assets.js +195 -0
- package/dist/daemon/dashboard/web-assets.js.map +1 -0
- package/dist/daemon/fleet-status.d.ts +15 -0
- package/dist/daemon/fleet-status.js +56 -0
- package/dist/daemon/fleet-status.js.map +1 -0
- package/dist/daemon/gate.d.ts +55 -0
- package/dist/daemon/gate.js +128 -0
- package/dist/daemon/gate.js.map +1 -0
- package/dist/daemon/proxy.d.ts +38 -0
- package/dist/daemon/proxy.js +126 -0
- package/dist/daemon/proxy.js.map +1 -0
- package/dist/daemon/registry.d.ts +31 -0
- package/dist/daemon/registry.js +120 -0
- package/dist/daemon/registry.js.map +1 -0
- package/dist/daemon/server.d.ts +41 -0
- package/dist/daemon/server.js +126 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/daemon/setup-auth.d.ts +37 -0
- package/dist/daemon/setup-auth.js +51 -0
- package/dist/daemon/setup-auth.js.map +1 -0
- package/dist/daemon/telemetry-proxy.d.ts +47 -0
- package/dist/daemon/telemetry-proxy.js +63 -0
- package/dist/daemon/telemetry-proxy.js.map +1 -0
- package/dist/dashboard/contracts.d.ts +235 -0
- package/dist/dashboard/contracts.js +43 -0
- package/dist/dashboard/contracts.js.map +1 -0
- package/dist/dashboard/web/app.d.ts +44 -0
- package/dist/dashboard/web/app.js +179 -0
- package/dist/dashboard/web/app.js.map +1 -0
- package/dist/dashboard/web/boot-route.d.ts +23 -0
- package/dist/dashboard/web/boot-route.js +29 -0
- package/dist/dashboard/web/boot-route.js.map +1 -0
- package/dist/dashboard/web/build-graph-button.d.ts +46 -0
- package/dist/dashboard/web/build-graph-button.js +81 -0
- package/dist/dashboard/web/build-graph-button.js.map +1 -0
- package/dist/dashboard/web/buzzing-screen.d.ts +30 -0
- package/dist/dashboard/web/buzzing-screen.js +135 -0
- package/dist/dashboard/web/buzzing-screen.js.map +1 -0
- package/dist/dashboard/web/folder-picker.d.ts +54 -0
- package/dist/dashboard/web/folder-picker.js +125 -0
- package/dist/dashboard/web/folder-picker.js.map +1 -0
- package/dist/dashboard/web/graph-layout.d.ts +101 -0
- package/dist/dashboard/web/graph-layout.js +0 -0
- package/dist/dashboard/web/graph-layout.js.map +1 -0
- package/dist/dashboard/web/harness-strip.d.ts +38 -0
- package/dist/dashboard/web/harness-strip.js +65 -0
- package/dist/dashboard/web/harness-strip.js.map +1 -0
- package/dist/dashboard/web/health-rail.d.ts +26 -0
- package/dist/dashboard/web/health-rail.js +61 -0
- package/dist/dashboard/web/health-rail.js.map +1 -0
- package/dist/dashboard/web/main.d.ts +22 -0
- package/dist/dashboard/web/main.js +51 -0
- package/dist/dashboard/web/main.js.map +1 -0
- package/dist/dashboard/web/needs-project.d.ts +51 -0
- package/dist/dashboard/web/needs-project.js +69 -0
- package/dist/dashboard/web/needs-project.js.map +1 -0
- package/dist/dashboard/web/page-frame.d.ts +95 -0
- package/dist/dashboard/web/page-frame.js +98 -0
- package/dist/dashboard/web/page-frame.js.map +1 -0
- package/dist/dashboard/web/pages/coming-soon.d.ts +23 -0
- package/dist/dashboard/web/pages/coming-soon.js +19 -0
- package/dist/dashboard/web/pages/coming-soon.js.map +1 -0
- package/dist/dashboard/web/pages/dashboard.d.ts +32 -0
- package/dist/dashboard/web/pages/dashboard.js +205 -0
- package/dist/dashboard/web/pages/dashboard.js.map +1 -0
- package/dist/dashboard/web/pages/graph.d.ts +72 -0
- package/dist/dashboard/web/pages/graph.js +362 -0
- package/dist/dashboard/web/pages/graph.js.map +1 -0
- package/dist/dashboard/web/pages/harnesses.d.ts +65 -0
- package/dist/dashboard/web/pages/harnesses.js +210 -0
- package/dist/dashboard/web/pages/harnesses.js.map +1 -0
- package/dist/dashboard/web/pages/health.d.ts +22 -0
- package/dist/dashboard/web/pages/health.js +91 -0
- package/dist/dashboard/web/pages/health.js.map +1 -0
- package/dist/dashboard/web/pages/lifecycle-panel.d.ts +60 -0
- package/dist/dashboard/web/pages/lifecycle-panel.js +187 -0
- package/dist/dashboard/web/pages/lifecycle-panel.js.map +1 -0
- package/dist/dashboard/web/pages/logs.d.ts +55 -0
- package/dist/dashboard/web/pages/logs.js +311 -0
- package/dist/dashboard/web/pages/logs.js.map +1 -0
- package/dist/dashboard/web/pages/memories.d.ts +35 -0
- package/dist/dashboard/web/pages/memories.js +439 -0
- package/dist/dashboard/web/pages/memories.js.map +1 -0
- package/dist/dashboard/web/pages/projects.d.ts +38 -0
- package/dist/dashboard/web/pages/projects.js +325 -0
- package/dist/dashboard/web/pages/projects.js.map +1 -0
- package/dist/dashboard/web/pages/roi-chart.d.ts +52 -0
- package/dist/dashboard/web/pages/roi-chart.js +133 -0
- package/dist/dashboard/web/pages/roi-chart.js.map +1 -0
- package/dist/dashboard/web/pages/roi.d.ts +93 -0
- package/dist/dashboard/web/pages/roi.js +375 -0
- package/dist/dashboard/web/pages/roi.js.map +1 -0
- package/dist/dashboard/web/pages/settings.d.ts +103 -0
- package/dist/dashboard/web/pages/settings.js +420 -0
- package/dist/dashboard/web/pages/settings.js.map +1 -0
- package/dist/dashboard/web/pages/sync.d.ts +59 -0
- package/dist/dashboard/web/pages/sync.js +280 -0
- package/dist/dashboard/web/pages/sync.js.map +1 -0
- package/dist/dashboard/web/panels.d.ts +178 -0
- package/dist/dashboard/web/panels.js +471 -0
- package/dist/dashboard/web/panels.js.map +1 -0
- package/dist/dashboard/web/primitives.d.ts +80 -0
- package/dist/dashboard/web/primitives.js +208 -0
- package/dist/dashboard/web/primitives.js.map +1 -0
- package/dist/dashboard/web/readiness-splash.d.ts +39 -0
- package/dist/dashboard/web/readiness-splash.js +201 -0
- package/dist/dashboard/web/readiness-splash.js.map +1 -0
- package/dist/dashboard/web/registry.d.ts +96 -0
- package/dist/dashboard/web/registry.js +99 -0
- package/dist/dashboard/web/registry.js.map +1 -0
- package/dist/dashboard/web/router.d.ts +48 -0
- package/dist/dashboard/web/router.js +76 -0
- package/dist/dashboard/web/router.js.map +1 -0
- package/dist/dashboard/web/scope-context.d.ts +155 -0
- package/dist/dashboard/web/scope-context.js +266 -0
- package/dist/dashboard/web/scope-context.js.map +1 -0
- package/dist/dashboard/web/service-icons.d.ts +33 -0
- package/dist/dashboard/web/service-icons.js +80 -0
- package/dist/dashboard/web/service-icons.js.map +1 -0
- package/dist/dashboard/web/setup-gate.d.ts +116 -0
- package/dist/dashboard/web/setup-gate.js +272 -0
- package/dist/dashboard/web/setup-gate.js.map +1 -0
- package/dist/dashboard/web/sidebar.d.ts +63 -0
- package/dist/dashboard/web/sidebar.js +91 -0
- package/dist/dashboard/web/sidebar.js.map +1 -0
- package/dist/dashboard/web/use-fleet-telemetry.d.ts +111 -0
- package/dist/dashboard/web/use-fleet-telemetry.js +278 -0
- package/dist/dashboard/web/use-fleet-telemetry.js.map +1 -0
- package/dist/dashboard/web/wire.d.ts +1937 -0
- package/dist/dashboard/web/wire.js +1837 -0
- package/dist/dashboard/web/wire.js.map +1 -0
- package/dist/errors.d.ts +5 -0
- package/dist/errors.js +11 -0
- package/dist/errors.js.map +1 -0
- package/dist/install/registry.d.ts +35 -0
- package/dist/install/registry.js +110 -0
- package/dist/install/registry.js.map +1 -0
- package/dist/lock.d.ts +10 -0
- package/dist/lock.js +87 -0
- package/dist/lock.js.map +1 -0
- package/dist/service/commands.d.ts +15 -0
- package/dist/service/commands.js +49 -0
- package/dist/service/commands.js.map +1 -0
- package/dist/service/index.d.ts +38 -0
- package/dist/service/index.js +174 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/platform.d.ts +37 -0
- package/dist/service/platform.js +67 -0
- package/dist/service/platform.js.map +1 -0
- package/dist/service/templates.d.ts +10 -0
- package/dist/service/templates.js +120 -0
- package/dist/service/templates.js.map +1 -0
- package/dist/shared/constants.d.ts +15 -0
- package/dist/shared/constants.js +19 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/daemon-routing.d.ts +11 -0
- package/dist/shared/daemon-routing.js +38 -0
- package/dist/shared/daemon-routing.js.map +1 -0
- package/dist/shared/fleet-readiness.d.ts +18 -0
- package/dist/shared/fleet-readiness.js +9 -0
- package/dist/shared/fleet-readiness.js.map +1 -0
- package/dist/shared/fleet-telemetry.d.ts +68 -0
- package/dist/shared/fleet-telemetry.js +61 -0
- package/dist/shared/fleet-telemetry.js.map +1 -0
- package/dist/shared/lifecycle-flags.d.ts +34 -0
- package/dist/shared/lifecycle-flags.js +39 -0
- package/dist/shared/lifecycle-flags.js.map +1 -0
- package/dist/shared/memory-types.d.ts +55 -0
- package/dist/shared/memory-types.js +75 -0
- package/dist/shared/memory-types.js.map +1 -0
- package/dist/shared/service-status.d.ts +82 -0
- package/dist/shared/service-status.js +97 -0
- package/dist/shared/service-status.js.map +1 -0
- package/dist/telemetry/emit.d.ts +197 -0
- package/dist/telemetry/emit.js +196 -0
- package/dist/telemetry/emit.js.map +1 -0
- 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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"}
|