groove-dev 0.27.209 → 0.27.211
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/CLAUDE.md +8 -0
- package/node_modules/@groove-dev/cli/package.json +1 -1
- package/node_modules/@groove-dev/daemon/package.json +1 -1
- package/node_modules/@groove-dev/daemon/src/axom-connector.js +20 -6
- package/node_modules/@groove-dev/daemon/src/axom-runtimes.js +67 -1
- package/node_modules/@groove-dev/daemon/src/chatstore.js +57 -13
- package/node_modules/@groove-dev/daemon/src/index.js +2 -0
- package/node_modules/@groove-dev/daemon/src/routes/axom.js +17 -0
- package/node_modules/@groove-dev/daemon/test/axom-connector.test.js +41 -0
- package/node_modules/@groove-dev/daemon/test/axom-runtimes.test.js +62 -0
- package/node_modules/@groove-dev/daemon/test/chatstore.test.js +67 -2
- package/node_modules/@groove-dev/gui/dist/assets/{index-217ZVIOc.js → index-BP4oE2UL.js} +227 -227
- package/node_modules/@groove-dev/gui/dist/assets/index-DPsim83z.css +1 -0
- package/node_modules/@groove-dev/gui/dist/index.html +2 -2
- package/node_modules/@groove-dev/gui/package.json +1 -1
- package/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/daemon/package.json +1 -1
- package/packages/daemon/src/axom-connector.js +20 -6
- package/packages/daemon/src/axom-runtimes.js +67 -1
- package/packages/daemon/src/chatstore.js +57 -13
- package/packages/daemon/src/index.js +2 -0
- package/packages/daemon/src/routes/axom.js +17 -0
- package/packages/gui/dist/assets/{index-217ZVIOc.js → index-BP4oE2UL.js} +227 -227
- package/packages/gui/dist/assets/index-DPsim83z.css +1 -0
- package/packages/gui/dist/index.html +2 -2
- package/packages/gui/package.json +1 -1
- package/node_modules/@groove-dev/gui/dist/assets/index-DdCadtGL.css +0 -1
- package/packages/gui/dist/assets/index-DdCadtGL.css +0 -1
|
@@ -653,6 +653,8 @@ export class Daemon {
|
|
|
653
653
|
try {
|
|
654
654
|
const moved = this.chatStore.migrate();
|
|
655
655
|
if (moved) console.log(`[chat] migrated ${moved} id-keyed histories to agent names`);
|
|
656
|
+
const pruned = this.chatStore.prune();
|
|
657
|
+
if (pruned) console.log(`[chat] pruned ${pruned} histories for long-gone agents`);
|
|
656
658
|
} catch { /* best effort */ }
|
|
657
659
|
|
|
658
660
|
// Regenerate the on-disk registry files once on boot. They otherwise
|
|
@@ -46,6 +46,16 @@ export function registerAxomRoutes(app, daemon) {
|
|
|
46
46
|
return res.status(400).json({ error: 'clientRef must be a string of at most 64 chars' });
|
|
47
47
|
}
|
|
48
48
|
const result = await daemon.axom.message(endpoint, req.params.id, text, clientRef);
|
|
49
|
+
// Title the chat from its opening message — but only once the runtime
|
|
50
|
+
// ACCEPTED the turn. A message rejected with 409/413 never ran, so it
|
|
51
|
+
// must not name the conversation it failed to start.
|
|
52
|
+
if (result.status === 202) {
|
|
53
|
+
daemon.axomRuntimes.titleFromFirstMessage(req.params.id, text);
|
|
54
|
+
// Remember what we sent, keyed by the §15 ref the runtime echoes in
|
|
55
|
+
// pipeline_start. This is what lets a reloaded tab put the user's own
|
|
56
|
+
// words back above the answer instead of "prompt not identified".
|
|
57
|
+
if (clientRef) daemon.axomRuntimes.recordPrompt(req.params.id, clientRef, text);
|
|
58
|
+
}
|
|
49
59
|
daemon.audit.log('axom.message', { session: req.params.id, chars: text.length, status: result.status });
|
|
50
60
|
res.status(result.status).json(result.body);
|
|
51
61
|
} catch (err) {
|
|
@@ -167,6 +177,13 @@ export function registerAxomRoutes(app, daemon) {
|
|
|
167
177
|
res.json({ chats: daemon.axomRuntimes.chats() });
|
|
168
178
|
});
|
|
169
179
|
|
|
180
|
+
// What GROOVE sent on this session, so a reloaded tab can restore the user's
|
|
181
|
+
// bubbles. Only ever OUR OWN sends — a turn started from the REPL or another
|
|
182
|
+
// client has no entry here and must still render without a bubble.
|
|
183
|
+
app.get('/api/axom/sessions/:id/prompts', (req, res) => {
|
|
184
|
+
res.json({ prompts: daemon.axomRuntimes.prompts(req.params.id) });
|
|
185
|
+
});
|
|
186
|
+
|
|
170
187
|
app.patch('/api/axom/chats/:session', (req, res) => {
|
|
171
188
|
try {
|
|
172
189
|
res.json(daemon.axomRuntimes.renameChat(req.params.session, req.body?.label));
|