agent-memory-git 0.1.8__tar.gz → 0.1.9__tar.gz
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.
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/PKG-INFO +1 -1
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/pyproject.toml +1 -1
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/pyproject.toml.orig +1 -1
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/ui_server.py +8 -2
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/app.css +5 -2
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/main.js +2 -1
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/profiles.js +15 -8
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/shell.js +1 -2
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/LICENSE +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/README.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/PROTOCOL.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/__init__.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/__main__.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/capture.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/cli.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/config.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/context.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/personal/2026/08/20260816-blog-publishing-k3qm.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/personal/2026/09/20260906-push-personal-repos-w8re.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/personal/2026/09/20260921-home-server-n2vb.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/personal/2026/10/20261004-options-first-7hcx.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/personal/2026/10/20261009-thesis-setup-fr6e.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/08/20260804-alex-profile-ujzd.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/08/20260804-reply-language-xdnc.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/08/20260812-ask-before-push-pf3d.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/08/20260820-tests-before-done-odzd.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/08/20260827-etl-orders-export-deadline-pft7.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/08/20260828-etl-dashboard-72ce.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/09/20260902-report-eta-is2j.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/09/20260908-shop-web-stripe-checkout-lgmx.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/09/20260910-shop-web-deploys-dn73.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/09/20260915-etl-parquet-partitioning-seh2.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/09/20260922-design-tokens-source-uvw7.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/10/20261002-shop-web-v3-freeze-5xtp.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo/work/2026/10/20261012-payments-runbook-4syw.md +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/demo.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/embed_worker.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/frontmatter.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/gitsync.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/hooks.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/importers.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/install.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/lint.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/profiles.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/select.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/sessions.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/store.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/ui.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/update.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/util.py +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/index.html +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/api.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/avatar.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/filters.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/format.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/h.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/icons.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/markdown.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/search.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/store.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/insights.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/list.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/memory.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/overlays.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/settings.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/ui.js +0 -0
- {agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/workdir.py +0 -0
|
@@ -614,12 +614,18 @@ class Handler(BaseHTTPRequestHandler):
|
|
|
614
614
|
self._run(lambda: getattr(self.server.app, method)(payload))
|
|
615
615
|
|
|
616
616
|
|
|
617
|
+
class Server(ThreadingHTTPServer):
|
|
618
|
+
# The page is some twenty modules the browser asks for at once; with socketserver's backlog of 5 the
|
|
619
|
+
# kernel resets the overflow, a module fails to load, and the page stays blank.
|
|
620
|
+
request_queue_size = 128
|
|
621
|
+
|
|
622
|
+
|
|
617
623
|
def make_server(data_dir, port=8790, semantic=True):
|
|
618
624
|
app = UiApp(data_dir, semantic=semantic)
|
|
619
625
|
try:
|
|
620
|
-
server =
|
|
626
|
+
server = Server(("127.0.0.1", port), Handler)
|
|
621
627
|
except OSError:
|
|
622
|
-
server =
|
|
628
|
+
server = Server(("127.0.0.1", 0), Handler)
|
|
623
629
|
port = server.server_address[1]
|
|
624
630
|
server.hosts = {f"127.0.0.1:{port}", f"localhost:{port}"}
|
|
625
631
|
# a restart after an update keeps the token, so the open page carries on
|
|
@@ -184,7 +184,8 @@ body.resizing { cursor: col-resize; user-select: none; }
|
|
|
184
184
|
.rail-btn:hover { background: var(--hover); color: var(--ink); }
|
|
185
185
|
.rail-btn[aria-current="page"] { background: var(--surface); color: var(--accent); box-shadow: 0 0 0 1px var(--line); }
|
|
186
186
|
.rail-btn .i { width: 19px; height: 19px; }
|
|
187
|
-
.rail-btn .badge { position: absolute; top: 8px; right: 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 2px var(--panel); }
|
|
187
|
+
.rail-btn .badge, .rail-profile .badge { position: absolute; top: 8px; right: 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 2px var(--panel); }
|
|
188
|
+
.rail-profile .badge { top: 5px; right: 5px; }
|
|
188
189
|
|
|
189
190
|
/* the list is 372, 400 or 440px wide by window size, until its edge is dragged (--list-w);
|
|
190
191
|
whatever the width, the open memory keeps at least 420px */
|
|
@@ -562,11 +563,13 @@ table.nums td:last-child { color: var(--ink); }
|
|
|
562
563
|
.field-help { margin-top: 6px; font-size: 12.5px; color: var(--ink-3); }
|
|
563
564
|
.pform-error { font-size: 13px; color: var(--bad); }
|
|
564
565
|
.pform-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
565
|
-
.rail-profile { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 9px; transition: background-color .15s; }
|
|
566
|
+
.rail-profile { position: relative; display: grid; width: 40px; height: 40px; place-items: center; border-radius: 9px; transition: background-color .15s, box-shadow .15s; }
|
|
566
567
|
.rail-profile:hover, .rail-profile:has(+ .menu:popover-open) { background: var(--hover); }
|
|
568
|
+
.rail-profile[aria-current="page"] { background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
|
|
567
569
|
.rail-profile:has(+ .menu:popover-open)::after { display: none; } /* the menu says it already */
|
|
568
570
|
.rail-profile .pavatar { width: 26px; height: 26px; }
|
|
569
571
|
.menu-item.tall { height: 36px; }
|
|
572
|
+
.menu-sep { height: 1px; margin: 4px -4px; background: var(--line); }
|
|
570
573
|
.menu-note.pad { margin: 0; padding: 6px 8px 4px; }
|
|
571
574
|
.tick-space { width: 14px; flex-shrink: 0; }
|
|
572
575
|
@media (max-width: 639px) {
|
|
@@ -137,7 +137,8 @@ const ACTIONS = {
|
|
|
137
137
|
},
|
|
138
138
|
toggleHealth: () => { settings.healthOpen = !settings.healthOpen; app.changed(); },
|
|
139
139
|
useProfile: (id) => { closeMenus(); app.useProfile(id); },
|
|
140
|
-
|
|
140
|
+
openSettings: () => { closeMenus(); app.go("settings"); },
|
|
141
|
+
profileNewFromMenu: () => { closeMenus(); app.go("settings"); ACTIONS.profileNew(); },
|
|
141
142
|
profileNew: async () => { await app.newProfile(); setTimeout(() => document.getElementById("pf-folder")?.focus()); },
|
|
142
143
|
profileCancel: () => app.cancelProfile(),
|
|
143
144
|
profileRemove: () => app.removeProfile(),
|
{agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/profiles.js
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Profiles: separate memory repositories, each its own folder and remote. Settings lists them above the
|
|
2
|
-
// repository card, which shows the active one; the rail
|
|
3
|
-
// profile's name is picked for it when it is made, and its picture is
|
|
2
|
+
// repository card, which shows the active one; the rail's last button is the active profile's picture, with
|
|
3
|
+
// Settings and a quick switch behind it. A profile's name is picked for it when it is made, and its picture is
|
|
4
|
+
// drawn from the name.
|
|
4
5
|
import { avatar } from "../avatar.js";
|
|
5
6
|
import { plural } from "../format.js";
|
|
6
7
|
import { attrs, cx, html } from "../h.js";
|
|
@@ -64,15 +65,21 @@ export function profileNewCard() {
|
|
|
64
65
|
|
|
65
66
|
// ---------------------------------------------------------------- the rail
|
|
66
67
|
|
|
67
|
-
|
|
68
|
+
/** The rail's last button: the active profile's picture, opening a menu with Settings and the profiles. Without
|
|
69
|
+
* profiles (AGENT_MEMORY_DATA picks the folder, or an older server) the rail keeps `fallback`, a Settings button. */
|
|
70
|
+
export function railProfile(fallback) {
|
|
68
71
|
const list = shown(), now = active();
|
|
69
|
-
if (
|
|
70
|
-
|
|
72
|
+
if (!now) return fallback;
|
|
73
|
+
const update = app.update?.available ? app.update.latest : "";
|
|
74
|
+
const label = `${now.name} · Settings${update ? ` · version ${update} is out` : ""}`;
|
|
75
|
+
return html`<button type="button" class="rail-profile" popovertarget="menu-profiles"${attrs({ "aria-label": label, "data-tip": label, "data-tip-side": "right", "aria-current": app.page === "settings" ? "page" : null })}>${avatar(now.name)}${update ? html`<i class="badge" aria-hidden="true"></i>` : ""}</button>
|
|
71
76
|
${menu("menu-profiles", html`<div class="menu-list" role="menu">
|
|
72
|
-
<
|
|
77
|
+
<button type="button" role="menuitem" class="menu-item" data-act="openSettings">${icon("settings-2")}<span class="grow">Settings</span>${update ? html`<span class="count accent">${update} is out</span>` : ""}</button>
|
|
78
|
+
<div class="menu-sep" role="separator"></div>
|
|
79
|
+
<div class="menu-note pad">${app.profiles.demo ? "Profile the page shows" : "Profile new sessions use"}</div>
|
|
73
80
|
${list.map((p) => html`<button type="button" role="menuitemradio"${attrs({ class: "menu-item tall", "aria-checked": String(p.active), "data-act": "useProfile", "data-arg": p.id })}>
|
|
74
81
|
${avatar(p.name, "sm")}<span class="grow truncate">${p.name}</span><span class="count">${plural(p.memories, "memory", "memories")}</span>${p.active ? icon("check", "accent") : html`<span class="tick-space"></span>`}
|
|
75
82
|
</button>`)}
|
|
76
|
-
|
|
77
|
-
|
|
83
|
+
<button type="button" role="menuitem" class="menu-item" data-act="profileNewFromMenu">${icon("plus")}<span class="grow">New profile</span></button>
|
|
84
|
+
</div>`, "", "side")}`;
|
|
78
85
|
}
|
|
@@ -35,8 +35,7 @@ function rail() {
|
|
|
35
35
|
</button>
|
|
36
36
|
${railButton("insights", "Insights", "chart-column")}
|
|
37
37
|
<div class="spacer"></div>
|
|
38
|
-
${railProfile()}
|
|
39
|
-
${railButton("settings", settings, "settings-2")}
|
|
38
|
+
${railProfile(railButton("settings", settings, "settings-2"))}
|
|
40
39
|
</nav>`;
|
|
41
40
|
}
|
|
42
41
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/insights.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/overlays.js
RENAMED
|
File without changes
|
{agent_memory_git-0.1.8 → agent_memory_git-0.1.9}/src/agent_memory/webui/js/views/settings.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|